Dakota  Version 6.15
Explore and Predict with Confidence
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
ParamStudy Class Reference

Class for vector, list, centered, and multidimensional parameter studies. More...

Inheritance diagram for ParamStudy:
PStudyDACE Analyzer Iterator

Public Member Functions

 ParamStudy (ProblemDescDB &problem_db, Model &model)
 constructor
 
 ~ParamStudy ()
 destructor
 
bool resize ()
 reinitializes iterator based on new variable size
 
void pre_run ()
 pre-run portion of run (optional); re-implemented by Iterators which can generate all Variables (parameter sets) a priori More...
 
void core_run ()
 core portion of run; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post More...
 
void post_input ()
 read tabular data for post-run mode
 
void post_run (std::ostream &s)
 post-run portion of run (optional); verbose to print results; re-implemented by Iterators that can read all Variables/Responses and perform final analysis phase in a standalone way More...
 
void archive_model_variables (const Model &, size_t idx) const override
 Archive variables for parameter set idx.
 
void archive_model_response (const Response &, size_t idx) const override
 Archive responses for parameter set idx.
 

Protected Member Functions

void archive_allocate_sets () const
 Allocate space to archive parameters and responses.
 
- Protected Member Functions inherited from PStudyDACE
 PStudyDACE (ProblemDescDB &problem_db, Model &model)
 constructor
 
 PStudyDACE (unsigned short method_name, Model &model)
 alternate constructor for instantiations "on the fly"
 
 ~PStudyDACE ()
 destructor
 
void print_results (std::ostream &s, short results_state=FINAL_RESULTS)
 print the final iterator results More...
 
void volumetric_quality (int ndim, int num_samples, double *sample_points)
 Calculation of volumetric quality measures. More...
 
- Protected Member Functions inherited from Analyzer
 Analyzer ()
 default constructor
 
 Analyzer (ProblemDescDB &problem_db, Model &model)
 standard constructor
 
 Analyzer (unsigned short method_name, Model &model)
 alternate constructor for instantiations "on the fly" with a Model
 
 Analyzer (unsigned short method_name)
 alternate constructor for instantiations "on the fly" without a Model
 
 ~Analyzer ()
 destructor
 
virtual void get_parameter_sets (Model &model)
 Generate one block of numSamples samples (ndim * num_samples), populating allSamples; ParamStudy is the only class that specializes to use allVariables.
 
virtual void get_parameter_sets (Model &model, const int num_samples, RealMatrix &design_matrix)
 Generate one block of numSamples samples (ndim * num_samples), populating design_matrix.
 
virtual void update_model_from_sample (Model &model, const Real *sample_vars)
 update model's current variables with data from sample
 
virtual void update_model_from_variables (Model &model, const Variables &vars)
 update model's current variables with data from vars
 
virtual void sample_to_variables (const Real *sample_vars, Variables &vars)
 convert column of samples array to variables; derived classes may reimplement for more than active continuous variables More...
 
void update_from_model (const Model &model)
 set inherited data attributes based on extractions from incoming model
 
void initialize_run ()
 utility function to perform common operations prior to pre_run(); typically memory initialization; setting of instance pointers More...
 
void finalize_run ()
 utility function to perform common operations following post_run(); deallocation and resetting of instance pointers More...
 
void pre_output ()
 
const Modelalgorithm_space_model () const
 
const Variablesvariables_results () const
 return a single final iterator solution (variables)
 
const Responseresponse_results () const
 return a single final iterator solution (response)
 
const VariablesArray & variables_array_results ()
 return multiple final iterator solutions (variables). This should only be used if returns_multiple_points() returns true.
 
const ResponseArray & response_array_results ()
 return multiple final iterator solutions (response). This should only be used if returns_multiple_points() returns true.
 
void response_results_active_set (const ActiveSet &set)
 set the requested data for the final iterator response results
 
bool compact_mode () const
 returns Analyzer::compactMode
 
bool returns_multiple_points () const
 indicates if this iterator returns multiple final points. Default return is false. Override to return true if appropriate.
 
