Dakota  Version 6.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public 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...
 

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
 

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 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

- 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)
 print the final iterator results More...
 
void volumetric_quality (int ndim, int num_samples, double *sample_points)
 Calculation of volumetric quality measures. More...
 
- 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 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 Analyzer::allResponses, Analyzer::allVariables, SensAnalysisGlobal::compute_correlations(), Model::discrete_set_string_values(), Iterator::iteratedModel, Iterator::methodName, Analyzer::post_run(), PStudyDACE::pStudyDACESensGlobal, 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 Dakota::_NPOS, 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

distributes list_of_pts coming from user spec among listCVPoints, listDIVPoints, listDSVPoints, and listDRVPoints

Parse list of points into typed data containers; list_of_pts will contain values for continuous and discrete integer range, but indices for all discrete set types (int, string, real)

References Model::discrete_int_sets(), Model::discrete_set_int_values(), Model::discrete_set_real_values(), Model::discrete_set_string_values(), ParamStudy::distribute(), Iterator::iteratedModel, ParamStudy::listCVPoints, ParamStudy::listDIVPoints, ParamStudy::listDRVPoints, ParamStudy::listDSVPoints, Analyzer::numContinuousVars, Analyzer::numDiscreteIntVars, Analyzer::numDiscreteRealVars, Analyzer::numDiscreteStringVars, ParamStudy::numEvals, and Dakota::set_index_to_value().

Referenced by ParamStudy::ParamStudy().


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