Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
NonDExpansion Class Reference

Base class for polynomial chaos expansions (PCE) and stochastic collocation (SC) More...

Inheritance diagram for NonDExpansion:
NonD Analyzer Iterator NonDPolynomialChaos NonDStochCollocation

List of all members.

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 Modelalgorithm_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

Detailed Description

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.


Member Function Documentation

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().


Member Data Documentation

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().


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