void evaluate_parameter_sets (Model &model, bool log_resp_flag, bool log_best_flag)
 perform function evaluations to map parameter sets (allVariables) into response sets (allResponses) More...
 
void get_vbd_parameter_sets (Model &model, int num_samples)
 generate replicate parameter sets for use in variance-based decomposition More...
 
void compute_vbd_stats (const int num_samples, const IntResponseMap &resp_samples)
 compute VBD-based Sobol indices More...
 
void archive_sobol_indices () const
 archive VBD-based Sobol indices More...
 
void read_variables_responses (int num_evals, size_t num_vars)
 convenience function for reading variables/responses (used in derived classes post_input) More...
 
void print_sobol_indices (std::ostream &s) const
 Printing of VBD results. More...
 
void samples_to_variables_array (const RealMatrix &sample_matrix, VariablesArray &vars_array)
 convert samples array to variables array; e.g., allSamples to allVariables
 
virtual void variables_to_sample (const Variables &vars, Real *sample_c_vars)
 convert the active continuous variables into a column of allSamples More...
 
void variables_array_to_samples (const VariablesArray &vars_array, RealMatrix &sample_matrix)
 convert variables array to samples array; e.g., allVariables to allSamples
 
- Protected Member Functions inherited from Iterator
 Iterator (BaseConstructor, ProblemDescDB &problem_db, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase()))
 constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) More...
 
 Iterator (NoDBBaseConstructor, unsigned short method_name, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase()))
 alternate constructor for base iterator classes constructed on the fly More...
 
 Iterator (NoDBBaseConstructor, unsigned short method_name, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase()))
 alternate constructor for base iterator classes constructed on the fly More...
 
virtual void derived_init_communicators (ParLevLIter pl_iter)
 derived class contributions to initializing the communicators associated with this Iterator instance
 
virtual const VariablesArray & initial_points () const
 gets the multiple initial points for this iterator. This will only be meaningful after a call to initial_points mutator.
 
StrStrSizet run_identifier () const
 get the unique run identifier based on method name, id, and number of executions
 
void initialize_model_graphics (Model &model, int iterator_server_id)
 helper function that encapsulates initialization operations, modular on incoming Model instance More...
 
void export_final_surrogates (Model &data_fit_surr_model)
 export final surrogates generated, e.g., GP in EGO and friends More...
 

Private Member Functions

void sample ()
 performs the parameter study by sampling from a list of points
 
void vector_loop ()
 performs the parameter study by sampling along a vector, starting from an initial point followed by numSteps increments along continous/discrete step vectors
 
void centered_loop ()
 performs a number of plus and minus offsets for each parameter centered about an initial point
 
void multidim_loop ()
 performs a full factorial combination for all intersections defined by a set of multidimensional partitions
 
bool load_distribute_points (const String &points_filename, unsigned short tabular_format, bool active_only)
 load list of points from data file and distribute among listCVPoints, listDIVPoints, listDSVPoints, and listDRVPoints More...
 
template<typename OrdinalType , typename ScalarTypeA , typename ScalarTypeC , typename ScalarTypeDI , typename ScalarTypeDS , typename ScalarTypeDR >
bool distribute (const Teuchos::SerialDenseVector< OrdinalType, ScalarTypeA > &all_data, Teuchos::SerialDenseVector< OrdinalType, ScalarTypeC > &c_data, Teuchos::SerialDenseVector< OrdinalType, ScalarTypeDI > &di_data, Teuchos::SerialDenseVector< OrdinalType, ScalarTypeDS > &ds_data, Teuchos::SerialDenseVector< OrdinalType, ScalarTypeDR > &dr_data)
 distributes incoming all vector in standard variable ordering among continuous, discrete int, discrete string, and discrete real vectors
 
template<typename ScalarType >
bool distribute (const std::vector< ScalarType > &all_data, std::vector< ScalarType > &c_data, std::vector< ScalarType > &di_data, std::vector< ScalarType > &ds_data, std::vector< ScalarType > &dr_data)
 distributes incoming all array in standard variable ordering among continuous, discrete int, discrete string, and discrete real arrays
 
