$extrastylesheet
Dakota  Version 6.2
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
SurfpackApproximation Class Reference

Derived approximation class for Surfpack approximation classes. Interface between Surfpack and Dakota. More...

Inheritance diagram for SurfpackApproximation:
Approximation

List of all members.

Public Member Functions

 SurfpackApproximation ()
 default constructor
 SurfpackApproximation (const ProblemDescDB &problem_db, const SharedApproxData &shared_data)
 standard constructor: Surfpack surface of appropriate type will be created
 SurfpackApproximation (const SharedApproxData &shared_data)
 alternate constructor
 ~SurfpackApproximation ()
 destructor

Protected Member Functions

int min_coefficients () const
 return the minimum number of samples (unknowns) required to build the derived class approximation type in numVars dimensions
int recommended_coefficients () const
 return the recommended number of samples (unknowns) required to build the derived class approximation type in numVars dimensions
void build ()
 SurfData object will be created from Dakota's SurrogateData, and the appropriate Surfpack build method will be invoked.
Real value (const Variables &vars)
 Return the value of the Surfpack surface for a given parameter vector x.
const RealVector & gradient (const Variables &vars)
 retrieve the approximate function gradient for a given parameter vector x
const RealSymMatrix & hessian (const Variables &vars)
 retrieve the approximate function Hessian for a given parameter vector x
Real prediction_variance (const Variables &vars)
 retrieve the variance of the predicted value for a given parameter set x (KrigingModel only)
Real value (const RealVector &c_vars)
 Return the value of the Surfpack surface for a given parameter vector x.
const RealVector & gradient (const RealVector &c_vars)
 retrieve the approximate function gradient for a given parameter vector x
const RealSymMatrix & hessian (const RealVector &c_vars)
 retrieve the approximate function Hessian for a given parameter vector x
Real prediction_variance (const RealVector &c_vars)
 retrieve the variance of the predicted value for a given parameter set x (KrigingModel only)
bool diagnostics_available ()
 check if the diagnostics are available (true for the Surfpack types)
Real diagnostic (const String &metric_type)
 retrieve a single diagnostic metric for the diagnostic type specified on the primary model and data
Real diagnostic (const String &metric_type, const SurfpackModel &model, const SurfData &data)
 retrieve a single diagnostic metric for the diagnostic type specified on the given model and data
void primary_diagnostics (int fn_index)
 compute and print all requested diagnostics and cross-validation
void challenge_diagnostics (const RealMatrix &challenge_points, int fn_index)
 compute and print all requested diagnostics for user provided challenge pts

Private Member Functions

SurfData * surrogates_to_surf_data ()
 copy from SurrogateData to SurfPoint/SurfData
void add_anchor_to_surfdata (SurfData &surf_data)
 set the anchor point (including gradient and hessian if present) into surf_data

Private Attributes

SurfpackModel * model
 The native Surfpack approximation.
SurfpackModelFactory * factory
 factory for the SurfpackModel instance
SurfData * surfData
 The data used to build the approximation, in Surfpack format.

Detailed Description

Derived approximation class for Surfpack approximation classes. Interface between Surfpack and Dakota.

The SurfpackApproximation class is the interface between Dakota and Surfpack. Based on the information in the ProblemDescDB that is passed in through the constructor, SurfpackApproximation builds a Surfpack Surface object that corresponds to one of the following data-fitting techniques: polynomial regression, kriging, artificial neural networks, radial basis function network, or multivariate adaptaive regression splines (MARS).


Constructor & Destructor Documentation

SurfpackApproximation ( const ProblemDescDB problem_db,
const SharedApproxData shared_data 
)
SurfpackApproximation ( const SharedApproxData shared_data)

Member Function Documentation

void build ( ) [protected, virtual]

SurfData object will be created from Dakota's SurrogateData, and the appropriate Surfpack build method will be invoked.

surfData will be deleted in dtor

Todo:
Right now, we're completely deleting the old data and then recopying the current data into a SurfData object. This was just the easiest way to arrive at a solution that would build and run. This function is frequently called from addPoint rebuild, however, and it's not good to go through this whole process every time one more data point is added.

Reimplemented from Approximation.

References Dakota::abort_handler(), SharedApproxData::approxCLowerBnds, SharedApproxData::approxCUpperBnds, SharedApproxData::approxDILowerBnds, SharedApproxData::approxDIUpperBnds, SharedApproxData::approxDRLowerBnds, SharedApproxData::approxDRUpperBnds, SharedSurfpackApproxData::exportModelName, SurfpackApproximation::factory, SharedSurfpackApproxData::merge_variable_arrays(), SurfpackApproximation::model, SharedApproxData::outputLevel, Approximation::sharedDataRep, SurfpackApproximation::surfData, and SurfpackApproximation::surrogates_to_surf_data().

const RealSymMatrix & hessian ( const Variables vars) [protected, virtual]

retrieve the approximate function Hessian for a given parameter vector x

Todo:
Make this acceptably efficient

Reimplemented from Approximation.

References Dakota::abort_handler(), Approximation::approxHessian, SharedApproxData::approxType, Variables::cv(), SurfpackApproximation::model, and Approximation::sharedDataRep.

Referenced by SurfpackApproximation::add_anchor_to_surfdata().

const RealSymMatrix & hessian ( const RealVector &  c_vars) [protected, virtual]

retrieve the approximate function Hessian for a given parameter vector x

Todo:
Make this acceptably efficient

Reimplemented from Approximation.

References Dakota::abort_handler(), Approximation::approxHessian, SharedApproxData::approxType, SurfpackApproximation::model, and Approximation::sharedDataRep.

SurfData * surrogates_to_surf_data ( ) [private]

copy from SurrogateData to SurfPoint/SurfData

Copy the data stored in Dakota-style SurrogateData into Surfpack-style SurfPoint and SurfData objects.

References SurfpackApproximation::add_anchor_to_surfdata(), SharedSurfpackApproxData::add_sd_to_surfdata(), Approximation::approxData, SharedApproxData::buildDataOrder, SurfpackApproximation::factory, SharedApproxData::outputLevel, and Approximation::sharedDataRep.

Referenced by SurfpackApproximation::build().

void add_anchor_to_surfdata ( SurfData &  surf_data) [private]

set the anchor point (including gradient and hessian if present) into surf_data

If there is an anchor point, add an equality constraint for its response value. Also add constraints for gradient and hessian, if applicable.

References Dakota::abort_handler(), Approximation::approxData, Dakota::copy_data(), SharedSurfpackApproxData::copy_matrix(), SurfpackApproximation::gradient(), SurfpackApproximation::hessian(), SharedApproxData::outputLevel, SharedSurfpackApproxData::sdv_to_realarray(), and Approximation::sharedDataRep.

Referenced by SurfpackApproximation::surrogates_to_surf_data().


The documentation for this class was generated from the following files: