$extrastylesheet
Dakota  Version 6.2
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 (ProblemDescDB &problem_db, Model &model)
 standard constructor
 NonDExpansion (unsigned short method_name, Model &model, short exp_coeffs_approach, short u_space_type, bool piecewise_basis, bool use_derivs)
 alternate constructor
 ~NonDExpansion ()
 destructor
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 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
virtual void append (const RealMatrix &samples, const IntResponseMap &resp_map)
 append new data to uSpaceModel and update expansion order (PCE only)

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_order_and_grid ()
 uniformly increment the expansion order and structured/unstructured grid (PCE only)
virtual void increment_specification_sequence ()
 increment the input specification sequence (PCE only)
virtual void update_expansion ()
 update an expansion; avoids overhead in compute_expansion()
virtual void print_coefficients (std::ostream &s)
 print expansion coefficients, as supported by derived instance
virtual void archive_coefficients ()
 archive expansion coefficients, as supported by derived instance
virtual Real compute_covariance_metric ()
 compute 2-norm of change in response covariance
virtual Real compute_final_statistics_metric ()
 compute 2-norm of change in final statistics
void initialize_response_covariance ()
 set covarianceControl defaults and shape respCovariance
void update_final_statistics ()
 update function values within finalStatistics
void update_final_statistics_gradients ()
 update function gradients within finalStatistics
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 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_seq, 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 that generates a filtered tensor product sample set
void construct_quadrature (Iterator &u_space_sampler, Model &g_u_model, int random_samples, int seed, const UShortArray &quad_order_seq, const RealVector &dim_pref)
 assign a NonDQuadrature instance within u_space_sampler that samples randomly from a tensor product multi-index
