ForK Library

File List

Here is a list of all files with brief descriptions:
 argument.f90 [code] This modeule contains the definitions for the structures used to pass supplemental arguments to the function calls within the optimization subroutines (patternsearch and simplexsearch). Each function type (such as likelihood, likelihood_mle, and the associated Kriging subroutines) has its own structure that stores the supplemental arguments required for the function call. Theses structures are themselves elements of the structure "generalarg" which is used as a wrapper for inputing these structures into the optimization subroutines buildkriging.f90 [code] Subroutine to Build Kriging Surface based on Function Values buildkrigingGEK.f90 [code] Subroutine to Build Kriging Surface based on Function and Gradient Values choleskymod.f90 [code] Module containing matrix manipulation subroutines such as Cholesky factorization and matrix multiply. For the most part, the functions contained here are mere wrappers for LAPACK calls. Commented out functions contain the "dumb" versions of these LAPACK calls and are used primarily for debugging purposes covarmatrix.f90 [code] This module contains the subroutines used to compute the covariance matrix. For efficiency, different subroutines are used for the different covariance matrices needed in the code. Although the naming may be confusing, this module contains the subroutines required to calculate the block covariance matrix needed for a gradient-enhanced Kriging model covarmatrix_grad.f90 [code] This module contains the subroutines required to compute the covariance matrix between derivative values and function values. For a function-only Kriging model, the matrix consists of the covariance between derivative and function values with elements corresponding to the derivative of the covariance matrix. For a gradient-enhanced Kriging model, the matrix consists of the covariance between derivative and function values as well as the covariance with other derivative values. These subroutines are required when the derivative predictions are made from the Kriging surface. This module does NOT contain the subroutine required to compute the covariance matrix required in the construction of a gradient-enhanced Kriging model (that subroutine is in the module covarmatrix) covars.f90 [code] Module containing the covariance functions required for the Kriging model. Multi-dimensional and the one dimensional used to build up multi-dimensional covariance functions are included. Derivatives of covariance functions also included here funcmod.f90 [code] This module contains the function calls that can be used in conjunction with the optimization algorithms patternsearch and simplexsearch. The call to the subroutine "func" is made by the subroutine funcwrapper. The subroutine is overloaded based on the type of the arg argument. For each arg type, a different function is called (either toy, likelihood, likelihood_mle, or kriging). This module in addition to argument and funcwrapper must be modified if optimization is to be performed on different objectives funcwrapper.f90 [code] This subroutine unwraps the supplemental arguments from the structure "generalarg" and supplies the appropriate part of the structure to the function "func" defined in the module funcmod. This unwrapping is based on the descriptor component of the "generalarg" structure hyperparameters_all.f90 [code] This module contains the subroutines used to set-up the max likelihood optimization for the function-only and gradient-enhanced Kriging module. This likelihood formulation determines the regression parameters based on an optimality condition and fits all other covariance parameters through optimization(length, magnitude and noise level). The likelihood for this optimization is evaluated using likelihood. The bounds for these hyperparameters are set within these subroutines hyperparameters_mle.f90 [code] This module contains the subroutines used to set-up the max likelihood optimization for the function-only and gradient-enhanced Kriging module using the MLE likelihood formulation. This MLE formulation determines the covariance magnitude and regression parameters based on the optimality condition and only performs optimization over the covariance length scales. The likelihood for this optimization is evaluated using likelihood_mle. The noise level ratio is specified in these subroutines as well as the bounds for the length scale parameters krigingeipredict.f90 [code] Subroutine to Predict Expected improvement from Kriging Surface based on a given minimum value (requires buildkriging to be called first) krigingeipredictGEK.f90 [code] Subroutine to Predict Expected improvement from Gradient-enhanced Kriging Surface based on a given minimum value (requires buildkrigingGEK to be called first) krigingextremefuncpredict.f90 [code] Subroutine used to determine the minimum or maximum value from a Kriging response surface (requires buildkriging to be called first) Only Works for Ordinary Kriging (Constant Mean function) krigingextremefuncpredictGEK.f90 [code] Subroutine to Predict mean function values from Gradient-Enhanced Kriging Surface (requires buildkrigingGEK to be called first) Only Works for Ordinary Kriging (Constant Mean function) krigingfunccovar.f90 [code] This subroutine calculates the covariance matrix associated with the Kriging model's output distribution. This matrix is useful when the quantifying the uncertainty of general code predictions (such as a quantile prediction or statistic prediction). This subroutine is order $$M^{2}$$ in complexity, where $$M$$ is the number of test points. It is very slow, so use with caution krigingfuncpredict.f90 [code] Subroutine to Predict mean function values from Kriging Surface (requires buildkriging to be called first) krigingfuncpredictGEK.f90 [code] Subroutine to Predict mean function values from Gradient-Enhanced Kriging Surface (requires buildkrigingGEK to be called first) krigingfuncsample.f90 [code] This subroutine samples from the Kriging model's output distribution. It requires krigingfunccovar and krigingfuncpredict to be call first and cholesky must be performed on the output distribution covariance matrix krigingfuncvariance.f90 [code] Subroutine to Predict variance of function values from Kriging Surface (requires buildkriging to be called first) krigingfuncvarianceGEK.f90 [code] Subroutine to Variance of function values from Gradient-Enhanced Kriging Surface (requires buildkrigingGEK to be called first) kriginggradpredict.f90 [code] Subroutine to predict mean derivative values from Kriging Surface (requires buildkriging to be called first) kriginggradpredictGEK.f90 [code] Subroutine to predict mean derivative values from Gradient-Enhanced Kriging Surface (requires buildkrigingGEK to be called first) kriginggradvariance.f90 [code] Subroutine to compute the variance of derivative values from Kriging Surface (requires buildkriging to be called first) kriginggradvarianceGEK.f90 [code] Subroutine to predict the variance of derivative values from Gradient-Enhanced Kriging Surface (requires buildkrigingGEK to be called first) krigingmaxeipredict.f90 [code] Subroutine used to determine the maximum expected improvement from a Kriging response surface based on a current minimum value (requires buildkriging to be called first) Only Works for Ordinary Kriging (Constant Mean function) krigingmaxeipredictGEK.f90 [code] Subroutine to Predict maximum expected improvement from Gradient-Enhanced Kriging Surface based on a current minimum value(requires buildkrigingGEK to be called first) Only Works for Ordinary Kriging (Constant Mean function) krigingmaxvariancepredict.f90 [code] Subroutine used to determine the maximum Variance from a Kriging response surface (requires buildkriging to be called first) Only Works for Ordinary Kriging (Constant Mean function) krigingmaxvariancepredictGEK.f90 [code] Subroutine to Predict maximum variance value from Gradient-Enhanced Kriging Surface (requires buildkrigingGEK to be called first) Only Works for Ordinary Kriging (Constant Mean function) krigingwrapper.f90 [code] Example Code for building a function-only Kriging model and making predictions from it krigingwrapperGEK.f90 [code] Example Code for building a gradient-enhanced Kriging model and making predictions from it likelihood.f90 [code] Module containing the likelihood calculation for function-only and gradient-enhanced Kriging models. This likelihood formula treats all covariance parameters (length scales, magnitude and noise magnitudes) as hyperparameters that can be varied independently. The regression parameters are still determined based on an optimality condition likelihood_mle.f90 [code] Module containing the likelihood calculation for function-only and gradient-enhanced Kriging models. This likelihood formula treats the length scale in each dimension of the covariance function as hyperparameters that can be varied independently. The regression parameters and covariance magnitude are determined based on an optimality condition. The ratio of the noise level to the covariance magnitude is fixed value and is introduced to ensure proper conditioning of the covariance matrix magnitude.f90 [code] This module contains the subroutine that can be used to calculate the optimal covariance magnitude for a function-only and a gradient-enhanced Kriging model opt.f90 [code] This module contains some supplemental subroutines used for the patternsearch. These functions are used simply to allow for more generality in the patternsearch. The functions are hard-coded to trival values for now patternsearch.f90 [code] Pattern Search used for global optimization Used for max likelihood optimization and determining min/max values from Kriging surface simplexsearch.f90 [code] Simplex Search used for optimization Used for max likelihood optimization and determining min/max values from Kriging surface Suitable for fast local optimization using function values toyfunc.f90 [code] Subroutine for computing simple functions that can be used to test the Kriging model and the optimization subroutines. Only used within the example programs