$extrastylesheet
Dakota
Version 6.2
|
Class for vector, list, centered, and multidimensional parameter studies. More...
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 |
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.
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().