bool distribute_list_of_points (const RealVector &list_of_pts)
 distributes list_of_pts coming from user spec among listCVPoints, listDIVPoints, listDSVPoints, and listDRVPoints More...
 
void final_point_to_step_vector ()
 compute step vectors from finalPoint, initial points, and numSteps
 
void distribute_partitions ()
 compute step vectors from {cont,discInt,discString,discReal}VarPartitions and global bounds
 
bool check_num_steps (int num_steps)
 perform error checks on numSteps
 
bool check_step_vector (const RealVector &step_vector)
 perform error checks on numSteps
 
bool check_final_point (const RealVector &final_pt)
 perform error checks on finalPoint
 
bool check_steps_per_variable (const IntVector &steps_per_var)
 perform error checks on stepsPerVariable
 
bool check_variable_partitions (const UShortArray &partitions)
 perform error checks on variable partitions
 
bool check_finite_bounds ()
 check for finite variable bounds within iteratedModel, as required for computing partitions of finite ranges
 
bool check_ranges_sets (int num_steps)
 sanity check for vector parameter study
 
bool check_ranges_sets (const IntVector &c_steps, const IntVector &di_steps, const IntVector &ds_steps, const IntVector &dr_steps)
 sanity check for centered parameter study
 
bool check_sets (const IntVector &c_steps, const IntVector &di_steps, const IntVector &ds_steps, const IntVector &dr_steps)
 sanity check for increments along int/real set dimensions
 
int integer_step (int range, int num_steps) const
 check for integer remainder and return step
 
int index_step (size_t start, size_t end, int num_steps) const
 check for out of bounds and index remainder and return step
 
void c_step (size_t c_index, int increment, Variables &vars)
 helper function for performing a continuous step in one variable
 
void dri_step (size_t di_index, int increment, Variables &vars)
 helper function for performing a discrete step in an integer range variable
 
void dsi_step (size_t di_index, int increment, const IntSet &values, Variables &vars)
 helper function for performing a discrete step in an integer set variable
 
void dss_step (size_t ds_index, int increment, const StringSet &values, Variables &vars)
 helper function for performing a discrete step in an string set variable
 
void dsr_step (size_t dr_index, int increment, const RealSet &values, Variables &vars)
 helper function for performing a discrete step in a real set variable
 
void reset (Variables &vars)
 reset vars to initial point (center)
 
void centered_header (const String &type, size_t var_index, int step, size_t hdr_index)
 store a centered parameter study header within allHeaders
 
void archive_allocate_cps () const
 specialized per-variable slice output for centered param study
 
void archive_cps_vars (const Model &model, size_t idx) const
 specialized per-variable slice output for centered param study
 
void archive_cps_resp (const Response &response, size_t idx) const
 specialized per-variable slice output for centered param study
 
void index_to_var_step (const size_t study_idx, size_t &var_idx, size_t &step_idx) const
 map an overall parameter study (zero-based) evaluation index to the (zero-based) variable index (among all variables) and the (zero-based) step index within that variable
 

Private Attributes

size_t numEvals
 total number of parameter study evaluations computed from specification
 
RealVectorArray listCVPoints
 array of continuous evaluation points for the list_parameter_study
 
IntVectorArray listDIVPoints
 array of discrete int evaluation points for the list_parameter_study
 
StringMulti2DArray listDSVPoints
 array of discrete string evaluation points for the list_parameter_study
 
RealVectorArray listDRVPoints
 array of discrete real evaluation points for the list_parameter_study
 
RealVector initialCVPoint
 the continuous start point for vector and centered parameter studies
 
IntVector initialDIVPoint
 the discrete int start point for vector and centered parameter studies
 
StringMultiArray initialDSVPoint
 the discrete string start point for vector and centered parameter studies
 
RealVector initialDRVPoint
 the discrete real start point for vector and centered parameter studies
 
RealVector finalCVPoint
 the continuous ending point for vector_parameter_study
 
IntVector finalDIVPoint
 the discrete int range value or set index ending point for vector_parameter_study
 
