![]() |
Dakota
Version 6.13
Explore and Predict with Confidence
|
Class for vector, list, centered, and multidimensional parameter studies. More...
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. | |
![]() | |
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... | |
![]() | |
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 Model & | algorithm_space_model () const |
const Variables & | variables_results () const |
return a single final iterator solution (variables) | |
const Response & | response_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 | |
![]() | |
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 | 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 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... | |
![]() | |
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 | |
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.
|
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().
|
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.
|
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.
|
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().
|
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 Dakota::abort_handler(), Model::discrete_int_sets(), Model::discrete_int_variable_labels(), Model::discrete_real_variable_labels(), Model::discrete_set_int_values(), Model::discrete_set_real_values(), Model::discrete_set_string_values(), Model::discrete_string_variable_labels(), ParamStudy::distribute(), Iterator::iteratedModel, ParamStudy::listCVPoints, ParamStudy::listDIVPoints, ParamStudy::listDRVPoints, ParamStudy::listDSVPoints, Iterator::method_id(), Analyzer::numContinuousVars, Analyzer::numDiscreteIntVars, Analyzer::numDiscreteRealVars, Analyzer::numDiscreteStringVars, ParamStudy::numEvals, and Dakota::set_index_to_value().
Referenced by ParamStudy::ParamStudy().
|
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().