PEST++ is a software suite aimed at supporting complex numerical models in the decision-support context. Much focus has been devoted to supporting environmental models (groundwater, surface water, etc) but these tools are readily applicable to any computer model.
The lastest PEST++ manual is available here. Direct zip download here
- windows (users with current visual studio installed). Direct zip download here
- windows compiled with intel C++ (the 'i' prefix). Direct zip download here
- mac OS. Direct zip download here
The master branch includes a Visual Studio 2017 project, as well as makefiles for linux and mac. The suite has been succcessfully compiled with gcc (g++ and gfortran) 4,5,6 and 7 on ubuntu, fedora, centos, and on slurm/MPI clusters - to use gcc, you must C++11 support (if using gcc 4, only gcc4.9 has this) and you need to have both lapack
and blas
libraries available in the path. Then, in the src
directory:
>>>make clean
>>>STATIC=no make install
this should put the compiled binaries in the bin/linux
directory. See the .travis.yml
file for an example
The PEST++ software suite includes several stand-alone tools for model-independent (non-intrusive) computer model parameter estimation and uncertainty analysis. Codes include:
-
pestpp-glm
: deterministic GLM parameter estimation using "on-the-fly" subspace reparameterization, effectively reproducing the SVD-Assist methodology of PEST without any user intervention and FOSM-based parameter and (optional) forecast uncertainty estimation with support for generating posterior parameter realizations. -
pestpp-sen
: Global sensitivity analysis using either Morris or Sobol -
pestpp-swp
: a generic parallel run utility driven by a CSV file of parameter values -
pestpp-opt
: chance-constrainted linear programming -
pestpp-ies
: iterative ensemble smoother implementation of GLM (based on the work Chen and Oliver 2013) with support for generic localization (local analysis and/or covariance localization)
All members of the software suite can be compiled for PC, MAC, or Linux and have several run managers to support parallelization. precompiled binaries are available in the "bin" folder. Windows users with older OS versions should use the bin/iwin
binaries (starting "i", compiled with intel C++) to avoid the dreaded MSVC missing runtime DLL issue
White, J. T., 2018, A model-independent iterative ensemble smoother for efficient history-matching and uncertainty quantification in very high dimensions. Environmental Modelling & Software. 109. 10.1016/j.envsoft.2018.06.009. http://dx.doi.org/10.1016/j.envsoft.2018.06.009.
White, J. T., Fienen, M. N., Barlow, P. M., and Welter, D.E., 2017, A tool for efficient, model-independent management optimization under uncertainty. Environmental Modeling and Software. http://dx.doi.org/10.1016/j.envsoft.2017.11.019.
Welter, D.E., White, J.T., Hunt, R.J., and Doherty, J.E., 2015, Approaches in highly parameterized inversion— PEST++ Version 3, a Parameter ESTimation and uncertainty analysis software suite optimized for large environmental models: U.S. Geological Survey Techniques and Methods, book 7, chap. C12, 54 p., http://dx.doi.org/10.3133/tm7C12.
Welter, D.E., Doherty, J.E., Hunt, R.J., Muffels, C.T., Tonkin, M.J., and Schreüder, W.A., 2012, Approaches in highly parameterized inversion—PEST++, a Parameter ESTimation code optimized for large environmental models: U.S. Geological Survey Techniques and Methods, book 7, section C5, 47 p., available only at http://pubs.usgs.gov/tm/tm7c5.
The benchmarks
folder contains a simple worked example that is used for basic CI testing. Many full-worked test problems of varying problem sizes are now located in separate repos:
- https://github.com/usgs/pestpp_benchmarks
- https://github.com/usgs/pestpp-ies_benchmarks
- https://github.com/usgs/pestpp-opt_benchmarks
Much work has been done to avoid additional external dependencies in PEST++. As currently designed, the project is fully self-contained and statically linked. lapack
and blas
are also required - these are included with the intel fortran compiler; those using gcc will need to have these libraries available.
please see the PEST++ version 4 manual in the documentation
directory for a current and complete description of all ++
options
This software has been approved for release by the U.S. Geological Survey (USGS). Although the software has been subjected to rigorous review, the USGS reserves the right to update the software as needed pursuant to further analysis and review. No warranty, expressed or implied, is made by the USGS or the U.S. Government as to the functionality of the software and related material nor shall the fact of release constitute any such warranty. Furthermore, the software is released on condition that neither the USGS nor the U.S. Government shall be held liable for any damages resulting from its authorized or unauthorized use