$extrastylesheet
Dakota
Version 6.2
|
Nonintrusive polynomial chaos expansion approaches to uncertainty quantification. More...
Public Member Functions | |
NonDPolynomialChaos (ProblemDescDB &problem_db, Model &model) | |
standard constructor | |
NonDPolynomialChaos (Model &model, short exp_coeffs_approach, const UShortArray &num_int_seq, const RealVector &dim_pref, short u_space_type, bool piecewise_basis, bool use_derivs) | |
alternate constructor for numerical integration | |
NonDPolynomialChaos (Model &model, short exp_coeffs_approach, const UShortArray &exp_order_seq, const RealVector &dim_pref, Real colloc_ratio, int seed, short u_space_type, bool piecewise_basis, bool use_derivs, bool cv_flag) | |
alternate constructor for regression | |
~NonDPolynomialChaos () | |
destructor | |
Protected Member Functions | |
void | derived_init_communicators (ParLevLIter pl_iter) |
derived class contributions to initializing the communicators associated with this Iterator instance | |
void | derived_set_communicators (ParLevLIter pl_iter) |
derived class contributions to setting the communicators associated with this Iterator instance | |
void | derived_free_communicators (ParLevLIter pl_iter) |
derived class contributions to freeing the communicators associated with this Iterator instance | |
void | resolve_inputs (short &u_space_type, short &data_order) |
perform error checks and mode overrides | |
void | initialize_u_space_model () |
initialize uSpaceModel polynomial approximations with PCE/SC data | |
void | increment_specification_sequence () |
increment the input specification sequence (PCE only) | |
void | compute_expansion () |
form or import an orthogonal polynomial expansion using PCE methods | |
void | append (const RealMatrix &samples, const IntResponseMap &resp_map) |
append new data to uSpaceModel and update expansion order | |
void | increment_order_and_grid () |
uniformly increment the order of the polynomial chaos expansion and define a consistent grid increment | |
void | print_coefficients (std::ostream &s) |
print the PCE coefficient array for the orthogonal basis | |
void | archive_coefficients () |
archive the PCE coefficient array for the orthogonal basis | |
Private Member Functions | |
void | increment_grid_from_order () |
define a grid increment that is consistent with an advancement in expansion order | |
void | increment_order_from_grid () |
define an expansion order that is consistent with an advancement in structured/unstructured grid level/density | |
int | terms_ratio_to_samples (size_t num_exp_terms, Real colloc_ratio) |
convert number of expansion terms and collocation ratio to a number of collocation samples | |
Real | terms_samples_to_ratio (size_t num_exp_terms, int samples) |
convert number of expansion terms and number of collocation samples to a collocation ratio | |
void | ratio_samples_to_order (Real colloc_ratio, int num_samples, UShortArray &exp_order) |
convert collocation ratio and number of samples to expansion order | |
void | order_to_dim_preference (const UShortArray &order, unsigned short &p, RealVector &dim_pref) |
convert an isotropic/anisotropic expansion_order vector into a scalar plus a dimension preference vector | |
Private Attributes | |
String | expansionExportFile |
filename for export of chaos coefficients | |
String | expansionImportFile |
filename for import of chaos coefficients | |
Real | collocRatio |
factor applied to terms^termsOrder in computing number of regression points, either user specified or inferred | |
Real | termsOrder |
exponent applied to number of expansion terms for computing number of regression points | |
int | randomSeed |
seed for random number generator used for regression with LHS and sub-sampled tensor grids | |
bool | tensorRegression |
option for regression PCE using a filtered set tensor-product points | |
bool | crossValidation |
flag for use of cross-validation for selection of parameter settings in regression approaches | |
RealVector | noiseTols |
noise tolerance for compressive sensing algorithms; vector form used in cross-validation | |
Real | l2Penalty |
L2 penalty for LASSO algorithm (elastic net variant) | |
unsigned short | numAdvance |
number of frontier expansions per iteration with the ADAPTED_BASIS_EXPANDING_FRONT approach | |
UShortArray | expOrderSeqSpec |
user specification for expansion_order (array for multifidelity) | |
RealVector | dimPrefSpec |
user specification for dimension_preference | |
SizetArray | collocPtsSeqSpec |
user specification for collocation_points (array for multifidelity) | |
SizetArray | expSamplesSeqSpec |
user specification for expansion_samples (array for multifidelity) | |
size_t | sequenceIndex |
sequence index for {expOrder,collocPts,expSamples}SeqSpec | |
RealMatrix | pceGradsMeanX |
derivative of the PCE with respect to the x-space variables evaluated at the means (used as uncertainty importance metrics) | |
bool | normalizedCoeffOutput |
user request for use of normalization when outputting PCE coefficients |
Nonintrusive polynomial chaos expansion approaches to uncertainty quantification.
The NonDPolynomialChaos class uses a polynomial chaos expansion (PCE) approach to approximate the effect of parameter uncertainties on response functions of interest. It utilizes the OrthogPolyApproximation class to manage multiple types of orthogonal polynomials within a Wiener-Askey scheme to PCE. It supports PCE coefficient estimation via sampling, quadrature, point-collocation, and file import.
NonDPolynomialChaos | ( | ProblemDescDB & | problem_db, |
Model & | model | ||
) |
standard constructor
This constructor is called for a standard letter-envelope iterator instantiation using the ProblemDescDB.
References Dakota::abort_handler(), Response::active_set(), NonDIntegration::anisotropic_order_to_dimension_preference(), Model::assign_rep(), NonDPolynomialChaos::collocPtsSeqSpec, NonDPolynomialChaos::collocRatio, ParallelLibrary::command_line_check(), NonDExpansion::construct_cubature(), NonDExpansion::construct_expansion_sampler(), NonD::construct_lhs(), NonDExpansion::construct_quadrature(), NonDExpansion::construct_sparse_grid(), Model::current_response(), NonDIntegration::dimension_preference_to_anisotropic_order(), NonDPolynomialChaos::dimPrefSpec, NonDExpansion::expansionBasisType, NonDExpansion::expansionCoeffsApproach, NonDPolynomialChaos::expansionImportFile, NonDPolynomialChaos::expOrderSeqSpec, NonDPolynomialChaos::expSamplesSeqSpec, ProblemDescDB::get_bool(), ProblemDescDB::get_real(), ProblemDescDB::get_short(), ProblemDescDB::get_string(), ProblemDescDB::get_usa(), ProblemDescDB::get_ushort(), NonDExpansion::initialize(), NonDPolynomialChaos::initialize_u_space_model(), Iterator::iteratedModel, Iterator::maxEvalConcurrency, NonD::numContDesVars, NonD::numContEpistUncVars, Analyzer::numContinuousVars, NonD::numContStateVars, NonDExpansion::numSamplesOnModel, Iterator::outputLevel, Iterator::parallelLib, Iterator::probDescDB, NonDPolynomialChaos::randomSeed, NonDExpansion::refineControl, NonDExpansion::refineType, ActiveSet::request_values(), NonDPolynomialChaos::resolve_inputs(), NonDPolynomialChaos::sequenceIndex, NonDPolynomialChaos::tensorRegression, NonDPolynomialChaos::terms_ratio_to_samples(), NonDPolynomialChaos::terms_samples_to_ratio(), NonDPolynomialChaos::termsOrder, NonD::transform_model(), NonDExpansion::uSpaceModel, and Analyzer::vary_pattern().
NonDPolynomialChaos | ( | Model & | model, |
short | exp_coeffs_approach, | ||
const UShortArray & | num_int_seq, | ||
const RealVector & | dim_pref, | ||
short | u_space_type, | ||
bool | piecewise_basis, | ||
bool | use_derivs | ||
) |
alternate constructor for numerical integration
This constructor is used for helper iterator instantiation on the fly that employ numerical integration (quadrature, sparse grid, cubature).
References Response::active_set(), Model::assign_rep(), NonDExpansion::construct_cubature(), NonDExpansion::construct_quadrature(), NonDExpansion::construct_sparse_grid(), Model::current_response(), NonDExpansion::expansionCoeffsApproach, NonDExpansion::initialize(), NonDPolynomialChaos::initialize_u_space_model(), Iterator::iteratedModel, Iterator::outputLevel, ActiveSet::request_values(), NonDPolynomialChaos::resolve_inputs(), NonD::transform_model(), and NonDExpansion::uSpaceModel.
NonDPolynomialChaos | ( | Model & | model, |
short | exp_coeffs_approach, | ||
const UShortArray & | exp_order_seq, | ||
const RealVector & | dim_pref, | ||
Real | colloc_ratio, | ||
int | seed, | ||
short | u_space_type, | ||
bool | piecewise_basis, | ||
bool | use_derivs, | ||
bool | cv_flag | ||
) |
alternate constructor for regression
This constructor is used for helper iterator instantiation on the fly that employ regression (least squares, CS, OLI).
References Response::active_set(), Model::assign_rep(), NonDPolynomialChaos::collocRatio, NonD::construct_lhs(), NonDExpansion::construct_quadrature(), Model::current_response(), NonDIntegration::dimension_preference_to_anisotropic_order(), NonDPolynomialChaos::dimPrefSpec, NonDExpansion::expansionBasisType, NonDPolynomialChaos::expOrderSeqSpec, NonDExpansion::initialize(), NonDPolynomialChaos::initialize_u_space_model(), Iterator::iteratedModel, Analyzer::numContinuousVars, NonDExpansion::numSamplesOnModel, Iterator::outputLevel, NonDPolynomialChaos::randomSeed, ActiveSet::request_values(), NonDPolynomialChaos::resolve_inputs(), NonDPolynomialChaos::sequenceIndex, NonDPolynomialChaos::tensorRegression, NonDPolynomialChaos::terms_ratio_to_samples(), NonD::transform_model(), and NonDExpansion::uSpaceModel.
void increment_specification_sequence | ( | ) | [protected, virtual] |
increment the input specification sequence (PCE only)
default implementation is overridden by PCE
Reimplemented from NonDExpansion.
References NonDPolynomialChaos::collocPtsSeqSpec, NonDPolynomialChaos::collocRatio, SharedApproxData::data_rep(), NonDIntegration::dimension_preference_to_anisotropic_order(), NonDPolynomialChaos::dimPrefSpec, SharedPecosApproxData::expansion_order(), NonDExpansion::expansionBasisType, NonDExpansion::expansionCoeffsApproach, NonDPolynomialChaos::expOrderSeqSpec, NonDPolynomialChaos::expSamplesSeqSpec, Iterator::iterator_rep(), NonDQuadrature::mode(), Model::model_rep(), Analyzer::numContinuousVars, NonDExpansion::numSamplesOnModel, NonDQuadrature::quadrature_order(), NonDQuadrature::samples(), Iterator::sampling_reference(), NonDPolynomialChaos::sequenceIndex, Model::shared_approximation(), Model::subordinate_iterator(), NonDPolynomialChaos::tensorRegression, NonDPolynomialChaos::terms_ratio_to_samples(), DataFitSurrModel::total_points(), NonDQuadrature::update(), and NonDExpansion::uSpaceModel.
void increment_order_and_grid | ( | ) | [protected, virtual] |
uniformly increment the order of the polynomial chaos expansion and define a consistent grid increment
Used for uniform refinement of regression-based PCE.
Reimplemented from NonDExpansion.
References SharedApproxData::data_rep(), NonDPolynomialChaos::increment_grid_from_order(), SharedPecosApproxData::increment_order(), Model::shared_approximation(), and NonDExpansion::uSpaceModel.
void increment_grid_from_order | ( | ) | [private] |
define a grid increment that is consistent with an advancement in expansion order
Used for uniform refinement of regression-based PCE.
References NonDPolynomialChaos::collocRatio, SharedApproxData::data_rep(), SharedPecosApproxData::expansion_order(), NonDExpansion::expansionBasisType, NonDQuadrature::increment_grid(), Iterator::iterator_rep(), NonDQuadrature::mode(), Model::model_rep(), NonDExpansion::numSamplesOnModel, NonDQuadrature::samples(), Iterator::sampling_reference(), Model::shared_approximation(), Model::subordinate_iterator(), NonDPolynomialChaos::tensorRegression, NonDPolynomialChaos::terms_ratio_to_samples(), DataFitSurrModel::total_points(), NonDQuadrature::update(), and NonDExpansion::uSpaceModel.
Referenced by NonDPolynomialChaos::increment_order_and_grid().
void increment_order_from_grid | ( | ) | [private] |
define an expansion order that is consistent with an advancement in structured/unstructured grid level/density
Used for uniform refinement of regression-based PCE.
References NonDPolynomialChaos::collocRatio, SharedApproxData::data_rep(), SharedPecosApproxData::expansion_order(), NonDExpansion::numSamplesOnModel, NonDPolynomialChaos::ratio_samples_to_order(), Model::shared_approximation(), and NonDExpansion::uSpaceModel.
Referenced by NonDPolynomialChaos::append().