ForK Library

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 gradientenhanced 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 functiononly 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 gradientenhanced 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 gradientenhanced Kriging model (that subroutine is in the module covarmatrix) 
covars.f90 [code]  Module containing the covariance functions required for the Kriging model. Multidimensional and the one dimensional used to build up multidimensional 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 setup the max likelihood optimization for the functiononly and gradientenhanced 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 setup the max likelihood optimization for the functiononly and gradientenhanced 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 Gradientenhanced 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 GradientEnhanced 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 GradientEnhanced 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 GradientEnhanced 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 GradientEnhanced 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 GradientEnhanced 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 GradientEnhanced 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 GradientEnhanced Kriging Surface (requires buildkrigingGEK to be called first) Only Works for Ordinary Kriging (Constant Mean function) 
krigingwrapper.f90 [code]  Example Code for building a functiononly Kriging model and making predictions from it 
krigingwrapperGEK.f90 [code]  Example Code for building a gradientenhanced Kriging model and making predictions from it 
likelihood.f90 [code]  Module containing the likelihood calculation for functiononly and gradientenhanced 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 functiononly and gradientenhanced 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 functiononly and a gradientenhanced 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 hardcoded 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 