Please enable JavaScript to view this site.

ModelMuse Help

Navigation: Working with PEST

Using SVD Assist

Scroll Prev Top Next More

SVD-Assist is described in chapter 10 of the PEST user manual and in Doherty and Hunt (2010). SVD-Assist appreciably reduces the computational burden of calibration. Using SVD Asist requires the use of the PSTCLEAN utility program. (If the "i64" version of PEST is being used, it may be necessary to install the PSTCLEAN utility program from one of the other distributions in the PEST directory because at the time of this writing, it was not included in 64-bit distribution file.)

If SVD Assist is used with Singular Value Decomposition in PEST, "super-parameters" can be used to reduce the PEST execution time. The general sequence of actions to use SVD Assist is as follow.

1.Generate the Jacobian matrix by running PEST with the maximum number of PEST iterations (NOPTMAX) generally set to -2.

2.Choose the number of supper-parameters to use. The PEST utility program SUPCALC can be used to assist with this and the previous step.

3.Generate a modified PEST control file with SVDAPREP.

4.Run PEST with the modified PEST control file.

5.Use PARREP to generate new model input files using the best estimated parameter values or the parameter values from any of the PEST iterations.

6.Assess the final model and its results.

If the modeler chooses to use SUPCALC to estimate an appropriate number of super-parameters to use, the modeler can select “File|Export|PEST|Calculate Number of Super-Parameters” to display the SUPCALC Options dialog box. In it, the modeler selects an existing PEST control file and specifies a value greater than zero for the expected value of the measurement objective function. ModelMuse will back up the existing PEST control file, create a new PEST control file with NOPTMAX set to -2 and optionally run PEST to generate the Jacobian matrix. The Jacobian matrix (.jco file), is created by running a base run at initial values and additional runs where each parameter is perturbed independently. It thus requires one more run than there are adjustable parameters. Next, the original PEST control file will be restored and use SUPCALC will modify the PEST control file. It is only necessary to run PEST to generate the Jacobian matrix if the Jacobian matrix file (*.jco) does not already exist. SUPCALC will display the minimum and maximum number of super-parameters to use with the model to achieve the expected value of the measurement objective function. These can guide the user in selecting the number of super-parameters to use in the next step.

The time required to run the model may place an upper limit on the number of superparameters that is practical. One option would be to limit the number of superparameters to the number that would allow PEST to finish parameter estimation in in a time you file reasonable followed by performing a sensitivity analysis using the SENSAN utility described in the PEST documentation with a varying number of superparameters. You can estimate the time as the number of superparameters times the time for the model to run once times the expected number of parameter iterations. See also Is it Practical to Use PEST?.

When calculating the number of super-parameters, the following steps are taken. If the option to run PEST is selected, ModelMuse will back up the existing PEST control file and export a new one suitable for use with SUPCALC. The purpose of running PEST is to generate a .jco file. If one has already been created, it may not be necessary to run PEST. Then ModelMuse creates an input file for SUPCALC and a batch file named RunSupCalc.bat to run SUPCALC. The batch file will first run PEST if that option is selected and then restore the backed-up PEST control file. It will then include a command to run SUPCALC. If the option to run SUPCALC is selected, ModelMuse will start the RunSupCalc.bat batch file. SUPCALC will display the minimum number of super-parameters for the model.

Next, the user can select File|Export|PEST|Modify PEST Control File with SVDAPREP to display the SVDAPREP Input dialog box. This dialog box will allow you to generate a PEST control file suitable for use with Singular Value Decomposition by running the SVDAPREP PEST utility program and then run PEST with the modified PEST control file.

Though automatically handled within the utility, the following discussion covers what steps occur when modifying the PEST control file with SVDAPREP. First a new PEST control file is exported followed by an input file for SVDAPREP. After creating the input file for SVDAPREP, ModelMuse checks whether the working directory contains the PEST utility programs PARCALC (parcalc.exe) and PICALC (picalc.exe). If not, it copies them from the PEST directory into the working directory. These programs will be used by PEST to convert superparameters to base parameters when running the parameter estimation. Next ModelMuse creates a batch file to run SVDAPREP. SVDAPREP is described in detail in chapter 10.2 of the PEST documentation. The first command in the batch file calls the PEST utility program PSTCLEAN. PSTCLEAN removes comments from the PEST control file and creates a new PEST control file whose name is the same as the original name with "_Svda" added to the file root. The next command in the batch file will call SVDAPREP to generate another PEST control file. Its name is the same as the original name with "_PostSvda" added to the file root. If the option to run PEST is selected, the final command in the batch file will run PEST with the control file generated by SVDAPREP. If the option to run SVDAPREP is selected, ModelMuse will start the batch file that runs SVDAPREP.

When parameter estimation is complete, PEST would normally conduct a final run using the estimated parameter values but this is not possible when SVD Assist is used. However, the user can make such a run themselves using the PEST utility program PARREP. To do so, select File|Export|PEST|Replace Parameters in PEST Control File and select the .bpa file generated by PEST. The root of the .bpa file will be the PEST control file used as input for SVDAPREP. PARREP will create a new PEST control file whose root will end with "_svda_parrep". Then PEST will run the model once with the estimated parameter values.

When parameter estimation is complete, PEST would normally conduct a final run using the estimated parameter values, but this is not possible when SVD-Assist is used. However, the user can make such a run themselves using the PEST utility program PARREP. To do so, select File|Export|PEST|Replace Parameters in PEST Control File and select the .bpa file generated by PEST. The root of the .bpa file will be the PEST control file used as input for SVDAPREP. (The user can also select any of the parameter sets from any of the individual iterations.) PARREP will create a new PEST control file whose root will end with "_svda_parrep". Then PEST will run the model once with the estimated parameter values.