Jump to content
GMS, SMS, and WMS User Forum
Jonas

Fixed pilot points in PEST NSMC

Recommended Posts

I have problems running PEST NSMC with fixed pilot points. Both in my own model and in the NSMC tutorial files, I get the same error message "Cannot open parameter value file nsmcII_200_random_nul.par." and the simulation finishes without completing any iteration. Is this a bug i in GMS?

Kind regards,

Jonas

Error fixed pilot point.JPG

Share this post


Link to post
Share on other sites

An update on this matter. As suggested by Michal, I was able to run the PARREP and RANDPAR utility in PEST to create the *.par files for the different runs. Before running PARREP, I ran a parameter estimation run in GMS with NOPTMAX = -1 to create a *.bpa file. After running RANDPAR I was able to perform the normal procedure for a NSMC inverse calibration run in GMS. This worked out well for the NSMC tutorial with "sc1v56" as a fixed pilot points (keeping value 400 in screenshot below). I cross my fingers that it also works for my own model. However, I would appreciate if this procedure could work directly in GMS. 

nsmcII_PEST_fixedPP.png.3d39957c7cd364531c47aac4707d42ff.pngnsmcII_PEST_fixedPP_GMS.thumb.png.ba7bccafea99a33fed13eacb558b8749.png

Share this post


Link to post
Share on other sites

Hi Jonas, this is interesting. What interpolation method have you used for the pilot points in the first place?

Did GMS just read the pre-generated values from the RANDPAR utility and than continued itself with the PNULPAR, etc. ?

Share this post


Link to post
Share on other sites

I used Kriging for interpolation of the pilot points. 

Yes, that was the procedure for the tutorial file. 

When I run my own model something seems to go wrong with svd-assist since the sensitivity file for svd-assist is empty.

Share this post


Link to post
Share on other sites

An update, my own model was possible to run after using the SUBREG1 utility in PEST. A problem is that my own model with a fixed pilot point is only possible to run for log-uniform distributions with the RANDPAR utility. When I try to create log-normal distributions in RANDPAR i get the error message seen in the screenshot below. Ideas on how to solve this issue are appreciated.  

randpar_error.png

Share this post


Link to post
Share on other sites

I believe the problem is, that some parameters are cited in the covariance matrix C(k), but are not included in the PEST control file as adjustable parameters. Check it with the sc1v145 parameter.

Share this post


Link to post
Share on other sites

We have fixed this issue and added a test. It will be in the next update of GMS (10.3.4). If you need it sooner you can get a link to the nightly build from the tech support group.

Share this post


Link to post
Share on other sites

I tried both the nightly build and the latest update (10.3.4) but received this error message:

image.png.a364b2fafd6e966195ccff49ce6f2463.png

The model works fine in NSMC with the NWT solver without fixed PP. Any ideas on how to solve the issue?

Kind regards,

Jonas

Share this post


Link to post
Share on other sites

So the tutorial seems to work fine with fixed points. I just tried it again this morning.

Does PEST report any errors?

Perhaps it is a bug in parallel PEST. 

Share this post


Link to post
Share on other sites

I just tested the model again without parallel PEST and got the same error message: "pest has stopped working". I get this when I make a parameter estimation run with noptmax = -2.

I also got this error message when from this run:

 

The whole process before seems to work fine

image.png

Edited by Jonas

Share this post


Link to post
Share on other sites

Hi, I have encountered the same error with my model. The reason why PEST and PESTCHEK crashed has something to do with the Regularization option. With Prefered homogeneous regularization option checked several empty regularization observation groups were created in the PEST control file. I believe there is something wrong with the Prior information data section in the PEST control file. After turning Regularization off or changing to it Prefered value everything runs just fine. There are three scatter point sets in my model with many parameters for different model layers. There are Totaly 18 parameters defined with PP for multiple model layers. It looks to me like some bug in writing the Prior information with such setup.

Edit1: There were no fixed PP in my formulation.

Edit2: There seems to be more errors.  Here are some of the parameters and corresponding PI written by GMS:
 

 sc1v1        log    factor      22.321      1.00000E-08   1000.0          general   1.0000       0.0000       1
 sc1v2        log    factor      16.947      1.00000E-08   1000.0          general   1.0000       0.0000       1
 sc1v3        log    factor      4.1647      1.00000E-08   1000.0          general   1.0000       0.0000       1
 sc1v4        log    factor      4.4251      1.00000E-08   1000.0          general   1.0000       0.0000       1
 sc1v5        log    factor      33.072      1.00000E-08   1000.0          general   1.0000       0.0000       1

* prior information
 pi0 1.0 * log(sc1v1) = 3.1055498123169 1.0 regul_1
 pi1 1.0 * log(sc1v2) = 2.830082654953 1.0 regul_1
 pi2 1.0 * log(sc1v3) = 1.4266545772552 1.0 regul_1
 pi3 1.0 * log(sc1v4) = 1.4872899055481 1.0 regul_1
 pi4 1.0 * log(sc1v5) = 3.4986937046051 1.0 regul_1

Log10(22.321) = 1.349, not 3.106 as supplied by GMS. Its the natural logarithm. However according to the PEST manual, it must be decadic:

Quote

If a parameter is log-transformed, any prior information pertaining to that parameter must pertain to the log (to base 10) of that parameter.

PEST manual p.41

 

Edited by Michal

Share this post


Link to post
Share on other sites

Hi,

I tried with your suggestion to turn off preferred homogeneous regularization but keeping preferred value on.

Unfortunately it resulted in these error messages:

image.png.731546317721e66f3c21d19cb56c9376.png

Share this post


Link to post
Share on other sites

Ok, thats definately a progress, PEST does not crash anymore :). This is realy a weird bug, it should not crash so violently.

To your new problem. Try turning SVD-Assist and Regularization off and set NOPTMAX to 0. Lets see if it works. Also try running PESTCHEK and examine the output.

Share this post


Link to post
Share on other sites

Jonas,

I have noticed, you were not running PEST in Regularization mode. That is probably the source for your error.

Share this post


Link to post
Share on other sites

Hi, stupid question but how do I change from estimation mode to regularization mode in GMS? I have tried to use the PARREP utility to make a change in the pst (PEST control file) file but GMS keeps to run in estimation mode.

6 hours ago, Michal said:

To your new problem. Try turning SVD-Assist and Regularization off and set NOPTMAX to 0.

I tried this and then the model was able to run once (really fast). I have however not examined the results with PESTCHEK.

As I mentioned earlier, I have been able to make this work without fixed pilot points.

Share this post


Link to post
Share on other sites

Hi, no problem, you are welcome.

In GMS it should be automatic, based on whether you check either Prefered homogeneous regularization or Prefered value regularization. However according to the recent experiences I strongly recommend not to do it this way. Be aware of the bug mentioned earlier regarding the usage of natural logarithm instead of decadic in GMS. I have no idea how this impacts the inversion process, but I would avoid it. If you have no log-transformed parameters, it should not be a problem, though.

You can add prefered value regularization to the control file very easily by using the command line utlity from the PEST suite called ADDREG1. See the documentation to PEST (newpestman2.pdf, p. 21). It should make all the changes to the Control file necessary to run regularized inversion.

Edited by Michal

Share this post


Link to post
Share on other sites

Thanks for your advice Michal. I have tried your suggestion with ADDREG1 but GMS writes over the control file when a new run is initiated. Any suggestion on how to bypass this issue?

Share this post


Link to post
Share on other sites

Just run from command line:

pest case

with case being the name of the modified PEST control file.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×