Base class for polynomial chaos expansions (PCE) and stochastic collocation (SC) More...
Public Member Functions | |
NonDExpansion (Model &model) | |
standard constructor | |
NonDExpansion (Model &model, short exp_coeffs_approach, short u_space_type, bool piecewise_basis, bool use_derivs) | |
alternate constructor | |
~NonDExpansion () | |
destructor | |
void | quantify_uncertainty () |
perform a forward uncertainty propagation using PCE/SC methods | |
void | print_results (std::ostream &s) |
print the final statistics | |
const Model & | algorithm_space_model () const |
return the result of any recasting or surrogate model recursion layered on top of iteratedModel by the derived Iterator ctor chain | |
Protected Member Functions | |
virtual void | resolve_inputs (short &u_space_type, short &data_order) |
perform error checks and mode overrides | |
virtual void | initialize_u_space_model () |
initialize uSpaceModel polynomial approximations with PCE/SC data | |
virtual void | initialize_expansion () |
initialize random variable definitions and final stats arrays | |
virtual void | compute_expansion () |
form the expansion by calling uSpaceModel.build_approximation() | |
virtual void | increment_expansion () |
uniformly increment the expansion order (PCE only) | |
virtual void | print_coefficients (std::ostream &s) |
print expansion coefficients, as supported by derived instance | |
void | initialize (short u_space_type) |
common constructor code for initialization of natafTransform | |
void | refine_expansion () |
refine the reference expansion found by compute_expansion() using uniform/adaptive p-/h-refinement strategies | |
void | update_expansion () |
update the expansion by calling uSpaceModel.build_approximation(); avoids unnecessary overhead in compute_expansion() | |
void | update_hierarchy () |
update settings for subsequent passes in the case of multifidelity models | |
void | construct_cubature (Iterator &u_space_sampler, Model &g_u_model, unsigned short cub_int_order) |
assign a NonDCubature instance within u_space_sampler | |
void | construct_quadrature (Iterator &u_space_sampler, Model &g_u_model, const UShortArray &quad_order, const RealVector &dim_pref) |
assign a NonDQuadrature instance within u_space_sampler based on a quad_order specification | |
void | construct_quadrature (Iterator &u_space_sampler, Model &g_u_model, int filtered_samples, const RealVector &dim_pref) |
assign a NonDQuadrature instance within u_space_sampler based on the size of a filtered tensor product sample set | |
void | construct_sparse_grid (Iterator &u_space_sampler, Model &g_u_model, const UShortArray &ssg_level, const RealVector &ssg_dim_pref) |
assign a NonDSparsegrid instance within u_space_sampler | |
void | construct_expansion_sampler () |
construct the expansionSampler operating on uSpaceModel | |
void | compute_statistics () |
calculate analytic and numerical statistics from the expansion | |
void | update_final_statistics () |
update finalStatistics | |
Protected Attributes | |
Model | uSpaceModel |
Model representing the approximate response function in u-space, after u-space recasting and orthogonal polynomial data fit recursions. | |
short | expansionCoeffsApproach |
method for collocation point generation and subsequent calculation of the expanion coefficients | |
size_t | numUncertainQuant |
number of invocations of quantify_uncertainty() | |
int | numSamplesOnModel |
number of truth samples performed on g_u_model to form the expansion | |
int | numSamplesOnExpansion |
number of approximation samples performed on the polynomial expansion in order to estimate probabilities | |
bool | nestedRules |
flag for indicating state of nested and non_nested overrides of default rule nesting, which depends on the type of integration driver | |
bool | piecewiseBasis |
flag for piecewise specification, indicating usage of local basis polynomials within the stochastic expansion | |
bool | useDerivs |
flag for use_derivatives specification, indicating usage of derivative data (with respect to expansion variables) to enhance the calculation of the stochastic expansion. | |
short | refineType |
refinement type: NO_REFINEMENT, P_REFINEMENT, or H_REFINEMENT | |
short | refineControl |
refinement control: NO_CONTROL, UNIFORM_CONTROL, DIMENSION_ADAPTIVE_TOTAL_SOBOL, DIMENSION_ADAPTIVE_SPECTRAL_DECAY, or DIMENSION_ADAPTIVE_GENERALIZED_SPARSE | |
Private Member Functions | |
void | reduce_total_sobol_sets (RealVector &avg_sobol) |
compute average of total Sobol' indices (from VBD) across the response set for use as an anisotropy indicator | |
void | reduce_decay_rate_sets (RealVector &min_decay) |
compute minimum of spectral coefficient decay rates across the response set for use as an anisotropy indicator | |
void | initialize_sets () |
initialization of adaptive refinement using generalized sparse grids | |
Real | increment_sets () |
perform an adaptive refinement increment using generalized sparse grids | |
void | finalize_sets (bool converged_within_tol) |
finalization of adaptive refinement using generalized sparse grids | |
Real | compute_covariance_metric (const RealSymMatrix &resp_covar_ref) |
compute 2-norm of change in response covariance | |
Real | compute_final_statistics_metric (const RealVector &final_stats_ref) |
compute 2-norm of change in final statistics | |
void | compute_covariance () |
calculate respCovariance | |
void | compute_off_diagonal_covariance () |
calculate respCovariance(i,j) for j<i | |
void | print_moments (std::ostream &s) |
print expansion and numerical moments | |
void | print_covariance (std::ostream &s) |
print respCovariance | |
void | print_sobol_indices (std::ostream &s) |
print global sensitivity indices | |
void | print_local_sensitivity (std::ostream &s) |
print local sensitivities evaluated at initialPtU | |
void | compute_print_increment_results () |
manage print of results following a refinement increment | |
void | compute_print_iteration_results (bool initialize) |
manage print of results following a refinement increment | |
void | compute_print_converged_results (bool print_override=false) |
manage print of results following convergence of iterative refinement | |
Private Attributes | |
short | ruleNestingOverride |
user override of default rule nesting: NO_NESTING_OVERRIDE, NESTED, or NON_NESTED | |
short | ruleGrowthOverride |
user override of default rule growth: NO_GROWTH_OVERRIDE, RESTRICTED, or UNRESTRICTED | |
Iterator | expansionSampler |
Iterator used for sampling on the uSpaceModel to generate approximate probability/reliability/response level statistics. Currently this is an LHS sampling instance, but AIS could also be used. | |
Iterator | importanceSampler |
Iterator used to refine the approximate probability estimates generated by the expansionSampler using importance sampling. | |
bool | expSampling |
flag to indicate calculation of numerical statistics by sampling on the expansion | |
bool | impSampling |
flag to use LHS sampling or MMAIS sampling on the expansion | |
RealVector | initialPtU |
stores the initial variables data in u-space | |
RealMatrix | expGradsMeanX |
derivative of the expansion with respect to the x-space variables evaluated at the means (used as uncertainty importance metrics) | |
RealSymMatrix | respCovariance |
symmetric matrix of analytic response covariance | |
short | vbdControl |
enumeration for controlling VBD calculation and output: NO_VBD, UNIVARIATE_VBD, or ALL_VBD | |
Real | vbdDropTol |
tolerance for omitting output of small VBD indices |
Base class for polynomial chaos expansions (PCE) and stochastic collocation (SC)
The NonDExpansion class provides a base class for methods that use polynomial expansions to approximate the effect of parameter uncertainties on response functions of interest.
void compute_statistics | ( | ) | [protected] |
calculate analytic and numerical statistics from the expansion
Calculate analytic and numerical statistics from the expansion and log results within final_stats for use in OUU.
References Dakota::abort_handler(), Iterator::active_set(), Response::active_set_derivative_vector(), Response::active_set_request_vector(), Iterator::all_responses(), Iterator::all_samples(), Model::approximation_data(), Model::approximations(), NonD::cdfFlag, PecosApproximation::compute_component_effects(), PecosApproximation::compute_moments(), NonDExpansion::compute_off_diagonal_covariance(), PecosApproximation::compute_total_effects(), NonD::computedGenRelLevels, NonD::computedProbLevels, NonD::computedRelLevels, NonD::computedRespLevels, Model::continuous_variable_ids(), Model::continuous_variables(), Dakota::copy_data(), PecosApproximation::expansion_coefficient_flag(), NonDExpansion::expansionSampler, NonDExpansion::expGradsMeanX, NonDExpansion::expSampling, NonD::finalStatistics, Response::function_gradient(), Response::function_value(), Response::function_values(), NonDAdaptImpSampling::get_probability(), NonDExpansion::importanceSampler, NonDExpansion::impSampling, Iterator::initial_points(), NonDAdaptImpSampling::initialize(), NonD::initialize_distribution_mappings(), NonD::initialize_random_variables(), NonDExpansion::initialPtU, Iterator::iteratedModel, Iterator::iterator_rep(), PecosApproximation::mean_gradient(), PecosApproximation::moments(), NonD::natafTransform, NonD::numContDesVars, NonD::numContEpistUncVars, Iterator::numContinuousVars, NonD::numContStateVars, Iterator::numFunctions, NonDExpansion::numSamplesOnExpansion, Iterator::outputLevel, NonDExpansion::refineControl, ActiveSet::request_vector(), NonD::requestedGenRelLevels, NonD::requestedProbLevels, NonD::requestedRelLevels, NonD::requestedRespLevels, NonDExpansion::respCovariance, NonD::respLevelTarget, Iterator::response_results(), Iterator::run_iterator(), Iterator::subIteratorFlag, NonD::totalLevelRequests, NonDSampling::update_final_statistics(), NonDExpansion::uSpaceModel, PecosApproximation::variance_gradient(), and NonDExpansion::vbdControl.
Referenced by NonDExpansion::compute_final_statistics_metric(), NonDExpansion::compute_print_converged_results(), NonDExpansion::compute_print_increment_results(), and NonDExpansion::compute_print_iteration_results().
Real compute_final_statistics_metric | ( | const RealVector & | final_stats_ref | ) | [private] |
compute 2-norm of change in final statistics
computes a "goal-oriented" refinement metric employing finalStatistics
References NonDExpansion::compute_statistics(), NonD::finalStatistics, Response::function_values(), Iterator::numFunctions, NonD::requestedGenRelLevels, NonD::requestedProbLevels, NonD::requestedRelLevels, and NonD::requestedRespLevels.
Referenced by NonDExpansion::increment_sets().
bool useDerivs [protected] |
flag for use_derivatives
specification, indicating usage of derivative data (with respect to expansion variables) to enhance the calculation of the stochastic expansion.
This is part of the method specification since the instantiation of the global data fit surrogate is implicit with no user specification. This behavior is distinct from the usage of response derivatives with respect to auxilliary variables (design, epistemic) for computing derivatives of aleatory expansion statistics with respect to these variables.
Referenced by NonDExpansion::compute_expansion(), NonDPolynomialChaos::initialize_u_space_model(), NonDStochCollocation::initialize_u_space_model(), NonDPolynomialChaos::resolve_inputs(), NonDStochCollocation::resolve_inputs(), NonDPolynomialChaos::terms_ratio_to_samples(), and NonDPolynomialChaos::terms_samples_to_ratio().