$extrastylesheet
Dakota
Version 6.2
|
Base class for common code between NonDLHSSampling, NonDIncremLHSSampling, and NonDAdaptImpSampling. More...
Public Member Functions | |
void | compute_distribution_mappings (const IntResponseMap &samples) |
called by compute_statistics() to calculate CDF/CCDF mappings of z to p/beta and of p/beta to z | |
void | update_final_statistics () |
update finalStatistics from minValues/maxValues, momentStats, and computedProbLevels/computedRelLevels/computedRespLevels | |
void | print_pdf_mappings (std::ostream &s) const |
prints the PDFs computed in compute_statistics() | |
Protected Member Functions | |
NonDSampling (ProblemDescDB &problem_db, Model &model) | |
constructor | |
NonDSampling (unsigned short method_name, Model &model, unsigned short sample_type, int samples, int seed, const String &rng, bool vary_pattern, short sampling_vars_mode) | |
alternate constructor for sample generation and evaluation "on the fly" | |
NonDSampling (unsigned short sample_type, int samples, int seed, const String &rng, const RealVector &lower_bnds, const RealVector &upper_bnds) | |
alternate constructor for sample generation "on the fly" | |
~NonDSampling () | |
destructor | |
int | num_samples () const |
void | sampling_reset (int min_samples, bool all_data_flag, bool stats_flag) |
resets number of samples and sampling flags | |
void | sampling_reference (int samples_ref) |
set reference number of samples, which is a lower bound during reset | |
unsigned short | sampling_scheme () const |
return sampleType | |
void | vary_pattern (bool pattern_flag) |
set varyPattern | |
void | get_parameter_sets (Model &model) |
Uses lhsDriver to generate a set of samples from the distributions/bounds defined in the incoming model. | |
void | get_parameter_sets (const RealVector &lower_bnds, const RealVector &upper_bnds) |
Uses lhsDriver to generate a set of uniform samples over lower_bnds/upper_bnds. | |
void | update_model_from_sample (Model &model, const Real *sample_vars) |
Override default update of continuous vars only. | |
void | sample_to_variables (const Real *sample_vars, Variables &vars) |
override default mapping of continuous variables only | |
void | variables_to_sample (const Variables &vars, Real *sample_vars) |
void | initialize_lhs (bool write_message) |
increments numLHSRuns, sets random seed, and initializes lhsDriver | |
void | compute_statistics (const RealMatrix &vars_samples, const IntResponseMap &resp_samples) |
For the input sample set, computes mean, standard deviation, and probability/reliability/response levels (aleatory uncertainties) or intervals (epsitemic or mixed uncertainties) | |
void | compute_intervals (const IntResponseMap &samples) |
called by compute_statistics() to calculate min/max intervals | |
void | compute_moments (const IntResponseMap &samples) |
called by compute_statistics() to calculate means, std deviations, and confidence intervals | |
void | print_statistics (std::ostream &s) const |
prints the statistics computed in compute_statistics() | |
void | print_intervals (std::ostream &s) const |
prints the intervals computed in compute_intervals() | |
void | print_moments (std::ostream &s) const |
prints the moments computed in compute_moments() | |
void | view_design_counts (const Model &model, size_t &num_cdv, size_t &num_ddiv, size_t &num_ddsv, size_t &num_ddrv) const |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model | |
void | view_aleatory_uncertain_counts (const Model &model, size_t &num_cauv, size_t &num_dauiv, size_t &num_dausv, size_t &num_daurv) const |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model | |
void | view_epistemic_uncertain_counts (const Model &model, size_t &num_ceuv, size_t &num_deuiv, size_t &num_deusv, size_t &num_deurv) const |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model | |
void | view_uncertain_counts (const Model &model, size_t &num_cuv, size_t &num_duiv, size_t &num_dusv, size_t &num_durv) const |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model | |
void | view_state_counts (const Model &model, size_t &num_csv, size_t &num_dsiv, size_t &num_dssv, size_t &num_dsrv) const |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model | |
void | mode_counts (const Model &model, size_t &cv_start, size_t &num_cv, size_t &div_start, size_t &num_div, size_t &dsv_start, size_t &num_dsv, size_t &drv_start, size_t &num_drv) const |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model | |
Protected Attributes | |
const int | seedSpec |
the user seed specification (default is 0) | |
int | randomSeed |
the current seed | |
const int | samplesSpec |
initial specification of number of samples | |
int | samplesRef |
reference number of samples updated for refinement | |
int | numSamples |
the current number of samples to evaluate | |
String | rngName |
name of the random number generator | |
unsigned short | sampleType |
the sample type: default, random, lhs, < incremental random, or incremental lhs | |
Pecos::LHSDriver | lhsDriver |
the C++ wrapper for the F90 LHS library | |
bool | statsFlag |
flags computation/output of statistics | |
bool | allDataFlag |
flags update of allResponses < (allVariables or allSamples already defined) | |
short | samplingVarsMode |
the sampling mode: ALEATORY_UNCERTAIN{,_UNIFORM}, EPISTEMIC_UNCERTAIN{,_UNIFORM}, UNCERTAIN{,_UNIFORM}, ACTIVE{,_UNIFORM}, or ALL{,_UNIFORM}. This is a secondary control on top of the variables view that allows sampling over subsets of variables that may differ from the view. | |
short | sampleRanksMode |
mode for input/output of LHS sample ranks: IGNORE_RANKS, GET_RANKS, SET_RANKS, or SET_GET_RANKS | |
bool | varyPattern |
flag for generating a sequence of seed values within multiple get_parameter_sets() calls so that these executions (e.g., for SBO/SBNLS) are not repeated, but are still repeatable | |
RealMatrix | sampleRanks |
data structure to hold the sample ranks | |
SensAnalysisGlobal | nonDSampCorr |
initialize statistical post processing | |
bool | backfillFlag |
flags whether to use backfill to enforce uniqueness of discrete LHS samples | |
Private Member Functions | |
void | archive_allocate_pdf () |
allocate results array storage for pdf histograms | |
void | archive_pdf (size_t fn_index) |
archive a single pdf histogram for specified function | |
Private Attributes | |
size_t | numLHSRuns |
counter for number of executions of get_parameter_sets() for this object | |
RealMatrix | momentCIs |
Matrix of confidence internals on moments, with rows for mean_lower, mean_upper, sd_lower, sd_upper (calculated in compute_moments()) | |
RealMatrix | extremeValues |
Minimum (row 0) and maximum (row 1) values of response functions for epistemic calculations (calculated in compute_intervals()),. | |
RealVectorArray | computedPDFAbscissas |
sorted response PDF intervals bounds extracted from min/max sample and requested/computedRespLevels (vector lengths = num bins + 1) | |
RealVectorArray | computedPDFOrdinates |
response PDF densities computed from bin counts divided by (unequal) bin widths (vector lengths = num bins) |
Base class for common code between NonDLHSSampling, NonDIncremLHSSampling, and NonDAdaptImpSampling.
This base class provides common code for sampling methods which employ the Latin Hypercube Sampling (LHS) package from Sandia Albuquerque's Risk and Reliability organization. NonDSampling now exclusively utilizes the 1998 Fortran 90 LHS version as documented in SAND98-0210, which was converted to a UNIX link library in 2001. The 1970's vintage LHS (that had been f2c'd and converted to incomplete classes) has been removed.
NonDSampling | ( | ProblemDescDB & | problem_db, |
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.
References Dakota::abort_handler(), NonD::epistemicStats, NonD::initialize_final_statistics(), Iterator::maxEvalConcurrency, NonDSampling::numSamples, NonDSampling::sampleType, and NonD::totalLevelRequests.
NonDSampling | ( | unsigned short | method_name, |
Model & | model, | ||
unsigned short | sample_type, | ||
int | samples, | ||
int | seed, | ||
const String & | rng, | ||
bool | vary_pattern, | ||
short | sampling_vars_mode | ||
) | [protected] |
alternate constructor for sample generation and evaluation "on the fly"
This alternate constructor is used for generation and evaluation of on-the-fly sample sets.
References NonD::epistemicStats, Iterator::maxEvalConcurrency, NonD::numEpistemicUncVars, NonDSampling::numSamples, NonDSampling::sampleType, NonDSampling::samplingVarsMode, and Iterator::subIteratorFlag.
NonDSampling | ( | unsigned short | sample_type, |
int | samples, | ||
int | seed, | ||
const String & | rng, | ||
const RealVector & | lower_bnds, | ||
const RealVector & | upper_bnds | ||
) | [protected] |
alternate constructor for sample generation "on the fly"
This alternate constructor is used by ConcurrentStrategy for generation of uniform, uncorrelated sample sets.
References Iterator::maxEvalConcurrency, NonDSampling::numSamples, NonDSampling::sampleType, and Iterator::subIteratorFlag.
int num_samples | ( | ) | const [inline, protected, virtual] |
Return current number of evaluation points. Since the calculation of samples, collocation points, etc. might be costly, provide a default implementation here that backs out from the maxEvalConcurrency.
Reimplemented from Analyzer.
References NonDSampling::numSamples.
Referenced by NonDAdaptImpSampling::evaluate_samples(), and NonDAdaptImpSampling::select_rep_points().
void sampling_reset | ( | int | min_samples, |
bool | all_data_flag, | ||
bool | stats_flag | ||
) | [inline, protected, virtual] |
resets number of samples and sampling flags
used by DataFitSurrModel::build_global() to publish the minimum number of samples needed from the sampling routine (to build a particular global approximation) and to set allDataFlag and statsFlag. In this case, allDataFlag is set to true (vectors of variable and response sets must be returned to build the global approximation) and statsFlag is set to false (statistics computations are not needed).
Reimplemented from Iterator.
References NonDSampling::allDataFlag, NonDSampling::numSamples, NonDSampling::samplesRef, and NonDSampling::statsFlag.
void get_parameter_sets | ( | Model & | model | ) | [protected, virtual] |
Uses lhsDriver to generate a set of samples from the distributions/bounds defined in the incoming model.
This version of get_parameter_sets() extracts data from the user-defined model in any of the four sampling modes.
Reimplemented from Analyzer.
References Dakota::abort_handler(), Model::acv(), Model::adiv(), Model::aleatory_distribution_parameters(), Model::all_continuous_lower_bounds(), Model::all_continuous_upper_bounds(), Model::all_discrete_int_lower_bounds(), Model::all_discrete_int_upper_bounds(), Analyzer::allSamples, NonDSampling::backfillFlag, Model::continuous_lower_bounds(), Model::continuous_upper_bounds(), Model::current_variables(), Model::discrete_design_set_int_values(), Model::discrete_design_set_real_values(), Model::discrete_design_set_string_values(), Model::discrete_state_set_int_values(), Model::discrete_state_set_real_values(), Model::discrete_state_set_string_values(), Model::epistemic_distribution_parameters(), NonDSampling::initialize_lhs(), NonDSampling::lhsDriver, NonDSampling::mode_counts(), NonD::numContDesVars, NonD::numContStateVars, NonD::numDiscIntDesVars, NonD::numDiscIntStateVars, NonD::numDiscRealDesVars, NonD::numDiscRealStateVars, NonD::numDiscStringDesVars, NonD::numDiscStringStateVars, NonDSampling::numSamples, NonDSampling::sampleRanks, NonDSampling::samplingVarsMode, and Variables::view().
Referenced by NonDLHSSampling::NonDLHSSampling(), NonDLHSSampling::pre_run(), NonDIncremLHSSampling::quantify_uncertainty(), and NonDAdaptImpSampling::quantify_uncertainty().
void get_parameter_sets | ( | const RealVector & | lower_bnds, |
const RealVector & | upper_bnds | ||
) | [protected] |
Uses lhsDriver to generate a set of uniform samples over lower_bnds/upper_bnds.
This version of get_parameter_sets() does not extract data from the user-defined model, but instead relies on the incoming bounded region definition. It only support a UNIFORM sampling mode, where the distinction of ACTIVE_UNIFORM vs. ALL_UNIFORM is handled elsewhere.
References Analyzer::allSamples, NonDSampling::initialize_lhs(), NonDSampling::lhsDriver, and NonDSampling::numSamples.
void variables_to_sample | ( | const Variables & | vars, |
Real * | sample_vars | ||
) | [protected, virtual] |
Map the active variables from vars to sample_vars (column in allSamples)
Reimplemented from Analyzer.
References Variables::continuous_variables(), Variables::discrete_int_variables(), Variables::discrete_real_variables(), Model::discrete_set_string_values(), Variables::discrete_string_variables(), Iterator::iteratedModel, Analyzer::numContinuousVars, Analyzer::numDiscreteIntVars, Analyzer::numDiscreteRealVars, Analyzer::numDiscreteStringVars, Dakota::set_value_to_index(), and Variables::view().
void view_design_counts | ( | const Model & | model, |
size_t & | num_cdv, | ||
size_t & | num_ddiv, | ||
size_t & | num_ddsv, | ||
size_t & | num_ddrv | ||
) | const [protected] |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model
This function computes total design variable counts, not active counts, for use in defining offsets and counts within all variables arrays.
References Model::current_variables(), Variables::cv_start(), SharedVariablesData::design_counts(), Variables::div_start(), Variables::drv_start(), Variables::dsv_start(), NonD::numContDesVars, NonD::numDiscIntDesVars, NonD::numDiscRealDesVars, NonD::numDiscStringDesVars, Variables::shared_data(), and Variables::view().
Referenced by NonDSampling::mode_counts().
void view_aleatory_uncertain_counts | ( | const Model & | model, |
size_t & | num_cauv, | ||
size_t & | num_dauiv, | ||
size_t & | num_dausv, | ||
size_t & | num_daurv | ||
) | const [protected] |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model
This function computes total aleatory uncertain variable counts, not active counts, for use in defining offsets and counts within all variables arrays.
References SharedVariablesData::aleatory_uncertain_counts(), Model::current_variables(), NonD::numContAleatUncVars, NonD::numDiscIntAleatUncVars, NonD::numDiscRealAleatUncVars, NonD::numDiscStringAleatUncVars, Variables::shared_data(), and Variables::view().
Referenced by NonDSampling::mode_counts().
void view_epistemic_uncertain_counts | ( | const Model & | model, |
size_t & | num_ceuv, | ||
size_t & | num_deuiv, | ||
size_t & | num_deusv, | ||
size_t & | num_deurv | ||
) | const [protected] |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model
This function computes total epistemic uncertain variable counts, not active counts, for use in defining offsets and counts within all variables arrays.
References Model::current_variables(), SharedVariablesData::epistemic_uncertain_counts(), NonD::numContEpistUncVars, NonD::numDiscIntEpistUncVars, NonD::numDiscRealEpistUncVars, NonD::numDiscStringEpistUncVars, Variables::shared_data(), and Variables::view().
Referenced by NonDSampling::mode_counts().
void view_uncertain_counts | ( | const Model & | model, |
size_t & | num_cuv, | ||
size_t & | num_duiv, | ||
size_t & | num_dusv, | ||
size_t & | num_durv | ||
) | const [protected] |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model
This function computes total uncertain variable counts, not active counts, for use in defining offsets and counts within all variables arrays.
References Model::current_variables(), Variables::cv(), Variables::div(), Variables::drv(), Variables::dsv(), NonD::numContAleatUncVars, NonD::numContEpistUncVars, NonD::numDiscIntAleatUncVars, NonD::numDiscIntEpistUncVars, NonD::numDiscRealAleatUncVars, NonD::numDiscRealEpistUncVars, NonD::numDiscStringAleatUncVars, NonD::numDiscStringEpistUncVars, Variables::shared_data(), SharedVariablesData::uncertain_counts(), and Variables::view().
Referenced by NonDSampling::mode_counts().
void mode_counts | ( | const Model & | model, |
size_t & | cv_start, | ||
size_t & | num_cv, | ||
size_t & | div_start, | ||
size_t & | num_div, | ||
size_t & | dsv_start, | ||
size_t & | num_dsv, | ||
size_t & | drv_start, | ||
size_t & | num_drv | ||
) | const [protected] |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model
This function and its helpers to follow are needed since NonDSampling supports a richer set of sampling modes than just the active variable subset. mode_counts() manages the samplingVarsMode setting, while its helper functions (view_{design,aleatory_uncertain,epistemic_uncertain, uncertain,state}_counts) manage the active variables view. Similar to the computation of starts and counts in creating active variable views, the results of this function are starts and counts for use within model.all_*() set/get functions.
References Model::acv(), Model::adiv(), Model::adrv(), Model::adsv(), Model::current_variables(), Variables::cv(), Variables::cv_start(), Variables::div(), Variables::div_start(), Variables::drv(), Variables::drv_start(), Variables::dsv(), Variables::dsv_start(), NonDSampling::samplingVarsMode, NonDSampling::view_aleatory_uncertain_counts(), NonDSampling::view_design_counts(), NonDSampling::view_epistemic_uncertain_counts(), and NonDSampling::view_uncertain_counts().
Referenced by NonDSampling::compute_statistics(), NonDSampling::get_parameter_sets(), NonDLHSSampling::post_input(), NonDSampling::print_statistics(), NonDSampling::sample_to_variables(), and NonDSampling::update_model_from_sample().