Derived nondeterministic class that generates N-dimensional numerical quadrature points for evaluation of expectation integrals over uncorrelated standard normals/uniforms/exponentials/betas/gammas. More...
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() |
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.
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.
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.