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

Derived nondeterministic class that generates N-dimensional numerical quadrature points for evaluation of expectation integrals over uncorrelated standard normals/uniforms/exponentials/betas/gammas. More...

Inheritance diagram for NonDQuadrature:
NonDIntegration NonD Analyzer Iterator

List of all members.

Public Member Functions

 NonDQuadrature (Model &model, const Pecos::ShortArray &u_types, const UShortArray &order, bool nested_rules=false)
const Pecos::UShortArray & quadrature_order () const
 return quadOrder

Protected Member Functions

 NonDQuadrature (Model &model)
 constructor
 ~NonDQuadrature ()
 destructor
void get_parameter_sets (Model &model)
 Returns one block of samples (ndim * num_samples)
void reset ()
 restore initial state for repeated sub-iterator executions
void sampling_reset (int min_samples, bool all_data_flag, bool stats_flag)
void increment_grid ()
 increment SSG level/TPQ order
void increment_grid (const RealVector &dim_pref)
 increment SSG level/TPQ order and update anisotropy

Private Member Functions

void anisotropic_preference (const RealVector &dim_pref)
 update quadOrder based on an updated dimension preference
void check_integration (const UShortArray &quad_order_spec)
 verify self-consistency of integration specification
void nested_quadrature_order (const UShortArray &quad_order_ref)
 update quadOrder from quadOrderRef to account for nested rule constraints
size_t reference_grid_size ()
 return Product_i(quadOrderRef[i])
void increment_reference ()
 increment each quadOrderRef entry by 1
void increment_reference (const RealVector &dim_pref)
 increment the quadOrderRef entry with maximum preference by 1

Private Attributes

Pecos::TensorProductDriver * tpqDriver
 convenience pointer to the numIntDriver representation
bool nestedRules
 for studies involving refinement strategies, allow for use of nested quadrature rules such as Gauss-Patterson
UShortArray quadOrderSpec
 the user specification for the number of Gauss points per dimension
UShortArray quadOrderRef
 reference point for Pecos::TensorProductDriver::quadOrder: the original user specification for the number of Gauss points per dimension, plus any refinements posted by increment_grid()

Detailed Description

Derived nondeterministic class that generates N-dimensional numerical quadrature points for evaluation of expectation integrals over uncorrelated standard normals/uniforms/exponentials/betas/gammas.

This class is used by NonDPolynomialChaos, but could also be used for general numerical integration of moments. It employs Gauss-Hermite, Gauss-Legendre, Gauss-Laguerre, Gauss-Jacobi and generalized Gauss-Laguerre quadrature for use with normal, uniform, exponential, beta, and gamma density functions and integration bounds. The abscissas and weights for one-dimensional integration are extracted from the appropriate OrthogonalPolynomial class and are extended to n-dimensions using a tensor product approach.


Constructor & Destructor Documentation

NonDQuadrature ( Model model,
const Pecos::ShortArray &  u_types,
const UShortArray &  order,
bool  nested_rules = false 
)

This alternate constructor is used for on-the-fly generation and evaluation of numerical quadrature points.

References NonDQuadrature::check_integration(), Iterator::maxConcurrency, NonDQuadrature::nestedRules, NonDIntegration::numIntDriver, and NonDQuadrature::tpqDriver.

NonDQuadrature ( Model model) [protected]

constructor

This constructor is called for a standard letter-envelope iterator instantiation. In this case, set_db_list_nodes has been called and probDescDB can be queried for settings from the method specification. It is not currently used, as there is not yet a separate nond_quadrature method specification.

References NonDQuadrature::check_integration(), NonDIntegration::check_variables(), ProblemDescDB::get_dusa(), Iterator::maxConcurrency, NonD::natafTransform, NonDQuadrature::nestedRules, NonDIntegration::numIntDriver, Iterator::probDescDB, and NonDQuadrature::tpqDriver.


Member Function Documentation

void sampling_reset ( int  min_samples,
bool  all_data_flag,
bool  stats_flag 
) [protected, virtual]

used by DataFitSurrModel::build_global() to publish the minimum number of points needed from the quadrature routine in order to build a particular global approximation.

Reimplemented from Iterator.

References NonDQuadrature::nested_quadrature_order(), NonDQuadrature::nestedRules, Iterator::numContinuousVars, NonDQuadrature::quadOrderRef, NonDQuadrature::quadrature_order(), NonDQuadrature::reference_grid_size(), and NonDQuadrature::tpqDriver.


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