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

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

Inheritance diagram for ParamStudy:
PStudyDACE Analyzer Iterator

List of all members.

Public Member Functions

 ParamStudy (ProblemDescDB &problem_db, Model &model)
 constructor
 ~ParamStudy ()
 destructor
void pre_run ()
 pre-run portion of run (optional); re-implemented by Iterators which can generate all Variables (parameter sets) a priori
void extract_trends ()
 Mapping of the core_run() virtual function for the PStudy/DACE branch.
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

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

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

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, ParamStudy::sample(), Variables::shared_data(), ParamStudy::vector_loop(), and Dakota::write_ordered().

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