IntVector finalDSVPoint
 the discrete string set index ending point for vector_parameter_study
 
IntVector finalDRVPoint
 the discrete real set index ending point for vector_parameter_study
 
RealVector contStepVector
 the n-dimensional continuous increment
 
IntVector discIntStepVector
 the n-dimensional discrete integer range value or set index increment
 
IntVector discStringStepVector
 the n-dimensional discrete string set index increment
 
IntVector discRealStepVector
 the n-dimensional discrete real set index increment
 
int numSteps
 the number of times continuous/discrete step vectors are applied for vector_parameter_study (a specification option)
 
IntVector stepsPerVariable
 number of offsets in the plus and the minus direction for each variable in a centered_parameter_study More...
 
IntVector contStepsPerVariable
 number of offsets in the plus and the minus direction for each continuous variable in a centered_parameter_study
 
IntVector discIntStepsPerVariable
 number of offsets in the plus and the minus direction for each discrete integer variable in a centered_parameter_study
 
IntVector discStringStepsPerVariable
 number of offsets in the plus and the minus direction for each discrete string variable in a centered_parameter_study
 
IntVector discRealStepsPerVariable
 number of offsets in the plus and the minus direction for each discrete real variable in a centered_parameter_study
 
UShortArray contVarPartitions
 number of partitions for each continuous variable in a multidim_parameter_study
 
UShortArray discIntVarPartitions
 number of partitions for each discrete integer variable in a multidim_parameter_study
 
UShortArray discStringVarPartitions
 number of partitions for each discrete string variable in a multidim_parameter_study
 
UShortArray discRealVarPartitions
 number of partitions for each discrete real variable in a multidim_parameter_study
 

Additional Inherited Members

- Static Protected Member Functions inherited from Iterator
static void gnewton_set_recast (const Variables &recast_vars, const ActiveSet &recast_set, ActiveSet &sub_model_set)
 conversion of request vector values for the Gauss-Newton Hessian approximation More...
 
- Protected Attributes inherited from PStudyDACE
SensAnalysisGlobal pStudyDACESensGlobal
 initialize statistical post processing
 
bool volQualityFlag
 flag which specifies evaluation of volumetric quality measures
 
bool varBasedDecompFlag
 flag which specifies calculating variance based decomposition sensitivity analysis metrics
 

Detailed Description

Class for vector, list, centered, and multidimensional parameter studies.

The ParamStudy class contains several algorithms for performing parameter studies of different types. The vector parameter study steps along an n-dimensional vector from an arbitrary initial point to an arbitrary final point in a specified number of steps. The centered parameter study performs a number of plus and minus offsets in each coordinate direction around a center point. A multidimensional parameter study fills an n-dimensional hypercube based on bounds and a specified number of partitions for each dimension. And the list parameter study provides for a user specification of a list of points to evaluate, which allows general parameter investigations not fitting the structure of vector, centered, or multidim parameter studies.

Member Function Documentation

void pre_run ( )
virtual

pre-run portion of run (optional); re-implemented by Iterators which can generate all Variables (parameter sets) a priori

pre-run phase, which a derived iterator may optionally reimplement; when not present, pre-run is likely integrated into the derived run function. This is a virtual function; when re-implementing, a derived class must call its nearest parent's pre_run(), if implemented, typically before performing its own implementation steps.

Reimplemented from Analyzer.