void construct_sparse_grid (Iterator &u_space_sampler, Model &g_u_model, const UShortArray &ssg_level_seq, 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 archive_moments ()
 archive the central moments (numerical and expansion) to ResultsDB

Protected Attributes

Model uSpaceModel
 Model representing the approximate response function in u-space, after u-space recasting and polynomial data fit recursions.
short expansionCoeffsApproach
 method for collocation point generation and subsequent calculation of the expansion coefficients
short expansionBasisType
 type of expansion basis: DEFAULT_BASIS or Pecos::{NODAL,HIERARCHICAL}_INTERPOLANT for SC or Pecos::{TENSOR_PRODUCT,TOTAL_ORDER,ADAPTED}_BASIS for PCE regression
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, LOCAL_ADAPTIVE_CONTROL, DIMENSION_ADAPTIVE_CONTROL_SOBOL, DIMENSION_ADAPTIVE_CONTROL_DECAY, or DIMENSION_ADAPTIVE_CONTROL_GENERALIZED
unsigned short softConvLimit
 number of consecutive iterations within tolerance required to indicate soft convergence
RealSymMatrix respCovariance
 symmetric matrix of analytic response covariance (full response covariance option)
RealVector respVariance
 vector of response variances (diagonal response covariance option)
RealVector initialPtU
 stores the initial variables data in u-space

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
void compute_covariance ()
 calculate the response covariance (diagonal or full matrix)
void compute_diagonal_variance ()
 calculate respVariance or diagonal terms respCovariance(i,i)
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
RealMatrix expGradsMeanX
 derivative of the expansion with respect to the x-space variables evaluated at the means (used as uncertainty importance metrics)
bool vbdFlag
 flag indicating the activation of variance-bsaed decomposition for computing Sobol' indices
unsigned short vbdOrderLimit
 limits the order of interactions within the component Sobol' indices
Real vbdDropTol
 tolerance for omitting output of small VBD indices
short covarianceControl
 enumeration for controlling response covariance calculation and output: {DEFAULT,DIAGONAL,FULL}_COVARIANCE

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

const Model & algorithm_space_model ( ) const [inline, virtual]

default definition that gets redefined in selected derived Minimizers

Reimplemented from Analyzer.

References NonDExpansion::uSpaceModel.

void increment_specification_sequence ( ) [protected, virtual]

increment the input specification sequence (PCE only)

default implementation is overridden by PCE

Reimplemented in NonDPolynomialChaos.

References NonDIntegration::increment_specification_sequence(), Iterator::iterator_rep(), Model::subordinate_iterator(), and NonDExpansion::uSpaceModel.

Referenced by NonDExpansion::quantify_uncertainty().

Real compute_covariance_metric ( ) [protected, virtual]

compute 2-norm of change in response covariance

computes the default refinement metric based on change in respCovariance

Reimplemented in NonDStochCollocation.

References NonDExpansion::compute_covariance(), NonDExpansion::covarianceControl, NonDExpansion::respCovariance, and NonDExpansion::respVariance.

Referenced by NonDExpansion::increment_sets(), and NonDExpansion::refine_expansion().

Real compute_final_statistics_metric ( ) [protected, virtual]

compute 2-norm of change in final statistics

computes a "goal-oriented" refinement metric employing finalStatistics

Reimplemented in NonDStochCollocation.

References NonDExpansion::compute_statistics(), NonD::finalStatistics, Response::function_values(), Analyzer::numFunctions, NonD::requestedGenRelLevels, NonD::requestedProbLevels, NonD::requestedRelLevels, and NonD::requestedRespLevels.

Referenced by NonDExpansion::increment_sets().

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(), ResultsManager::active(), 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::archive_allocate_mappings(), NonDExpansion::archive_coefficients(), NonD::archive_from_resp(), NonDExpansion::archive_moments(), NonD::archive_to_resp(), 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_variable_labels(), Model::continuous_variables(), Dakota::copy_data(), NonDExpansion::covarianceControl, Model::current_variables(), PecosApproximation::expansion_coefficient_flag(), NonDExpansion::expansionSampler, NonDExpansion::expGradsMeanX, NonDExpansion::expSampling, NonDAdaptImpSampling::final_probability(), NonD::finalStatistics, Response::function_gradient(), Response::function_value(), Response::function_values(), NonDExpansion::importanceSampler, NonDExpansion::impSampling, Iterator::initial_points(), NonDAdaptImpSampling::initialize(), NonD::initialize_distribution_mappings(), NonD::initialize_random_variables(), NonDExpansion::initialPtU, ResultsManager::insert(), Iterator::iteratedModel, Iterator::iterator_rep(), PecosApproximation::mean_gradient(), Iterator::methodPCIter, NonD::miPLIndex, PecosApproximation::moments(), NonD::natafTransform, NonD::numContDesVars, NonD::numContEpistUncVars, Analyzer::numContinuousVars, NonD::numContStateVars, Analyzer::numFunctions, NonDExpansion::numSamplesOnExpansion, Iterator::outputLevel, ActiveSet::request_vector(), NonD::requestedGenRelLevels, NonD::requestedProbLevels, NonD::requestedRelLevels, NonD::requestedRespLevels, NonDExpansion::respCovariance, NonD::respLevelTarget, Model::response_labels(), Iterator::response_results(), NonDExpansion::respVariance, Iterator::resultsDB, Iterator::resultsNames, Iterator::run(), Iterator::run_identifier(), Iterator::subIteratorFlag, NonD::totalLevelRequests, NonDSampling::update_final_statistics(), NonDExpansion::uSpaceModel, PecosApproximation::variance_gradient(), and NonDExpansion::vbdFlag.

Referenced by NonDStochCollocation::compute_final_statistics_metric(), NonDExpansion::compute_final_statistics_metric(), NonDExpansion::compute_print_converged_results(), NonDExpansion::compute_print_increment_results(), and NonDExpansion::compute_print_iteration_results().


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(), NonDStochCollocation::initialize_u_space_model(), NonDPolynomialChaos::initialize_u_space_model(), NonDPolynomialChaos::ratio_samples_to_order(), NonDStochCollocation::resolve_inputs(), NonDPolynomialChaos::resolve_inputs(), NonDPolynomialChaos::terms_ratio_to_samples(), and NonDPolynomialChaos::terms_samples_to_ratio().


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