Base class for all nondetermistic iterators (the DAKOTA/UQ branch). More...
Public Member Functions | |
void | initialize_random_variables (short u_space_type) |
initialize natafTransform based on distribution data from iteratedModel | |
void | initialize_random_variables (const Pecos::ProbabilityTransformation &transform) |
alternate form: initialize natafTransform based on incoming data | |
void | requested_levels (const RealVectorArray &req_resp_levels, const RealVectorArray &req_prob_levels, const RealVectorArray &req_rel_levels, const RealVectorArray &req_gen_rel_levels, short resp_lev_target, bool cdf_flag) |
set requestedRespLevels, requestedProbLevels, requestedRelLevels, requestedGenRelLevels, respLevelTarget, and cdfFlag (used in combination with alternate ctors) | |
void | distribution_parameter_derivatives (bool dist_param_derivs) |
set distParamDerivs | |
bool | pdf_output () const |
get pdfOutput | |
void | pdf_output (bool output) |
set pdfOutput | |
Pecos::ProbabilityTransformation & | variable_transformation () |
return natafTransform | |
Protected Member Functions | |
NonD (Model &model) | |
constructor | |
NonD (NoDBBaseConstructor, Model &model) | |
alternate constructor for sample generation and evaluation "on the fly" | |
NonD (NoDBBaseConstructor, const RealVector &lower_bnds, const RealVector &upper_bnds) | |
alternate constructor for sample generation "on the fly" | |
~NonD () | |
destructor | |
void | initialize_run () |
utility function to perform common operations prior to pre_run(); typically memory initialization; setting of instance pointers | |
void | run () |
run portion of run_iterator; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post | |
void | finalize_run () |
utility function to perform common operations following post_run(); deallocation and resetting of instance pointers | |
const Response & | response_results () const |
return the final statistics from the nondeterministic iteration | |
void | response_results_active_set (const ActiveSet &set) |
set the active set within finalStatistics | |
virtual void | quantify_uncertainty ()=0 |
performs a forward uncertainty propagation of parameter distributions into response statistics | |
virtual void | initialize_final_statistics () |
initializes finalStatistics for storing NonD final results | |
void | initialize_random_variable_transformation () |
instantiate natafTransform | |
void | initialize_random_variable_types (short u_space_type) |
initializes ranVarTypesX and ranVarTypesU within natafTransform | |
void | initialize_random_variable_parameters () |
initializes ranVarMeansX, ranVarStdDevsX, ranVarLowerBndsX, ranVarUpperBndsX, and ranVarAddtlParamsX within natafTransform | |
void | initialize_random_variable_correlations () |
propagate iteratedModel correlations to natafTransform | |
void | verify_correlation_support () |
verify that correlation warping supported by Der Kiureghian & Liu for given variable types | |
void | initialize_final_statistics_gradients () |
initializes finalStatistics::functionGradients | |
void | initialize_distribution_mappings () |
size computed{Resp,Prob,Rel,GenRel}Levels | |
void | print_distribution_mappings (std::ostream &s) const |
prints the z/p/beta/beta* mappings reflected in {requested,computed}{Resp,Prob,Rel,GenRel}Levels | |
void | construct_u_space_model (Model &x_model, Model &u_model, bool global_bounds=false, Real bound=10.) |
recast x_model from x-space to u-space to create u_model | |
void | construct_lhs (Iterator &u_space_sampler, Model &u_model, int num_samples, int seed, const String &rng) |
assign a NonDLHSSampling instance within u_space_sampler | |
Static Protected Member Functions | |
static void | vars_u_to_x_mapping (const Variables &u_vars, Variables &x_vars) |
static function for RecastModels used to map u-space variables from NonD Iterators to x-space variables for Model evaluations. | |
static void | set_u_to_x_mapping (const Variables &u_vars, const ActiveSet &u_set, ActiveSet &x_set) |
static function for RecastModels used to map u-space ActiveSets from NonD Iterators to x-space ActiveSets for Model evaluations. | |
static void | resp_x_to_u_mapping (const Variables &x_vars, const Variables &u_vars, const Response &x_response, Response &u_response) |
static function for RecastModels used to map x-space responses from Model evaluations to u-space responses for return to NonD Iterators. | |
Protected Attributes | |
NonD * | prevNondInstance |
pointer containing previous value of nondInstance | |
Pecos::ProbabilityTransformation | natafTransform |
Nonlinear variable transformation that encapsulates the required data for performing transformations from X -> Z -> U and back. | |
size_t | numContDesVars |
number of continuous design variables (modeled using uniform distribution for All view modes) | |
size_t | numDiscIntDesVars |
number of discrete integer design variables (modeled using discrete histogram distributions for All view modes) | |
size_t | numDiscRealDesVars |
number of discrete real design variables (modeled using discrete histogram distributions for All view modes) | |
size_t | numDesignVars |
total number of design variables | |
size_t | numContStateVars |
number of continuous state variables (modeled using uniform distribution for All view modes) | |
size_t | numDiscIntStateVars |
number of discrete integer state variables (modeled using discrete histogram distributions for All view modes) | |
size_t | numDiscRealStateVars |
number of discrete real state variables (modeled using discrete histogram distributions for All view modes) | |
size_t | numStateVars |
total number of state variables | |
size_t | numNormalVars |
number of normal uncertain variables (native space) | |
size_t | numLognormalVars |
number of lognormal uncertain variables (native space) | |
size_t | numUniformVars |
number of uniform uncertain variables (native space) | |
size_t | numLoguniformVars |
number of loguniform uncertain variables (native space) | |
size_t | numTriangularVars |
number of triangular uncertain variables (native space) | |
size_t | numExponentialVars |
number of exponential uncertain variables (native space) | |
size_t | numBetaVars |
number of beta uncertain variables (native space) | |
size_t | numGammaVars |
number of gamma uncertain variables (native space) | |
size_t | numGumbelVars |
number of gumbel uncertain variables (native space) | |
size_t | numFrechetVars |
number of frechet uncertain variables (native space) | |
size_t | numWeibullVars |
number of weibull uncertain variables (native space) | |
size_t | numHistogramBinVars |
number of histogram bin uncertain variables (native space) | |
size_t | numPoissonVars |
number of Poisson uncertain variables (native space) | |
size_t | numBinomialVars |
number of binomial uncertain variables (native space) | |
size_t | numNegBinomialVars |
number of negative binomial uncertain variables (native space) | |
size_t | numGeometricVars |
number of geometric uncertain variables (native space) | |
size_t | numHyperGeomVars |
number of hypergeometric uncertain variables (native space) | |
size_t | numHistogramPtVars |
number of histogram point uncertain variables (native space) | |
size_t | numIntervalVars |
number of interval uncertain variables (native space) | |
size_t | numContAleatUncVars |
total number of aleatory uncertain variables (native space) | |
size_t | numDiscIntAleatUncVars |
total number of aleatory uncertain variables (native space) | |
size_t | numDiscRealAleatUncVars |
total number of aleatory uncertain variables (native space) | |
size_t | numAleatoryUncVars |
total number of aleatory uncertain variables (native space) | |
size_t | numContEpistUncVars |
total number of epistemic uncertain variables (native space) | |
size_t | numDiscIntEpistUncVars |
total number of epistemic uncertain variables (native space) | |
size_t | numDiscRealEpistUncVars |
total number of epistemic uncertain variables (native space) | |
size_t | numEpistemicUncVars |
total number of epistemic uncertain variables (native space) | |
size_t | numUncertainVars |
total number of uncertain variables (native space) | |
RealVectorArray | requestedRespLevels |
requested response levels for all response functions | |
RealVectorArray | computedProbLevels |
output probability levels for all response functions resulting from requestedRespLevels | |
RealVectorArray | computedRelLevels |
output reliability levels for all response functions resulting from requestedRespLevels | |
RealVectorArray | computedGenRelLevels |
output generalized reliability levels for all response functions resulting from requestedRespLevels | |
short | respLevelTarget |
indicates mapping of z->p (PROBABILITIES), z->beta (RELIABILITIES), or z->beta* (GEN_RELIABILITIES) | |
RealVectorArray | requestedProbLevels |
requested probability levels for all response functions | |
RealVectorArray | requestedRelLevels |
requested reliability levels for all response functions | |
RealVectorArray | requestedGenRelLevels |
requested generalized reliability levels for all response functions | |
RealVectorArray | computedRespLevels |
output response levels for all response functions resulting from requestedProbLevels, requestedRelLevels, or requestedGenRelLevels | |
size_t | totalLevelRequests |
total number of levels specified within requestedRespLevels, requestedProbLevels, and requestedRelLevels | |
bool | cdfFlag |
flag for type of probabilities/reliabilities used in mappings: cumulative/CDF (true) or complementary/CCDF (false) | |
bool | pdfOutput |
flag for managing output of response probability density functions (PDFs) | |
Response | finalStatistics |
final statistics from the uncertainty propagation used in strategies: response means, standard deviations, and probabilities of failure | |
Static Protected Attributes | |
static NonD * | nondInstance |
pointer to the active object instance used within static evaluator functions in order to avoid the need for static data | |
Private Member Functions | |
void | distribute_levels (RealVectorArray &levels, bool ascending=true) |
convenience function for distributing a vector of levels among multiple response functions if a short-hand specification is employed. | |
Private Attributes | |
bool | distParamDerivs |
flags calculation of derivatives with respect to distribution parameters s within resp_x_to_u_mapping() using the chain rule df/dx dx/ds. The default is to calculate derivatives with respect to standard random variables u using the chain rule df/dx dx/du. |
Base class for all nondetermistic iterators (the DAKOTA/UQ branch).
The base class for nondeterministic iterators consolidates uncertain variable data and probabilistic utilities for inherited classes.
void initialize_random_variables | ( | short | u_space_type | ) |
initialize natafTransform based on distribution data from iteratedModel
Build ProbabilityTransformation::ranVar arrays containing the uncertain variable distribution types and their corresponding means/standard deviations. This function is used when the Model variables are in x-space.
References NonD::initialize_random_variable_correlations(), NonD::initialize_random_variable_parameters(), NonD::initialize_random_variable_transformation(), NonD::initialize_random_variable_types(), NonD::natafTransform, and NonD::verify_correlation_support().
Referenced by NonDExpansion::compute_statistics(), NonDGlobalReliability::importance_sampling(), NonDLocalReliability::initialize_class_data(), NonDExpansion::initialize_expansion(), NonDAdaptImpSampling::NonDAdaptImpSampling(), and NonDGlobalReliability::optimize_gaussian_process().
void initialize_random_variables | ( | const Pecos::ProbabilityTransformation & | transform | ) |
alternate form: initialize natafTransform based on incoming data
This function is commonly used to publish tranformation data when the Model variables are in a transformed space (e.g., u-space) and ProbabilityTransformation::ranVarTypes et al. may not be generated directly. This allows for the use of inverse transformations to return the transformed space variables to their original states.
References NonD::initialize_random_variable_transformation(), NonD::natafTransform, NonD::numContDesVars, and NonD::numContStateVars.
void initialize_run | ( | ) | [inline, protected, virtual] |
utility function to perform common operations prior to pre_run(); typically memory initialization; setting of instance pointers
Perform initialization phases of run sequence, like allocating memory and setting instance pointers. Commonly used in sub-iterator executions. This is a virtual function; when re-implementing, a derived class must call its nearest parent's initialize_run(), typically _before_ performing its own implementation steps.
Reimplemented from Iterator.
References NonD::nondInstance, and NonD::prevNondInstance.
void run | ( | ) | [inline, protected, virtual] |
run portion of run_iterator; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post
Virtual run function for the iterator class hierarchy. All derived classes need to redefine it.
Reimplemented from Iterator.
References Analyzer::bestVarsRespMap, and NonD::quantify_uncertainty().
void finalize_run | ( | ) | [inline, protected, virtual] |
utility function to perform common operations following post_run(); deallocation and resetting of instance pointers
Optional: perform finalization phases of run sequence, like deallocating memory and resetting instance pointers. Commonly used in sub-iterator executions. This is a virtual function; when re-implementing, a derived class must call its nearest parent's finalize_run(), typically _after_ performing its own implementation steps.
Reimplemented from Iterator.
References NonD::nondInstance, and NonD::prevNondInstance.
void initialize_final_statistics | ( | ) | [protected, virtual] |
initializes finalStatistics for storing NonD final results
Default definition of virtual function (used by sampling, reliability, and stochastic expansion methods) defines the set of statistical results to include means, standard deviations, and level mappings.
Reimplemented in NonDInterval.
References NonD::cdfFlag, Model::cv(), ActiveSet::derivative_vector(), NonD::finalStatistics, Response::function_labels(), Model::inactive_continuous_variable_ids(), Iterator::iteratedModel, NonD::numEpistemicUncVars, Iterator::numFunctions, NonD::requestedGenRelLevels, NonD::requestedProbLevels, NonD::requestedRelLevels, NonD::requestedRespLevels, NonD::respLevelTarget, and NonD::totalLevelRequests.
Referenced by NonDExpansion::NonDExpansion(), NonDIntegration::NonDIntegration(), NonDReliability::NonDReliability(), NonDSampling::NonDSampling(), and NonD::requested_levels().
void initialize_random_variable_types | ( | short | u_space_type | ) | [protected] |
initializes ranVarTypesX and ranVarTypesU within natafTransform
Build ProbabilityTransformation::ranVar arrays containing the uncertain variable distribution types and their corresponding means/standard deviations. This function is used when the Model variables are in x-space.
References Dakota::abort_handler(), Model::cv(), Model::distribution_parameters(), Iterator::iteratedModel, NonD::natafTransform, NonD::numBetaVars, NonD::numContDesVars, NonD::numContStateVars, NonD::numExponentialVars, NonD::numFrechetVars, NonD::numGammaVars, NonD::numGumbelVars, NonD::numHistogramBinVars, NonD::numHistogramPtVars, NonD::numIntervalVars, NonD::numLognormalVars, NonD::numLoguniformVars, NonD::numNormalVars, NonD::numTriangularVars, NonD::numUniformVars, and NonD::numWeibullVars.
Referenced by NonDExpansion::initialize(), NonD::initialize_random_variables(), NonDBayesCalibration::NonDBayesCalibration(), NonDIntegration::NonDIntegration(), and NonDReliability::NonDReliability().
void initialize_random_variable_parameters | ( | ) | [protected] |
initializes ranVarMeansX, ranVarStdDevsX, ranVarLowerBndsX, ranVarUpperBndsX, and ranVarAddtlParamsX within natafTransform
Build ProbabilityTransformation::ranVar arrays containing the uncertain variable distribution types and their corresponding means/standard deviations. This function is used when the Model variables are in x-space.
References Dakota::abort_handler(), Model::continuous_lower_bounds(), Model::continuous_upper_bounds(), Model::cv(), Model::distribution_parameters(), Iterator::iteratedModel, NonD::natafTransform, NonD::numBetaVars, NonD::numContDesVars, NonD::numContStateVars, NonD::numExponentialVars, NonD::numFrechetVars, NonD::numGammaVars, NonD::numGumbelVars, NonD::numHistogramBinVars, NonD::numHistogramPtVars, NonD::numIntervalVars, NonD::numLognormalVars, NonD::numLoguniformVars, NonD::numNormalVars, NonD::numTriangularVars, NonD::numUniformVars, and NonD::numWeibullVars.
Referenced by NonDExpansion::initialize_expansion(), NonD::initialize_random_variables(), NonDGlobalReliability::quantify_uncertainty(), NonDBayesCalibration::quantify_uncertainty(), and NonDLocalReliability::quantify_uncertainty().
void vars_u_to_x_mapping | ( | const Variables & | u_vars, |
Variables & | x_vars | ||
) | [static, protected] |
static function for RecastModels used to map u-space variables from NonD Iterators to x-space variables for Model evaluations.
Map the variables from iterator space (u) to simulation space (x).
References Variables::continuous_variables(), NonD::natafTransform, and NonD::nondInstance.
Referenced by NonD::construct_u_space_model().
void set_u_to_x_mapping | ( | const Variables & | u_vars, |
const ActiveSet & | u_set, | ||
ActiveSet & | x_set | ||
) | [static, protected] |
static function for RecastModels used to map u-space ActiveSets from NonD Iterators to x-space ActiveSets for Model evaluations.
Define the DVV for x-space derivative evaluations by augmenting the iterator requests to account for correlations.
References Dakota::_NPOS, Variables::all_continuous_variable_ids(), Dakota::contains(), Variables::continuous_variable_ids(), ActiveSet::derivative_vector(), Dakota::find_index(), Variables::inactive_continuous_variable_ids(), NonD::natafTransform, and NonD::nondInstance.
Referenced by NonD::construct_u_space_model().