References Dakota::abort_handler(), SharedVariablesData::active_components_totals(), Analyzer::allHeaders, Analyzer::allVariables, ParamStudy::centered_loop(), Variables::continuous_variables(), ParamStudy::contStepsPerVariable, ParamStudy::contStepVector, ParamStudy::contVarPartitions, Dakota::copy_data(), Model::current_variables(), ParamStudy::discIntStepsPerVariable, ParamStudy::discIntStepVector, ParamStudy::discIntVarPartitions, ParamStudy::discRealStepsPerVariable, ParamStudy::discRealStepVector, ParamStudy::discRealVarPartitions, Variables::discrete_int_variables(), Variables::discrete_real_variables(), Variables::discrete_string_variables(), ParamStudy::discStringStepsPerVariable, ParamStudy::discStringStepVector, ParamStudy::discStringVarPartitions, ParamStudy::distribute_partitions(), ParamStudy::final_point_to_step_vector(), ParamStudy::finalCVPoint, ParamStudy::finalDIVPoint, ParamStudy::finalDRVPoint, ParamStudy::finalDSVPoint, ParamStudy::initialCVPoint, ParamStudy::initialDIVPoint, ParamStudy::initialDRVPoint, ParamStudy::initialDSVPoint, Iterator::iteratedModel, Iterator::method_enum_to_string(), Iterator::methodName, ParamStudy::multidim_loop(), Analyzer::numDiscreteStringVars, ParamStudy::numEvals, ParamStudy::numSteps, Iterator::outputLevel, Analyzer::pre_run(), ParamStudy::sample(), Variables::shared_data(), Dakota::svd(), ParamStudy::vector_loop(), and Dakota::write_ordered().

void core_run ( )
virtual

core portion of run; 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 ParamStudy::archive_allocate_sets(), Analyzer::evaluate_parameter_sets(), Iterator::iteratedModel, Iterator::methodName, Analyzer::numLSqTerms, Analyzer::numObjFns, and Iterator::subIteratorFlag.

void post_run ( std::ostream &  s)
virtual

post-run portion of run (optional); verbose to print results; re-implemented by Iterators that can read all Variables/Responses and perform final analysis phase in a standalone way

Post-run phase, which a derived iterator may optionally reimplement; when not present, post-run is likely integrated into run. This is a virtual function; when re-implementing, a derived class must call its nearest parent's post_run(), typically after performing its own implementation steps.

Reimplemented from Analyzer.

References ResultsManager::active(), Analyzer::allResponses, Analyzer::allVariables, SensAnalysisGlobal::archive_correlations(), SensAnalysisGlobal::compute_correlations(), Model::continuous_variable_labels(), Model::discrete_int_variable_labels(), Model::discrete_real_variable_labels(), Model::discrete_set_string_values(), Model::discrete_string_variable_labels(), Iterator::iteratedModel, Iterator::methodName, Analyzer::post_run(), PStudyDACE::pStudyDACESensGlobal, Model::response_labels(), Iterator::resultsDB, Iterator::run_identifier(), and Iterator::subIteratorFlag.

bool load_distribute_points ( const String &  points_filename,
unsigned short  tabular_format,
bool  active_only 
)
private

load list of points from data file and distribute among listCVPoints, listDIVPoints, listDSVPoints, and listDRVPoints

Load from file and distribute points; using this function to manage construction of the temporary arrays. Historically all data was read as a real (mixture of values and indices), but now points_file is valued-based (reals, integers, strings) so file input matches tabular data output. Return false on success.

References Model::continuous_lower_bounds(), Model::continuous_upper_bounds(), Variables::copy(), Model::current_variables(), Model::discrete_int_lower_bounds(), Model::discrete_int_sets(), Model::discrete_int_upper_bounds(), Model::discrete_set_int_values(), Model::discrete_set_real_values(), Model::discrete_set_string_values(), Iterator::iteratedModel, ParamStudy::listCVPoints, ParamStudy::listDIVPoints, ParamStudy::listDRVPoints, ParamStudy::listDSVPoints, Analyzer::numContinuousVars, Analyzer::numDiscreteIntVars, Analyzer::numDiscreteRealVars, Analyzer::numDiscreteStringVars, ParamStudy::numEvals, and Dakota::set_value_to_index().

Referenced by ParamStudy::ParamStudy().

bool distribute_list_of_points ( const RealVector &  list_of_pts)
private

Member Data Documentation

IntVector stepsPerVariable
private

number of offsets in the plus and the minus direction for each variable in a centered_parameter_study

The per-type step arrays below could be made views into this, instead of duplicating, but if so, distribute() will not be allowed to resize the individual vectors.

Referenced by ParamStudy::check_steps_per_variable(), and ParamStudy::index_to_var_step().


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