$extrastylesheet
Dakota  Version 6.2
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
NonDSampling Class Reference

Base class for common code between NonDLHSSampling, NonDIncremLHSSampling, and NonDAdaptImpSampling. More...

Inheritance diagram for NonDSampling:
NonD Analyzer Iterator NonDAdaptImpSampling NonDAdaptiveSampling NonDGPImpSampling NonDIncremLHSSampling NonDLHSSampling

List of all members.

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)

Detailed Description

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.


Constructor & Destructor Documentation

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.


Member Function Documentation

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]
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().


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