Dakota  Version
Explore and Predict with Confidence
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
RecastModel Class Reference

Derived model class which provides a thin wrapper around a sub-model in order to recast the form of its inputs and/or outputs. More...

Inheritance diagram for RecastModel:
Model DataTransformModel ProbabilityTransformModel RandomFieldModel ScalingModel SubspaceModel WeightingModel ActiveSubspaceModel AdaptedBasisModel

Public Member Functions

 RecastModel (const Model &sub_model, const Sizet2DArray &vars_map_indices, const SizetArray &vars_comps_total, const BitArray &all_relax_di, const BitArray &all_relax_dr, bool nonlinear_vars_mapping, const ShortShortPair &recast_vars_view, void(*variables_map)(const Variables &recast_vars, Variables &sub_model_vars), void(*set_map)(const Variables &recast_vars, const ActiveSet &recast_set, ActiveSet &sub_model_set), const Sizet2DArray &primary_resp_map_indices, const Sizet2DArray &secondary_resp_map_indices, size_t recast_secondary_offset, short recast_resp_order, const BoolDequeArray &nonlinear_resp_mapping, void(*primary_resp_map)(const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response), void(*secondary_resp_map)(const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response))
 standard (full) constructor; assumes provided sizes and map functions are final and constructs all member data More...
 
 RecastModel (const Model &sub_model, const SizetArray &vars_comps_totals, const BitArray &all_relax_di, const BitArray &all_relax_dr, const ShortShortPair &recast_vars_view, size_t num_recast_primary_fns, size_t num_recast_secondary_fns, size_t recast_secondary_offset, short recast_resp_order)
 alternate constructor; uses provided sizes to construct Variables, Response and Constraints so Model can be passed to an Iterator; requires subsequent init_maps() call. More...
 
 RecastModel (const Model &sub_model, const ShortShortPair &recast_vars_view)
 alternate constructor; only changes the view (NEED A SUBCLASS FOR THIS?) More...
 
 RecastModel (ProblemDescDB &problem_db, const Model &sub_model)
 Problem DB-based ctor, e.g., for use in subspace model; assumes mappings to be initialized later; only initializes based on sub-model.
 
 RecastModel (const Model &sub_model)
 lightest constructor used when transform sizes aren't known at construct time; doesn't initialize variables and responses, so this Model can't be used to construct an Iterator; requires subsequent init_sizes() and init_maps() calls.
 
 ~RecastModel ()
 destructor
 
void init_sizes (const ShortShortPair &recast_vars_view, const SizetArray &vars_comps_totals, const BitArray &all_relax_di, const BitArray &all_relax_dr, size_t num_recast_primary_fns, size_t num_recast_secondary_fns, size_t recast_secondary_offset, short recast_resp_order, bool &consistent_vars)
 update recast sizes and size Variables and Response members after alternate construction
 
void init_maps (const Sizet2DArray &vars_map_indices, bool nonlinear_vars_mapping, void(*variables_map)(const Variables &recast_vars, Variables &sub_model_vars), void(*set_map)(const Variables &recast_vars, const ActiveSet &recast_set, ActiveSet &sub_model_set), const Sizet2DArray &primary_resp_map_indices, const Sizet2DArray &secondary_resp_map_indices, const BoolDequeArray &nonlinear_resp_mapping, void(*primary_resp_map)(const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response), void(*secondary_resp_map)(const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response))
 initialize recast indices and map callbacks after alternate construction More...
 
void inverse_mappings (void(*inv_vars_map)(const Variables &sub_model_vars, Variables &recast_vars), void(*inv_set_map)(const Variables &sub_model_vars, const ActiveSet &sub_model_set, ActiveSet &recast_set), void(*inv_pri_resp_map)(const Variables &recast_vars, const Variables &sub_model_vars, const Response &recast_resp, Response &sub_model_resp), void(*inv_sec_resp_map)(const Variables &recast_vars, const Variables &sub_model_vars, const Response &recast_resp, Response &sub_model_resp))
 provide optional inverse mappings
 
void transform_variables (const Variables &recast_vars, Variables &sub_model_vars)
 perform transformation of Variables (recast --> sub-model)
 
void transform_set (const Variables &recast_vars, const ActiveSet &recast_set, ActiveSet &sub_model_set)
 into sub_model_set for use with subModel.
 
void transform_response (const Variables &recast_vars, const Variables &sub_model_vars, const Response &sub_model_resp, Response &recast_resp)
 perform transformation of Response (sub-model --> recast)
 
void transform_response_map (const IntResponseMap &old_resp_map, IntResponseMap &new_resp_map)
 invoke transform_response() on each response within old_resp_map to create new_resp_map
 
void inverse_transform_variables (const Variables &sub_model_vars, Variables &recast_vars)
 perform inverse transformation of Variables (sub-model --> recast)
 
void inverse_transform_set (const Variables &sub_model_vars, const ActiveSet &sub_model_set, ActiveSet &recast_set)
 into sub_model_set for use with subModel.
 
void inverse_transform_response (const Variables &sub_model_vars, const Variables &recast_vars, const Response &recast_resp, Response &sub_model_resp)
 perform inverse transformation of Response (recast --> sub-model)
 
void submodel_supports_derivative_estimation (bool sed_flag)
 override the submodel's derivative estimation behavior
 
String root_model_id ()
 Return the model ID of the "innermost" model. For all derived Models except RecastModels, return modelId. The RecastModel override returns the root_model_id() of the subModel.
 
ActiveSet default_active_set ()
 
void declare_sources ()
 Declare a model's sources to the evaluationsDB.
 
bool nonlinear_variables_mapping () const
 return nonlinearVarsMapping
 
- Public Member Functions inherited from Model
 Model ()
 default constructor More...
 
 Model (ProblemDescDB &problem_db)
 standard constructor for envelope More...
 
 Model (const Model &model)
 copy constructor More...
 
virtual ~Model ()
 destructor
 
Model operator= (const Model &model)
 assignment operator
 
virtual unsigned short active_surrogate_model_form (size_t i) const
 return the model form of the i-th active surrogate model
 
virtual unsigned short active_truth_model_form () const
 return the model form of the active truth model
 
virtual bool multifidelity () const
 identify if hierarchy is across model forms
 
virtual bool multilevel () const
 identify if hierarchy is across resolution levels
 
virtual bool multilevel_multifidelity () const
 identify if hierarchy is across both model forms and resolution levels
 
virtual bool multifidelity_precedence () const
 return precedence for hierarchy definition, model forms or resolution levels
 
virtual void multifidelity_precedence (bool mf_prec, bool update_default=false)
 assign precedence for hierarchy definition (model forms or resolution levels) as determined from algorithm context
 
virtual size_t solution_levels (bool lwr_bnd=true) const
 number of discrete levels within solution control (SimulationModel) More...
 
virtual short solution_control_variable_type () const
 return type of solution control variable
 
virtual size_t solution_control_variable_index () const
 return index of solution control variable within all variables
 
virtual size_t solution_control_discrete_variable_index () const
 return index of solution control variable within all discrete variables
 
virtual int solution_level_int_value () const
 return the active (integer) value of the solution control
 
virtual String solution_level_string_value () const
 return the active (string) value of the solution control
 
virtual Real solution_level_real_value () const
 return the active (real) value of the solution control
 
virtual size_t cost_metadata_index () const
 return index of online cost estimates within metadata
 
virtual bool resize_pending () const
 return true if a potential resize is still pending, such that sizing-based initialization should be deferred
 
virtual void trans_U_to_X (const RealVector &u_c_vars, RealVector &x_c_vars)
 transform u-space variable values to x-space
 
virtual void trans_X_to_U (const RealVector &x_c_vars, RealVector &u_c_vars)
 transform x-space variable values to u-space
 
virtual void rebuild_approximation (const IntResponsePair &response_pr)
 incremental rebuild of an existing SurrogateModel approximation
 
virtual void rebuild_approximation (const IntResponseMap &resp_map)
 incremental rebuild of an existing SurrogateModel approximation
 
virtual void update_approximation (const RealMatrix &samples, const IntResponseMap &resp_map, bool rebuild_flag)
 replace the data points within an existing surrogate
 
virtual void append_approximation (const RealMatrix &samples, const IntResponseMap &resp_map, bool rebuild_flag)
 append multiple points to an existing surrogate's data
 
virtual void append_approximation (const IntVariablesMap &vars_map, const IntResponseMap &resp_map, bool rebuild_flag)
 append multiple points to an existing surrogate's data
 
virtual void replace_approximation (const IntResponsePair &response_pr, bool rebuild_flag)
 replace the response for a single point (based on eval id from response_pr) within an existing surrogate's data
 
virtual void replace_approximation (const IntResponseMap &resp_map, bool rebuild_flag)
 replace the responses for a set of points (based on eval ids from resp_map) within an existing surrogate's data
 
virtual void track_evaluation_ids (bool track)
 assigns a flag to track evaluation ids within surrogate data, enabling id-based lookups for data replacement
 
virtual bool advancement_available ()
 query the approximation for available advancement in resolution controls (order, rank, etc.); an input to adaptive refinement strategies
 
virtual bool formulation_updated () const
 query the approximation for updates in formulation, requiring a rebuild even if no updates to the build data
 
virtual void formulation_updated (bool update)
 assign the status of approximation formulation updates
 
virtual void run_dace ()
 execute the DACE iterator (prior to building/appending the approximation)
 
virtual bool force_rebuild ()
 determine whether a surrogate model rebuild should be forced based on changes in the inactive data
 
virtual SharedApproxDatashared_approximation ()
 retrieve the shared approximation data within the ApproximationInterface of a DataFitSurrModel
 
virtual short surrogate_response_mode () const
 return response computation mode used in SurrogateModels for forming currentResponse
 
virtual DiscrepancyCorrectiondiscrepancy_correction ()
 return the DiscrepancyCorrection object used by SurrogateModels
 
virtual unsigned short correction_mode () const
 return correctionMode
 
virtual void correction_mode (unsigned short corr_mode)
 set correctionMode
 
virtual void single_apply (const Variables &vars, Response &resp, const Pecos::ActiveKey &paired_key)
 apply a DiscrepancyCorrection to correct an approximation within an EnsembleSurrModel
 
virtual void recursive_apply (const Variables &vars, Response &resp)
 apply a sequence of DiscrepancyCorrections to recursively correct an approximation within an EnsembleSurrModel
 
virtual void cache_unmatched_response (int raw_id)
 migrate an unmatched response record from active response map (computed by synchronize() or synhronize_nowait()) to cached response map
 
virtual void cache_unmatched_responses ()
 migrate remaining response records from responseMap to cachedResponseMap
 
virtual void create_2d_plots ()
 create 2D graphics plots for automatic logging of vars/response data
 
virtual void create_tabular_datastream ()
 create a tabular output stream for automatic logging of vars/response data
 
virtual void derived_auto_graphics (const Variables &vars, const Response &resp)
 Update tabular/graphics data with latest variables/response data.
 
virtual void stop_init_mapping (ParLevLIter pl_iter)
 called from IteratorScheduler::run_iterator() for iteratorComm rank 0 to terminate serve_init_mapping() on other iteratorComm processors
 
virtual int serve_init_mapping (ParLevLIter pl_iter)
 called from IteratorScheduler::run_iterator() for iteratorComm rank != 0 to balance resize() calls on iteratorComm rank 0
 
virtual void stop_finalize_mapping (ParLevLIter pl_iter)
 called from IteratorScheduler::run_iterator() for iteratorComm rank 0 to terminate serve_finalize_mapping() on other iteratorComm processors
 
virtual int serve_finalize_mapping (ParLevLIter pl_iter)
 called from IteratorScheduler::run_iterator() for iteratorComm rank != 0 to balance resize() calls on iteratorComm rank 0
 
ModelList & subordinate_models (bool recurse_flag=true)
 return the sub-models in nested and surrogate models More...
 
void evaluate ()
 Compute the Response at currentVariables (default ActiveSet).
 
void evaluate (const ActiveSet &set)
 Compute the Response at currentVariables (specified ActiveSet).
 
void evaluate_nowait ()
 Spawn an asynchronous job (or jobs) that computes the value of the Response at currentVariables (default ActiveSet).
 
void evaluate_nowait (const ActiveSet &set)
 Spawn an asynchronous job (or jobs) that computes the value of the Response at currentVariables (specified ActiveSet).
 
const IntResponseMap & synchronize ()
 Execute a blocking scheduling algorithm to collect the complete set of results from a group of asynchronous evaluations.
 
const IntResponseMap & synchronize_nowait ()
 Execute a nonblocking scheduling algorithm to collect all available results from a group of asynchronous evaluations.
 
int evaluation_id () const
 return Model's (top-level) evaluation counter, not to be confused with derived counter returned by derived_evaluation_id()
 
bool mapping_initialized () const
 
void init_communicators (ParLevLIter pl_iter, int max_eval_concurrency, bool recurse_flag=true)
 allocate communicator partitions for a model and store configuration in modelPCIterMap More...
 
void init_serial ()
 for cases where init_communicators() will not be called, modify some default settings to behave properly in serial. More...
 
void set_communicators (ParLevLIter pl_iter, int max_eval_concurrency, bool recurse_flag=true)
 set active parallel configuration for the model (set modelPCIter from modelPCIterMap)
 
void free_communicators (ParLevLIter pl_iter, int max_eval_concurrency, bool recurse_flag=true)
 deallocate communicator partitions for a model
 
MPI_Comm analysis_comm () const
 retrieve the MPI communicator on which this model is configured to conduct function evaluation analyses (provided for library clients)
 
void stop_init_communicators (ParLevLIter pl_iter)
 called from IteratorScheduler::init_iterator() for iteratorComm rank 0 to terminate serve_init_communicators() on other iteratorComm processors
 
int serve_init_communicators (ParLevLIter pl_iter)
 called from IteratorScheduler::init_iterator() for iteratorComm rank != 0 to balance init_communicators() calls on iteratorComm rank 0
 
void estimate_message_lengths ()
 estimate messageLengths for a model More...
 
size_t response_size () const
 return (potentially aggregated) size of response vector in currentResponse
 
bool manage_data_recastings ()
 initialize modelList and recastFlags for data import/export More...
 
bool recastings () const
 return true if recastFlags is defined
 
void user_space_to_iterator_space (const Variables &user_vars, const Response &user_resp, Variables &iter_vars, Response &iter_resp)
 employ the model recursion to transform from bottom level user-space data to top level iterator-space data
 
void iterator_space_to_user_space (const Variables &iter_vars, const Response &iter_resp, Variables &user_vars, Response &user_resp)
 employ the model recursion to transform from top level iterator-space data to bottom level user-space data
 
void assign_rep (std::shared_ptr< Model > model_rep)
 replaces existing letter with a new one More...
 
size_t tv () const
 returns total number of vars
 
size_t cv () const
 returns number of active continuous variables
 
size_t div () const
 returns number of active discrete integer vars
 
size_t dsv () const
 returns number of active discrete string vars
 
size_t drv () const
 returns number of active discrete real vars
 
size_t icv () const
 returns number of inactive continuous variables
 
size_t idiv () const
 returns number of inactive discrete integer vars
 
size_t idsv () const
 returns number of inactive discrete string vars
 
size_t idrv () const
 returns number of inactive discrete real vars
 
size_t acv () const
 returns total number of continuous variables
 
size_t adiv () const
 returns total number of discrete integer vars
 
size_t adsv () const
 returns total number of discrete string vars
 
size_t adrv () const
 returns total number of discrete real vars
 
void active_variables (const Variables &vars)
 set the active variables in currentVariables
 
void inactive_variables (const Variables &vars)
 set the inactive variables in currentVariables
 
const RealVector & continuous_variables () const
 return the active continuous variables from currentVariables
 
Real continuous_variable (size_t i) const
 return an active continuous variable from currentVariables
 
void continuous_variables (const RealVector &c_vars)
 set the active continuous variables in currentVariables
 
void continuous_variable (Real c_var, size_t i)
 set an active continuous variable in currentVariables
 
const IntVector & discrete_int_variables () const
 return the active discrete integer variables from currentVariables
 
int discrete_int_variable (size_t i) const
 return an active discrete integer variable from currentVariables
 
void discrete_int_variables (const IntVector &d_vars)
 set the active discrete integer variables in currentVariables
 
void discrete_int_variable (int d_var, size_t i)
 set an active discrete integer variable in currentVariables
 
StringMultiArrayConstView discrete_string_variables () const
 return the active discrete string variables from currentVariables
 
const String & discrete_string_variable (size_t i) const
 return an active discrete string variable from currentVariables
 
void discrete_string_variables (StringMultiArrayConstView d_vars)
 set the active discrete string variables in currentVariables
 
void discrete_string_variable (const String &d_var, size_t i)
 set an active discrete string variable in currentVariables
 
const RealVector & discrete_real_variables () const
 return the active discrete real variables from currentVariables
 
Real discrete_real_variable (size_t i) const
 return an active discrete real variable from currentVariables
 
void discrete_real_variables (const RealVector &d_vars)
 set the active discrete real variables in currentVariables
 
void discrete_real_variable (Real d_var, size_t i)
 set an active discrete real variable in currentVariables
 
UShortMultiArrayConstView continuous_variable_types () const
 return the active continuous variable types from currentVariables
 
void continuous_variable_types (UShortMultiArrayConstView cv_types)
 set the active continuous variable types in currentVariables
 
void continuous_variable_type (unsigned short cv_type, size_t i)
 set an active continuous variable type in currentVariables
 
UShortMultiArrayConstView discrete_int_variable_types () const
 return the active discrete variable types from currentVariables
 
void discrete_int_variable_types (UShortMultiArrayConstView div_types)
 set the active discrete variable types in currentVariables
 
void discrete_int_variable_type (unsigned short div_type, size_t i)
 set an active discrete variable type in currentVariables
 
UShortMultiArrayConstView discrete_string_variable_types () const
 return the active discrete variable types from currentVariables
 
void discrete_string_variable_types (UShortMultiArrayConstView div_types)
 set the active discrete variable types in currentVariables
 
void discrete_string_variable_type (unsigned short div_type, size_t i)
 set an active discrete variable type in currentVariables
 
UShortMultiArrayConstView discrete_real_variable_types () const
 return the active discrete variable types from currentVariables
 
void discrete_real_variable_types (UShortMultiArrayConstView drv_types)
 set the active discrete variable types in currentVariables
 
void discrete_real_variable_type (unsigned short drv_type, size_t i)
 set an active discrete variable type in currentVariables
 
SizetMultiArrayConstView continuous_variable_ids () const
 return the active continuous variable identifiers from currentVariables
 
void continuous_variable_ids (SizetMultiArrayConstView cv_ids)
 set the active continuous variable identifiers in currentVariables
 
void continuous_variable_id (size_t cv_id, size_t i)
 set an active continuous variable identifier in currentVariables
 
const RealVector & inactive_continuous_variables () const
 return the inactive continuous variables in currentVariables
 
void inactive_continuous_variables (const RealVector &i_c_vars)
 set the inactive continuous variables in currentVariables
 
const IntVector & inactive_discrete_int_variables () const
 return the inactive discrete variables in currentVariables
 
void inactive_discrete_int_variables (const IntVector &i_d_vars)
 set the inactive discrete variables in currentVariables
 
StringMultiArrayConstView inactive_discrete_string_variables () const
 return the inactive discrete variables in currentVariables
 
void inactive_discrete_string_variables (StringMultiArrayConstView i_d_vars)
 set the inactive discrete variables in currentVariables
 
const RealVector & inactive_discrete_real_variables () const
 return the inactive discrete variables in currentVariables
 
void inactive_discrete_real_variables (const RealVector &i_d_vars)
 set the inactive discrete variables in currentVariables
 
UShortMultiArrayConstView inactive_continuous_variable_types () const
 return the inactive continuous variable types from currentVariables
 
SizetMultiArrayConstView inactive_continuous_variable_ids () const
 return the inactive continuous variable identifiers from currentVariables
 
const RealVector & all_continuous_variables () const
 return all continuous variables in currentVariables
 
void all_continuous_variables (const RealVector &a_c_vars)
 set all continuous variables in currentVariables
 
void all_continuous_variable (Real a_c_var, size_t i)
 set a variable within the all continuous variables in currentVariables
 
const IntVector & all_discrete_int_variables () const
 return all discrete variables in currentVariables
 
void all_discrete_int_variables (const IntVector &a_d_vars)
 set all discrete variables in currentVariables
 
void all_discrete_int_variable (int a_d_var, size_t i)
 set a variable within the all discrete variables in currentVariables
 
StringMultiArrayConstView all_discrete_string_variables () const
 return all discrete variables in currentVariables
 
void all_discrete_string_variables (StringMultiArrayConstView a_d_vars)
 set all discrete variables in currentVariables
 
void all_discrete_string_variable (const String &a_d_var, size_t i)
 set a variable within the all discrete variables in currentVariables
 
const RealVector & all_discrete_real_variables () const
 return all discrete variables in currentVariables
 
void all_discrete_real_variables (const RealVector &a_d_vars)
 set all discrete variables in currentVariables
 
void all_discrete_real_variable (Real a_d_var, size_t i)
 set a variable within the all discrete variables in currentVariables
 
UShortMultiArrayConstView all_continuous_variable_types () const
 return all continuous variable types from currentVariables
 
UShortMultiArrayConstView all_discrete_int_variable_types () const
 return all discrete variable types from currentVariables
 
UShortMultiArrayConstView all_discrete_string_variable_types () const
 return all discrete variable types from currentVariables
 
UShortMultiArrayConstView all_discrete_real_variable_types () const
 return all discrete variable types from currentVariables
 
SizetMultiArrayConstView all_continuous_variable_ids () const
 return all continuous variable identifiers from currentVariables
 
const BitArray & discrete_int_sets ()
 define and return discreteIntSets using active view from currentVariables
 
const BitArray & discrete_int_sets (short active_view)
 define and return discreteIntSets using passed active view
 
const IntSetArray & discrete_set_int_values ()
 return the sets of values available for each of the active discrete set integer variables (aggregated in activeDiscSetIntValues)
 
const IntSetArray & discrete_set_int_values (short active_view)
 return the sets of values available for each of the active discrete set integer variables (aggregated in activeDiscSetIntValues)
 
const StringSetArray & discrete_set_string_values ()
 return the sets of values available for each of the active discrete set string variables (aggregated in activeDiscSetStringValues)
 
const StringSetArray & discrete_set_string_values (short active_view)
 return the sets of values available for each of the active discrete set string variables (aggregated in activeDiscSetStringValues)
 
const RealSetArray & discrete_set_real_values ()
 return the sets of values available for each of the active discrete set real variables (aggregated in activeDiscSetRealValues)
 
const RealSetArray & discrete_set_real_values (short active_view)
 return the sets of values available for each of the active discrete set real variables (aggregated in activeDiscSetRealValues)
 
Pecos::MultivariateDistribution & multivariate_distribution ()
 return mvDist
 
const Pecos::MultivariateDistribution & multivariate_distribution () const
 return mvDist
 
StringMultiArrayConstView continuous_variable_labels () const
 return the active continuous variable labels from currentVariables
 
void continuous_variable_labels (StringMultiArrayConstView c_v_labels)
 set the active continuous variable labels in currentVariables
 
StringMultiArrayConstView discrete_int_variable_labels () const
 return the active discrete variable labels from currentVariables
 
void discrete_int_variable_labels (StringMultiArrayConstView d_v_labels)
 set the active discrete variable labels in currentVariables
 
StringMultiArrayConstView discrete_string_variable_labels () const
 return the active discrete variable labels from currentVariables
 
void discrete_string_variable_labels (StringMultiArrayConstView d_v_labels)
 set the active discrete variable labels in currentVariables
 
StringMultiArrayConstView discrete_real_variable_labels () const
 return the active discrete variable labels from currentVariables
 
void discrete_real_variable_labels (StringMultiArrayConstView d_v_labels)
 set the active discrete variable labels in currentVariables
 
StringArray ordered_labels () const
 Return labels of all active variables in "input spec" order.
 
StringMultiArrayConstView inactive_continuous_variable_labels () const
 return the inactive continuous variable labels in currentVariables
 
void inactive_continuous_variable_labels (StringMultiArrayConstView i_c_v_labels)
 set the inactive continuous variable labels in currentVariables
 
StringMultiArrayConstView inactive_discrete_int_variable_labels () const
 return the inactive discrete variable labels in currentVariables
 
void inactive_discrete_int_variable_labels (StringMultiArrayConstView i_d_v_labels)
 set the inactive discrete variable labels in currentVariables
 
StringMultiArrayConstView inactive_discrete_string_variable_labels () const
 return the inactive discrete variable labels in currentVariables
 
void inactive_discrete_string_variable_labels (StringMultiArrayConstView i_d_v_labels)
 set the inactive discrete variable labels in currentVariables
 
StringMultiArrayConstView inactive_discrete_real_variable_labels () const
 return the inactive discrete variable labels in currentVariables
 
void inactive_discrete_real_variable_labels (StringMultiArrayConstView i_d_v_labels)
 set the inactive discrete variable labels in currentVariables
 
StringArray inactive_ordered_labels () const
 Return labels of all inactive variables in "input spec" order.
 
StringMultiArrayConstView all_continuous_variable_labels () const
 return all continuous variable labels in currentVariables
 
void all_continuous_variable_labels (StringMultiArrayConstView a_c_v_labels)
 set all continuous variable labels in currentVariables
 
void all_continuous_variable_label (const String &a_c_v_label, size_t i)
 set a label within the all continuous labels in currentVariables
 
StringMultiArrayConstView all_discrete_int_variable_labels () const
 return all discrete variable labels in currentVariables
 
void all_discrete_int_variable_labels (StringMultiArrayConstView a_d_v_labels)
 set all discrete variable labels in currentVariables
 
void all_discrete_int_variable_label (const String &a_d_v_label, size_t i)
 set a label within the all discrete labels in currentVariables
 
StringMultiArrayConstView all_discrete_string_variable_labels () const
 return all discrete variable labels in currentVariables
 
void all_discrete_string_variable_labels (StringMultiArrayConstView a_d_v_labels)
 set all discrete variable labels in currentVariables
 
void all_discrete_string_variable_label (const String &a_d_v_label, size_t i)
 set a label within the all discrete labels in currentVariables
 
StringMultiArrayConstView all_discrete_real_variable_labels () const
 return all discrete variable labels in currentVariables
 
void all_discrete_real_variable_labels (StringMultiArrayConstView a_d_v_labels)
 set all discrete variable labels in currentVariables
 
void all_discrete_real_variable_label (const String &a_d_v_label, size_t i)
 set a label within the all discrete labels in currentVariables
 
StringArray all_ordered_labels () const
 Return labels of all variables in "input spec" order.
 
const StringArray & response_labels () const
 return the response labels from currentResponse
 
void response_labels (const StringArray &resp_labels)
 set the response labels in currentResponse
 
const RealVector & continuous_lower_bounds () const
 return the active continuous lower bounds from userDefinedConstraints
 
Real continuous_lower_bound (size_t i) const
 return an active continuous lower bound from userDefinedConstraints
 
void continuous_lower_bounds (const RealVector &c_l_bnds)
 set the active continuous lower bounds in userDefinedConstraints
 
void continuous_lower_bound (Real c_l_bnd, size_t i)
 set the i-th active continuous lower bound in userDefinedConstraints
 
const RealVector & continuous_upper_bounds () const
 return the active continuous upper bounds from userDefinedConstraints
 
Real continuous_upper_bound (size_t i) const
 return an active continuous upper bound from userDefinedConstraints
 
void continuous_upper_bounds (const RealVector &c_u_bnds)
 set the active continuous upper bounds in userDefinedConstraints
 
void continuous_upper_bound (Real c_u_bnd, size_t i)
 set the i-th active continuous upper bound from userDefinedConstraints
 
const IntVector & discrete_int_lower_bounds () const
 return the active discrete int lower bounds from userDefinedConstraints
 
int discrete_int_lower_bound (size_t i) const
 return an active discrete int lower bound from userDefinedConstraints
 
void discrete_int_lower_bounds (const IntVector &d_l_bnds)
 set the active discrete int lower bounds in userDefinedConstraints
 
void discrete_int_lower_bound (int d_l_bnd, size_t i)
 set the i-th active discrete int lower bound in userDefinedConstraints
 
const IntVector & discrete_int_upper_bounds () const
 return the active discrete int upper bounds from userDefinedConstraints
 
int discrete_int_upper_bound (size_t i) const
 return an active discrete int upper bound from userDefinedConstraints
 
void discrete_int_upper_bounds (const IntVector &d_u_bnds)
 set the active discrete int upper bounds in userDefinedConstraints
 
void discrete_int_upper_bound (int d_u_bnd, size_t i)
 set the i-th active discrete int upper bound in userDefinedConstraints
 
const RealVector & discrete_real_lower_bounds () const
 return the active discrete real lower bounds from userDefinedConstraints
 
Real discrete_real_lower_bound (size_t i) const
 return an active discrete real lower bound from userDefinedConstraints
 
void discrete_real_lower_bounds (const RealVector &d_l_bnds)
 set the active discrete real lower bounds in userDefinedConstraints
 
void discrete_real_lower_bound (Real d_l_bnd, size_t i)
 set the i-th active discrete real lower bound in userDefinedConstraints
 
const RealVector & discrete_real_upper_bounds () const
 return the active discrete real upper bounds from userDefinedConstraints
 
Real discrete_real_upper_bound (size_t i) const
 return an active discrete real upper bound from userDefinedConstraints
 
void discrete_real_upper_bounds (const RealVector &d_u_bnds)
 set the active discrete real upper bounds in userDefinedConstraints
 
void discrete_real_upper_bound (Real d_u_bnd, size_t i)
 set the i-th active discrete real upper bound in userDefinedConstraints
 
const RealVector & inactive_continuous_lower_bounds () const
 return the inactive continuous lower bounds in userDefinedConstraints
 
void inactive_continuous_lower_bounds (const RealVector &i_c_l_bnds)
 set the inactive continuous lower bounds in userDefinedConstraints
 
const RealVector & inactive_continuous_upper_bounds () const
 return the inactive continuous upper bounds in userDefinedConstraints
 
void inactive_continuous_upper_bounds (const RealVector &i_c_u_bnds)
 set the inactive continuous upper bounds in userDefinedConstraints
 
const IntVector & inactive_discrete_int_lower_bounds () const
 return the inactive discrete lower bounds in userDefinedConstraints
 
void inactive_discrete_int_lower_bounds (const IntVector &i_d_l_bnds)
 set the inactive discrete lower bounds in userDefinedConstraints
 
const IntVector & inactive_discrete_int_upper_bounds () const
 return the inactive discrete upper bounds in userDefinedConstraints
 
void inactive_discrete_int_upper_bounds (const IntVector &i_d_u_bnds)
 set the inactive discrete upper bounds in userDefinedConstraints
 
const RealVector & inactive_discrete_real_lower_bounds () const
 return the inactive discrete lower bounds in userDefinedConstraints
 
void inactive_discrete_real_lower_bounds (const RealVector &i_d_l_bnds)
 set the inactive discrete lower bounds in userDefinedConstraints
 
const RealVector & inactive_discrete_real_upper_bounds () const
 return the inactive discrete upper bounds in userDefinedConstraints
 
void inactive_discrete_real_upper_bounds (const RealVector &i_d_u_bnds)
 set the inactive discrete upper bounds in userDefinedConstraints
 
const RealVector & all_continuous_lower_bounds () const
 return all continuous lower bounds in userDefinedConstraints
 
void all_continuous_lower_bounds (const RealVector &a_c_l_bnds)
 set all continuous lower bounds in userDefinedConstraints
 
void all_continuous_lower_bound (Real a_c_l_bnd, size_t i)
 set a lower bound within continuous lower bounds in userDefinedConstraints
 
const RealVector & all_continuous_upper_bounds () const
 return all continuous upper bounds in userDefinedConstraints
 
void all_continuous_upper_bounds (const RealVector &a_c_u_bnds)
 set all continuous upper bounds in userDefinedConstraints
 
void all_continuous_upper_bound (Real a_c_u_bnd, size_t i)
 set an upper bound within all continuous upper bounds in userDefinedConstraints
 
const IntVector & all_discrete_int_lower_bounds () const
 return all discrete lower bounds in userDefinedConstraints
 
void all_discrete_int_lower_bounds (const IntVector &a_d_l_bnds)
 set all discrete lower bounds in userDefinedConstraints
 
void all_discrete_int_lower_bound (int a_d_l_bnd, size_t i)
 set a lower bound within all discrete lower bounds in userDefinedConstraints
 
const IntVector & all_discrete_int_upper_bounds () const
 return all discrete upper bounds in userDefinedConstraints
 
void all_discrete_int_upper_bounds (const IntVector &a_d_u_bnds)
 set all discrete upper bounds in userDefinedConstraints
 
void all_discrete_int_upper_bound (int a_d_u_bnd, size_t i)
 set an upper bound within all discrete upper bounds in userDefinedConstraints
 
const RealVector & all_discrete_real_lower_bounds () const
 return all discrete lower bounds in userDefinedConstraints
 
void all_discrete_real_lower_bounds (const RealVector &a_d_l_bnds)
 set all discrete lower bounds in userDefinedConstraints
 
void all_discrete_real_lower_bound (Real a_d_l_bnd, size_t i)
 set a lower bound within all discrete lower bounds in userDefinedConstraints
 
const RealVector & all_discrete_real_upper_bounds () const
 return all discrete upper bounds in userDefinedConstraints
 
void all_discrete_real_upper_bounds (const RealVector &a_d_u_bnds)
 set all discrete upper bounds in userDefinedConstraints
 
void all_discrete_real_upper_bound (Real a_d_u_bnd, size_t i)
 set an upper bound within all discrete upper bounds in userDefinedConstraints
 
size_t num_linear_ineq_constraints () const
 reshape the linear/nonlinear constraint arrays More...
 
size_t num_linear_eq_constraints () const
 return the number of linear equality constraints
 
const RealMatrix & linear_ineq_constraint_coeffs () const
 return the linear inequality constraint coefficients
 
void linear_ineq_constraint_coeffs (const RealMatrix &lin_ineq_coeffs)
 set the linear inequality constraint coefficients
 
const RealVector & linear_ineq_constraint_lower_bounds () const
 return the linear inequality constraint lower bounds
 
void linear_ineq_constraint_lower_bounds (const RealVector &lin_ineq_l_bnds)
 set the linear inequality constraint lower bounds
 
const RealVector & linear_ineq_constraint_upper_bounds () const
 return the linear inequality constraint upper bounds
 
void linear_ineq_constraint_upper_bounds (const RealVector &lin_ineq_u_bnds)
 set the linear inequality constraint upper bounds
 
const RealMatrix & linear_eq_constraint_coeffs () const
 return the linear equality constraint coefficients
 
void linear_eq_constraint_coeffs (const RealMatrix &lin_eq_coeffs)
 set the linear equality constraint coefficients
 
const RealVector & linear_eq_constraint_targets () const
 return the linear equality constraint targets
 
void linear_eq_constraint_targets (const RealVector &lin_eq_targets)
 set the linear equality constraint targets
 
size_t num_nonlinear_ineq_constraints () const
 return the number of nonlinear inequality constraints
 
size_t num_nonlinear_eq_constraints () const
 return the number of nonlinear equality constraints
 
const RealVector & nonlinear_ineq_constraint_lower_bounds () const
 return the nonlinear inequality constraint lower bounds
 
void nonlinear_ineq_constraint_lower_bounds (const RealVector &nln_ineq_l_bnds)
 set the nonlinear inequality constraint lower bounds
 
const RealVector & nonlinear_ineq_constraint_upper_bounds () const
 return the nonlinear inequality constraint upper bounds
 
void nonlinear_ineq_constraint_upper_bounds (const RealVector &nln_ineq_u_bnds)
 set the nonlinear inequality constraint upper bounds
 
const RealVector & nonlinear_eq_constraint_targets () const
 return the nonlinear equality constraint targets
 
void nonlinear_eq_constraint_targets (const RealVector &nln_eq_targets)
 set the nonlinear equality constraint targets
 
const Variablescurrent_variables () const
 return the current variables (currentVariables) as const reference (preferred)
 
Variablescurrent_variables ()
 return the current variables (currentVariables) in mutable form (special cases)
 
const Constraintsuser_defined_constraints () const
 return the user-defined constraints (userDefinedConstraints) as const reference (preferred)
 
Constraintsuser_defined_constraints ()
 return the user-defined constraints (userDefinedConstraints) in mutable form (special cases)
 
const Responsecurrent_response () const
 return the current response (currentResponse)
 
ProblemDescDBproblem_description_db () const
 return the problem description database (probDescDB)
 
ParallelLibraryparallel_library () const
 return the parallel library (parallelLib)
 
const String & model_type () const
 return the model type (modelType)
 
const String & surrogate_type () const
 return the surrogate type (surrogateType)
 
const String & model_id () const
 return the model identifier (modelId)
 
size_t num_primary_fns () const
 return number of primary functions (total less nonlinear constraints)
 
size_t num_secondary_fns () const
 return number of secondary functions (number of nonlinear constraints)
 
const String & gradient_type () const
 return the gradient evaluation type (gradientType)
 
const String & method_source () const
 return the numerical gradient evaluation method source (methodSource)
 
const String & interval_type () const
 return the numerical gradient evaluation interval type (intervalType)
 
bool ignore_bounds () const
 option for ignoring bounds when numerically estimating derivatives
 
bool central_hess () const
 option for using old 2nd-order scheme when computing finite-diff Hessian
 
const RealVector & fd_gradient_step_size () const
 return the finite difference gradient step size (fdGradStepSize)
 
const String & fd_gradient_step_type () const
 return the finite difference gradient step type (fdGradStepType)
 
const IntSet & gradient_id_analytic () const
 return the mixed gradient analytic IDs (gradIdAnalytic)
 
const IntSet & gradient_id_numerical () const
 return the mixed gradient numerical IDs (gradIdNumerical)
 
const String & hessian_type () const
 return the Hessian evaluation type (hessianType)
 
const String & quasi_hessian_type () const
 return the Hessian evaluation type (quasiHessType)
 
const RealVector & fd_hessian_by_grad_step_size () const
 return gradient-based finite difference Hessian step size (fdHessByGradStepSize)
 
const RealVector & fd_hessian_by_fn_step_size () const
 return function-based finite difference Hessian step size (fdHessByFnStepSize)
 
const String & fd_hessian_step_type () const
 return the finite difference Hessian step type (fdHessStepType)
 
const IntSet & hessian_id_analytic () const
 return the mixed Hessian analytic IDs (hessIdAnalytic)
 
const IntSet & hessian_id_numerical () const
 return the mixed Hessian analytic IDs (hessIdNumerical)
 
const IntSet & hessian_id_quasi () const
 return the mixed Hessian analytic IDs (hessIdQuasi)
 
void primary_response_fn_sense (const BoolDeque &sense)
 set the optimization sense for multiple objective functions
 
const BoolDeque & primary_response_fn_sense () const
 get the optimization sense for multiple objective functions
 
const RealVector & primary_response_fn_weights () const
 get the relative weightings for multiple objective functions or least squares terms
 
const ScalingOptionsscaling_options () const
 user-provided scaling options
 
short primary_fn_type () const
 get the primary response function type (generic, objective, calibration)
 
void primary_fn_type (short type)
 set the primary response function type, e.g., when recasting
 
bool derivative_estimation ()
 indicates potential usage of estimate_derivatives() based on gradientType/hessianType
 
void supports_derivative_estimation (bool sed_flag)
 set whether this model should perform or pass on derivative estimation
 
void init_comms_bcast_flag (bool icb_flag)
 set initCommsBcastFlag
 
int evaluation_capacity () const
 return the evaluation capacity for use in iterator logic
 
int derivative_concurrency () const
 return the gradient concurrency for use in parallel configuration logic More...
 
bool asynch_flag () const
 return the asynchronous evaluation flag (asynchEvalFlag)
 
void asynch_flag (const bool flag)
 set the asynchronous evaluation flag (asynchEvalFlag)
 
short output_level () const
 return the outputLevel
 
void output_level (const short level)
 set the outputLevel
 
const IntArray & message_lengths () const
 return the array of MPI packed message buffer lengths (messageLengths)
 
void parallel_configuration_iterator (ParConfigLIter pc_iter)
 set modelPCIter
 
ParConfigLIter parallel_configuration_iterator () const
 return modelPCIter
 
void auto_graphics (const bool flag)
 set modelAutoGraphicsFlag to activate posting of graphics data within evaluate/synchronize functions (automatic graphics posting in the model as opposed to graphics posting at the strategy level).
 
bool auto_graphics () const
 get modelAutoGraphicsFlag to activate posting of graphics data within evaluate/synchronize functions (automatic graphics posting in the model as opposed to graphics posting at the strategy level).
 
bool is_null () const
 function to check modelRep (does this envelope contain a letter)
 
std::shared_ptr< Modelmodel_rep () const
 returns modelRep for access to derived class member functions that are not mapped to the top Model level
 

Protected Member Functions

Pecos::ProbabilityTransformation & probability_transformation ()
 return probability transformation employed by the Model (forwarded along to ProbabilityTransformModel recasting)
 
bool initialize_mapping (ParLevLIter pl_iter)
 Perform any global updates prior to individual evaluate() calls; returns true if the variables size has changed.
 
bool finalize_mapping ()
 restore state in preparation for next initialization; returns true if the variables size has changed
 
void nested_variable_mappings (const SizetArray &c_index1, const SizetArray &di_index1, const SizetArray &ds_index1, const SizetArray &dr_index1, const ShortArray &c_target2, const ShortArray &di_target2, const ShortArray &ds_target2, const ShortArray &dr_target2)
 set primaryA{C,DI,DS,DR}VarMapIndices, secondaryA{C,DI,DS,DR}VarMapTargets (coming from a higher-level NestedModel context to inform derivative est.)
 
const SizetArray & nested_acv1_indices () const
 return primaryACVarMapIndices
 
const ShortArray & nested_acv2_targets () const
 return secondaryACVarMapTargets
 
short query_distribution_parameter_derivatives () const
 calculate and return derivative composition of final results w.r.t. distribution parameters (none, all, or mixed)
 
void activate_distribution_parameter_derivatives ()
 activate derivative setting w.r.t. distribution parameters
 
void deactivate_distribution_parameter_derivatives ()
 deactivate derivative setting w.r.t. distribution parameters
 
void trans_grad_X_to_U (const RealVector &fn_grad_x, RealVector &fn_grad_u, const RealVector &x_vars)
 transform x-space gradient vector to u-space
 
void trans_grad_U_to_X (const RealVector &fn_grad_u, RealVector &fn_grad_x, const RealVector &x_vars)
 transform u-space gradient vector to x-space
 
void trans_grad_X_to_S (const RealVector &fn_grad_x, RealVector &fn_grad_s, const RealVector &x_vars)
 transform x-space gradient vector to gradient with respect to inserted distribution parameters
 
void trans_hess_X_to_U (const RealSymMatrix &fn_hess_x, RealSymMatrix &fn_hess_u, const RealVector &x_vars, const RealVector &fn_grad_x)
 transform x-space Hessian matrix to u-space
 
size_t qoi () const
 return number of unique response functions (managing any aggregations)
 
void derived_evaluate (const ActiveSet &set)
 portion of evaluate() specific to RecastModel (forward to subModel.evaluate()) More...
 
void derived_evaluate_nowait (const ActiveSet &set)
 portion of evaluate_nowait() specific to RecastModel (forward to subModel.evaluate_nowait())
 
const IntResponseMap & derived_synchronize ()
 portion of synchronize() specific to RecastModel (forward to subModel.synchronize())
 
const IntResponseMap & derived_synchronize_nowait ()
 portion of synchronize_nowait() specific to RecastModel (forward to subModel.synchronize_nowait())
 
Iteratorsubordinate_iterator ()
 return sub-iterator, if present, within subModel
 
Modelsubordinate_model ()
 return subModel
 
void active_model_key (const Pecos::ActiveKey &key)
 set key in subModel
 
const Pecos::ActiveKey & active_model_key () const
 return key from subModel
 
void clear_model_keys ()
 remove keys in subModel
 
Modelsurrogate_model (size_t i=_NPOS)
 return the i-th surrogate model within subModel
 
const Modelsurrogate_model (size_t i=_NPOS) const
 return the i-th surrogate model within subModel
 
Modelactive_surrogate_model (size_t i=_NPOS)
 return the i-th active surrogate model within subModel
 
const Modelactive_surrogate_model (size_t i=_NPOS) const
 return the i-th active surrogate model within subModel
 
Modeltruth_model ()
 return the truth model within subModel
 
const Modeltruth_model () const
 return the truth model within subModel
 
Modelactive_truth_model ()
 return the active truth model within subModel
 
const Modelactive_truth_model () const
 return the active truth model within subModel
 
void derived_subordinate_models (ModelList &ml, bool recurse_flag)
 add subModel to list and recurse into subModel
 
void resize_from_subordinate_model (size_t depth=SZ_MAX)
 pass request to subModel if recursing and then resize from its results
 
void update_from_subordinate_model (size_t depth=SZ_MAX)
 pass request to subModel if recursing and then update from its results
 
Interfacederived_interface ()
 return subModel interface
 
size_t solution_levels () const
 return size of subModel::solnControlCostMap
 
void solution_level_cost_index (size_t cost_index)
 activate entry in subModel::solnControlCostMap
 
size_t solution_level_cost_index () const
 return active entry in subModel::solnControlCostMap
 
RealVector solution_level_costs () const
 return cost estimates from subModel::solnControlCostMap
 
Real solution_level_cost () const
 return active cost estimate from subModel::solnControlCostMap
 
void primary_response_fn_weights (const RealVector &wts, bool recurse_flag=true)
 set the relative weightings for multiple objective functions or least squares terms and optionally recurses into subModel
 
void surrogate_function_indices (const SizetSet &surr_fn_indices)
 update the subModel's surrogate response function indices (DataFitSurrModel::surrogateFnIndices)
 
void surrogate_response_mode (short mode)
 update the subModel's surrogate response mode (SurrogateModel::responseMode)
 
void discrepancy_emulation_mode (short mode)
 update the subModel's discrepancy emulation mode
 
short correction_type () const
 retrieve subModel's correction type
 
void correction_type (short corr_type)
 update subModel's correction type
 
short correction_order () const
 retrieve subModel's correction order
 
const RealVector & error_estimates ()
 retrieve error estimates corresponding to the subModel
 
void build_approximation ()
 builds the subModel approximation
 
bool build_approximation (const Variables &vars, const IntResponsePair &response_pr)
 builds the subModel approximation
 
void rebuild_approximation ()
 updates a subModel approximation
 
void update_approximation (bool rebuild_flag)
 replaces data in the subModel approximation
 
void update_approximation (const Variables &vars, const IntResponsePair &response_pr, bool rebuild_flag)
 replaces data in the subModel approximation
 
void update_approximation (const VariablesArray &vars_array, const IntResponseMap &resp_map, bool rebuild_flag)
 replaces data in the subModel approximation
 
void append_approximation (bool rebuild_flag)
 appends data to the subModel approximation
 
void append_approximation (const Variables &vars, const IntResponsePair &response_pr, bool rebuild_flag)
 appends data to the subModel approximation
 
void append_approximation (const VariablesArray &vars_array, const IntResponseMap &resp_map, bool rebuild_flag)
 appends data to the subModel approximation
 
void pop_approximation (bool save_surr_data, bool rebuild_flag=false)
 remove the previous data set addition to a surrogate (e.g., due to a previous append_approximation() call); flag manages storing of surrogate data for use in a subsequent push_approximation()
 
void push_approximation ()
 push a previous approximation data state; reverse of pop_approximation
 
bool push_available ()
 query for whether a trial increment is restorable within a surrogate
 
void finalize_approximation ()
 finalize an approximation by applying all previous trial increments
 
void combine_approximation ()
 combine the current approximation with previously stored data sets
 
void combined_to_active (bool clear_combined=true)
 promote the combined approximation into the active approximation
 
void clear_inactive ()
 clear inactive approximations (finalization + combination completed)
 
std::vector< Approximation > & approximations ()
 retrieve the set of Approximations from the subModel
 
const RealVectorArray & approximation_coefficients (bool normalized=false)
 retrieve the approximation coefficients from the subModel
 
void approximation_coefficients (const RealVectorArray &approx_coeffs, bool normalized=false)
 set the approximation coefficients within the subModel
 
const RealVector & approximation_variances (const Variables &vars)
 retrieve the approximation variances from the subModel
 
const Pecos::SurrogateData & approximation_data (size_t fn_index)
 retrieve the approximation data from the subModel
 
void component_parallel_mode (short mode)
 RecastModel only supports parallelism in subModel, so this virtual function redefinition is simply a sanity check.
 
size_t mi_parallel_level_index () const
 return subModel's MI parallel level index
 
short local_eval_synchronization ()
 return subModel local synchronization setting
 
int local_eval_concurrency ()
 return subModel local evaluation concurrency
 
bool derived_master_overload () const
 flag which prevents overloading the master with a multiprocessor evaluation (request forwarded to subModel)
 
IntIntPair estimate_partition_bounds (int max_eval_concurrency)
 estimate the minimum and maximum partition sizes that can be utilized by this Model
 
void derived_init_communicators (ParLevLIter pl_iter, int max_eval_concurrency, bool recurse_flag=true)
 set up RecastModel for parallel operations (request forwarded to subModel)
 
void derived_init_serial ()
 set up RecastModel for serial operations (request forwarded to subModel).
 
void derived_set_communicators (ParLevLIter pl_iter, int max_eval_concurrency, bool recurse_flag=true)
 set active parallel configuration within subModel
 
void derived_free_communicators (ParLevLIter pl_iter, int max_eval_concurrency, bool recurse_flag=true)
 deallocate communicator partitions for the RecastModel (request forwarded to subModel)
 
void serve_run (ParLevLIter pl_iter, int max_eval_concurrency)
 Service subModel job requests received from the master. Completes when a termination message is received from stop_servers().
 
void stop_servers ()
 executed by the master to terminate subModel server operations when RecastModel iteration is complete.
 
void active_view (short view, bool recurse_flag=true)
 update the Model's active view based on higher level context and optionally recurse into subModel
 
void inactive_view (short view, bool recurse_flag=true)
 update the Model's inactive view based on higher level context and optionally recurse into subModel
 
const String & interface_id () const
 return the subModel interface identifier
 
bool evaluation_cache (bool recurse_flag=true) const
 if recurse_flag, return the subModel evaluation cache usage
 
bool restart_file (bool recurse_flag=true) const
 if recurse_flag, return the subModel restart file usage
 
int derived_evaluation_id () const
 return the current evaluation id for the RecastModel
 
void set_evaluation_reference ()
 set the evaluation counter reference points for the RecastModel (request forwarded to subModel)
 
void fine_grained_evaluation_counters ()
 request fine-grained evaluation reporting within subModel
 
void print_evaluation_summary (std::ostream &s, bool minimal_header=false, bool relative_count=true) const
 print the evaluation summary for the RecastModel (request forwarded to subModel)
 
void warm_start_flag (const bool flag)
 set the warm start flag, including the orderedModels
 
void eval_tag_prefix (const String &eval_id_str)
 set the hierarchical eval ID tag prefix More...
 
bool db_lookup (const Variables &search_vars, const ActiveSet &search_set, Response &found_resp)
 RecastModel may need to map variables, asv before DB lookup, or responses after lookup.
 
virtual void assign_instance ()
 assign static pointer instance to this for use in static transformation functions
 
virtual void init_metadata ()
 default clear metadata in Recasts; derived classes can override to no-op
 
void init_basic ()
 
void init_variables (const ShortShortPair &recast_vars_view, const SizetArray &vars_comps_totals, const BitArray &all_relax_di, const BitArray &all_relax_dr, bool &consistent_vars)
 initialize currentVariables and related info from the passed size/type info
 
void init_constraints (bool consistent_vars, size_t num_recast_nln_ineq, size_t num_recast_nln_eq)
 initialize userDefinedConstraints, sharing SVD with currentVariables
 
void init_distribution (bool consistent_vars)
 initialize mvDist from SharedVariablesData
 
void init_response (size_t num_recast_primary_fns, size_t num_recast_secondary_fns, short recast_resp_order)
 initialize currentResponse from the passed size info
 
void reshape_response (size_t num_recast_primary_fns, size_t num_recast_secondary_fns)
 Reshape the RecastModel Response, assuming no change in variables or derivative information.
 
void initialize_data_from_submodel ()
 code shared among constructors to initialize base class data from submodel
 
void update_from_model (Model &model)
 update current variables/bounds/labels/constraints from subModel More...
 
virtual bool update_variables_from_model (Model &model)
 update active variables/bounds/labels from subModel
 
void update_all_variables (const Model &model)
 update all variable values from passed sub-model
 
void update_all_discrete_variables (const Model &model)
 update discrete variable values from passed sub-model
 
void update_variables_active_complement_from_model (const Model &model)
 update complement of active variables/bounds/labels from subModel
 
void update_continuous_variables_active_complement_from_model (const Model &model)
 update complement of active continuous variables/bounds/labels from subModel
 
void update_discrete_int_variables_active_complement_from_model (const Model &model)
 update complement of active discrete int variables/bounds/labels from subModel
 
void update_discrete_string_variables_active_complement_from_model (const Model &model)
 update complement of active discrete string variables/bounds/labels from subModel
 
void update_discrete_real_variables_active_complement_from_model (const Model &model)
 update complement of active discrete real variables/bounds/labels from subModel
 
void update_linear_constraints (const Model &model)
 update linear constraints from passed sub-model
 
void update_response_from_model (const Model &model)
 update labels and nonlinear constraint bounds/targets from subModel
 
void update_primary_response (const Model &model)
 update only the primary response data from subModel
 
void update_secondary_response (const Model &model)
 update only the secondary response data from subModel
 
void recast_vector (const RealVector &submodel_vec, RealVector &vec) const
 
- Protected Member Functions inherited from Model
 Model (BaseConstructor, ProblemDescDB &problem_db)
 constructor initializing the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) More...
 
 Model (LightWtBaseConstructor, const ShortShortPair &vars_view, const SharedVariablesData &svd, bool share_svd, const SharedResponseData &srd, bool share_srd, const ActiveSet &set, short output_level, ProblemDescDB &problem_db=dummy_db, ParallelLibrary &parallel_lib=dummy_lib)
 constructor initializing base class for derived model class instances constructed on the fly
 
 Model (LightWtBaseConstructor, ProblemDescDB &problem_db=dummy_db, ParallelLibrary &parallel_lib=dummy_lib)
 constructor initializing base class for recast model instances More...
 
void update_model_active_variables (Model &model)
 update incoming (sub-)model with active values from currentVariables
 
IntResponseMap & response_map ()
 return responseMap
 
void initialize_distribution (Pecos::MultivariateDistribution &mv_dist, bool active_only=false)
 initialize distribution types from problemDescDB More...
 
void initialize_active_types (Pecos::MultivariateDistribution &mv_dist)
 initialize distribution types from problemDescDB More...
 
void initialize_distribution_parameters (Pecos::MultivariateDistribution &mv_dist, bool active_only=false)
 initialize distribution parameters from problemDescDB
 
void set_ie_asynchronous_mode (int max_eval_concurrency)
 default logic for defining asynchEvalFlag and evaluationCapacity based on ie_pl settings
 
void assign_max_strings (const Pecos::MultivariateDistribution &mv_dist, Variables &vars)
 assign all of the longest possible string values into vars
 
SSCIter max_string (const StringSet &ss)
 return iterator for longest string value found in string set
 
SRMCIter max_string (const StringRealMap &srm)
 return iterator for longest string value found in string map
 
SizetMultiArrayConstView initialize_x0_bounds (const SizetArray &original_dvv, bool &active_derivs, bool &inactive_derivs, RealVector &x0, RealVector &fd_lb, RealVector &fd_ub) const
 Initialize data needed for computing finite differences (active/inactive, center point, and bounds)
 
Real forward_grad_step (size_t num_deriv_vars, size_t xj_index, Real x0_j, Real lb_j, Real ub_j)
 Compute the forward step for a finite difference gradient; updates shortStep.
 
EvaluationsDBState evaluations_db_state (const Interface &interface)
 Return the interface flag for the EvaluationsDB state.
 
EvaluationsDBState evaluations_db_state (const Model &model)
 Return the model flag for the EvaluationsDB state.
 
void asynch_eval_store (const Interface &interface, const int &id, const Response &response)
 Store the response portion of an interface evaluation. Called from rekey_response_map()
 
void asynch_eval_store (const Model &model, const int &id, const Response &response)
 Exists to support storage of interface evaluations. No-op so that rekey_response_map<Model> can be generated.
 
template<typename MetaType >
void rekey_response_map (MetaType &meta_object, IntIntMapArray &id_maps, IntResponseMapArray &resp_maps_rekey, bool deep_copy)
 rekey returned jobs matched in array of id_maps into array of resp_maps_rekey; unmatched jobs can be cached within the meta_object
 
template<typename MetaType >
void rekey_response_map (MetaType &meta_object, IntIntMap &id_map, IntResponseMap &resp_map_rekey, bool deep_copy)
 rekey returned jobs matched in id_map into resp_map_rekey; unmatched jobs can be cached within the meta_object
 
template<typename MetaType >
void rekey_synch (MetaType &meta_object, bool block, IntIntMapArray &id_maps, IntResponseMapArray &resp_maps_rekey, bool deep_copy=false)
 synchronize via meta_object and rekey returned jobs matched in array of id_maps into array of resp_maps_rekey; unmatched jobs are cached within the meta_object
 
template<typename MetaType >
void rekey_synch (MetaType &meta_object, bool block, IntIntMap &id_map, IntResponseMap &resp_map_rekey, bool deep_copy=false)
 synchronize via meta_object and rekey returned jobs matched in id_map into resp_map_rekey; unmatched jobs are cached within the meta_object
 

Static Protected Member Functions

static short response_order (const Model &sub_model)
 helper to compute the recast response order during member initialization
 
static String recast_model_id (const String &root_id, const String &type)
 Generate a model id for recast models.
 
- Static Protected Member Functions inherited from Model
static String user_auto_id ()
 return the next available model ID for no-ID user methods More...
 
static String no_spec_id ()
 return the next available model ID for on-the-fly methods More...
 

Protected Attributes

Model subModel
 the sub-model underlying the transformations
 
int recastModelEvalCntr
 local evaluation id counter used for id mapping
 
IntActiveSetMap recastSetMap
 map of recast active set passed to derived_evaluate_nowait(). Needed for currentResponse update in synchronization routines.
 
IntVariablesMap recastVarsMap
 map of recast variables used by derived_evaluate_nowait(). Needed for primaryRespMapping() and secondaryRespMapping() in synchronization routines.
 
IntVariablesMap subModelVarsMap
 map of subModel variables used by derived_evaluate_nowait(). Needed for primaryRespMapping() and secondaryRespMapping() in synchronization routines.
 
IntResponseMap recastResponseMap
 map of recast responses used by RecastModel::derived_synchronize() and RecastModel::derived_synchronize_nowait()
 
IntIntMap recastIdMap
 mapping from subModel evaluation ids to RecastModel evaluation ids
 
bool nonlinearVarsMapping
 boolean set to true if the variables mapping involves a nonlinear transformation. Used in transform_set() to manage the requirement for gradients within the Hessian transformations. This does not require a BoolDeque for each individual variable, since response gradients and Hessians are managed per function, not per variable.
 
- Protected Attributes inherited from Model
Variables currentVariables
 the set of current variables used by the model for performing function evaluations
 
size_t numDerivVars
 the number of active continuous variables used in computing most response derivatives (i.e., in places such as quasi-Hessians and response corrections where only the active continuous variables are supported)
 
Response currentResponse
 the set of current responses that holds the results of model function evaluations
 
size_t numFns
 the number of functions in currentResponse
 
Constraints userDefinedConstraints
 Explicit constraints on variables are maintained in the Constraints class hierarchy. Currently, this includes linear constraints and bounds, but could be extended in the future to include other explicit constraints which (1) have their form specified by the user, and (2) are not catalogued in Response since their form and coefficients are published to an iterator at startup.
 
String modelId
 model identifier string from the input file
 
String modelType
 type of model: simulation, nested, or surrogate
 
String surrogateType
 type of surrogate model: local_*, multipoint_*, global_*, or hierarchical
 
String gradientType
 type of gradient data: analytic, numerical, mixed, or none
 
String methodSource
 source of numerical gradient routine: dakota or vendor
 
String intervalType
 type of numerical gradient interval: central or forward
 
String hessianType
 type of Hessian data: analytic, numerical, quasi, mixed, or none
 
RealVector fdGradStepSize
 relative finite difference step size for numerical gradients More...
 
String fdGradStepType
 type of finite difference step to use for numerical gradient: relative - step length is relative to x absolute - step length is what is specified bounds - step length is relative to range of x
 
RealVector fdHessByGradStepSize
 relative finite difference step size for numerical Hessians estimated using first-order differences of gradients More...
 
RealVector fdHessByFnStepSize
 relative finite difference step size for numerical Hessians estimated using second-order differences of function values More...
 
String fdHessStepType
 type of finite difference step to use for numerical Hessian: relative - step length is relative to x absolute - step length is what is specified bounds - step length is relative to range of x
 
bool ignoreBounds
 option to ignore bounds when computing finite diffs
 
bool centralHess
 option to use old 2nd-order finite diffs for Hessians
 
bool warmStartFlag
 if in warm-start mode, don't reset accumulated data (e.g., quasiHessians)
 
bool supportsEstimDerivs
 whether model should perform or forward derivative estimation
 
String quasiHessType
 quasi-Hessian type: bfgs, damped_bfgs, sr1
 
IntSet gradIdAnalytic
 analytic id's for mixed gradients
 
IntSet gradIdNumerical
 numerical id's for mixed gradients
 
IntSet hessIdAnalytic
 analytic id's for mixed Hessians
 
IntSet hessIdNumerical
 numerical id's for mixed Hessians
 
IntSet hessIdQuasi
 quasi id's for mixed Hessians
 
EvaluationsDBState modelEvaluationsDBState
 Whether to write model evals to the evaluations DB.
 
EvaluationsDBState interfEvaluationsDBState
 Whether to write interface evals to the evaluations DB.
 
IntArray messageLengths
 length of packed MPI buffers containing vars, vars/set, response, and PRPair
 
bool mappingInitialized
 track use of initialize_mapping() and finalize_mapping()
 
ProblemDescDBprobDescDB
 class member reference to the problem description database More...
 
ParallelLibraryparallelLib
 class member reference to the parallel library
 
ParConfigLIter modelPCIter
 the ParallelConfiguration node used by this Model instance
 
short componentParallelMode
 the component parallelism mode: NO_PARALLEL_MODE, SURROGATE_MODEL_MODE,
 
bool asynchEvalFlag
 flags asynch evaluations (local or distributed)
 
int evaluationCapacity
 capacity for concurrent evaluations supported by the Model
 
short outputLevel
 output verbosity level: {SILENT,QUIET,NORMAL,VERBOSE,DEBUG}_OUTPUT
 
Pecos::MultivariateDistribution mvDist
 the multivariate random variable distribution (in probability space corresponding to currentVariables)
 
BoolDeque primaryRespFnSense
 array of flags (one per primary function) for switching the sense to maximize the primary function (default is minimize)
 
RealVector primaryRespFnWts
 primary response function weightings (either weights for multiobjective optimization or weighted least squares)
 
bool hierarchicalTagging
 whether to perform hierarchical evalID tagging of params/results
 
ScalingOptions scalingOpts
 user-provided scaling data from the problem DB, possibly modified by Recasting
 
String evalTagPrefix
 cached evalTag Prefix from parents to use at evaluate time
 
EvaluationStore & evaluationsDB
 reference to the global evaluation database
 

Static Protected Attributes

static StringStringPairIntMap recastModelIdCounters
 Counters for naming RecastModels.
 

Private Member Functions

void resize_response_mapping ()
 resize {primary,secondary}MapIndices and nonlinearRespMapping to synchronize with subModel sizes
 

Private Attributes

Sizet2DArray varsMapIndices
 For each subModel variable (leading index), identifies the indices of the recast variables used to define it (trailing index); used for forward iterator-driven mapping of RecastModel variables to subModel variables. Note: data is packed with only the variable indices employed, rather than a sparsely populated N_sm x N_r matrix.
 
Sizet2DArray primaryRespMapIndices
 For each recast primary function, identifies the indices of the subModel functions used to define it (maps subModel response to RecastModel Response).
 
Sizet2DArray secondaryRespMapIndices
 For each recast secondary function, identifies the indices of the subModel functions used to define it (maps subModel response to RecastModel response).
 
BoolDequeArray nonlinearRespMapping
 array of BoolDeques, one for each recast response function. Each BoolDeque defines which subModel response functions contribute to the recast function using a nonlinear mapping. Used in transform_set() to augment the subModel function value/gradient requirements.
 
RealVector mappedErrorEstimates
 mapping of subModel.error_estimates() through response mappings
 
void(* variablesMapping )(const Variables &recast_vars, Variables &sub_model_vars)
 holds pointer for variables mapping function passed in ctor/initialize
 
void(* setMapping )(const Variables &recast_vars, const ActiveSet &recast_set, ActiveSet &sub_model_set)
 holds pointer for set mapping function passed in ctor/initialize
 
void(* primaryRespMapping )(const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response)
 holds pointer for primary response mapping function passed in ctor/initialize
 
void(* secondaryRespMapping )(const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response)
 holds pointer for secondary response mapping function passed in ctor/initialize
 
void(* invVarsMapping )(const Variables &sub_model_vars, Variables &recast_vars)
 holds pointer for optional inverse variables mapping function passed in inverse_mappings()
 
void(* invSetMapping )(const Variables &sub_model_vars, const ActiveSet &sub_model_set, ActiveSet &recast_set)
 holds pointer for optional inverse set mapping function passed in inverse_mappings()
 
void(* invPriRespMapping )(const Variables &recast_vars, const Variables &sub_model_vars, const Response &recast_resp, Response &sub_model_resp)
 holds pointer for optional inverse primary response mapping function passed in inverse_mappings()
 
void(* invSecRespMapping )(const Variables &recast_vars, const Variables &sub_model_vars, const Response &recast_resp, Response &sub_model_resp)
 holds pointer for optional inverse secondary response mapping function passed in inverse_mappings()
 

Additional Inherited Members

- Static Public Member Functions inherited from Model
static void active_variables (const RealVector &config_vars, Model &model)
 set the specified configuration to the Model's inactive vars, converting from real to integer or through index to string value as needed More...
 
static void inactive_variables (const RealVector &config_vars, Model &model)
 set the specified configuration to the Model's inactive vars, converting from real to integer or through index to string value as needed More...
 
static void inactive_variables (const RealVector &config_vars, Model &model, Variables &updated_vars)
 
static void evaluate (const RealMatrix &samples_matrix, Model &model, RealMatrix &resp_matrix)
 Bulk synchronously evaluate the model for each column (of active variables) in the samples matrix and return as columns of the response matrix.
 
static void evaluate (const VariablesArray &sample_vars, Model &model, RealMatrix &resp_matrix)
 Bulk synchronously evaluate the model for each entry (of active variables) in the samples vector and return as columns of the response matrix.
 

Detailed Description

Derived model class which provides a thin wrapper around a sub-model in order to recast the form of its inputs and/or outputs.

The RecastModel class uses function pointers to allow recasting of the subModel input/output into new problem forms. For example, this is used to recast SBO approximate subproblems, multiobjective and least-squares reductions, and variable/response.

For now, making the assumption that variables mappings are ordered by submodel active continous, discrete int, discrete string, discrete real variables, even though all current use cases are continuous only.

When not using the standard (full) constructor, client code must make sure to complete initialization before using the RecastModel's mapping functions. Initialization steps:

  1. sub model (all ctors do this)
  2. init_sizes: once known, size Variables, Response, Constraints (full and intermediate ctor do this)
  3. init_maps: set indices and callback pointers (only full ctor does this)

Constructor & Destructor Documentation

◆ RecastModel() [1/3]

RecastModel ( const Model sub_model,
const Sizet2DArray &  vars_map_indices,
const SizetArray &  vars_comps_totals,
const BitArray &  all_relax_di,
const BitArray &  all_relax_dr,
bool  nonlinear_vars_mapping,
const ShortShortPair &  recast_vars_view,
void(*)(const Variables &recast_vars, Variables &sub_model_vars)  variables_map,
void(*)(const Variables &recast_vars, const ActiveSet &recast_set, ActiveSet &sub_model_set)  set_map,
const Sizet2DArray &  primary_resp_map_indices,
const Sizet2DArray &  secondary_resp_map_indices,
size_t  recast_secondary_offset,
short  recast_resp_order,
const BoolDequeArray &  nonlinear_resp_mapping,
void(*)(const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response)  primary_resp_map,
void(*)(const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response)  secondary_resp_map 
)

standard (full) constructor; assumes provided sizes and map functions are final and constructs all member data

Default recast model constructor. Requires full definition of the transformation; if any mappings are NULL, they are assumed to remain so in later initialization or updates. Parameter vars_comps_totals indicates the number of each type of variable {4 types} x {3 domains} in the recast variable space. Note: recast_secondary_offset is the start index for nonlinear equality constraints, typically defined as the number of nonlinear inequality constraints.

References Dakota::abort_handler(), Response::active_set_derivative_vector(), Variables::continuous_variable_ids(), SharedVariablesData::copy(), Response::copy(), Variables::copy(), Model::current_response(), Model::current_variables(), Model::currentResponse, Model::currentVariables, Variables::cv(), RecastModel::init_constraints(), RecastModel::init_distribution(), RecastModel::init_metadata(), RecastModel::init_response(), RecastModel::init_variables(), RecastModel::initialize_data_from_submodel(), RecastModel::nonlinearRespMapping, Response::num_functions(), Model::numDerivVars, Model::numFns, RecastModel::primaryRespMapIndices, RecastModel::primaryRespMapping, RecastModel::secondaryRespMapIndices, RecastModel::secondaryRespMapping, Variables::shared_data(), RecastModel::subModel, RecastModel::variablesMapping, and Variables::view().

◆ RecastModel() [2/3]

RecastModel ( const Model sub_model,
const SizetArray &  vars_comps_totals,
const BitArray &  all_relax_di,
const BitArray &  all_relax_dr,
const ShortShortPair &  recast_vars_view,
size_t  num_recast_primary_fns,
size_t  num_recast_secondary_fns,
size_t  recast_secondary_offset,
short  recast_resp_order 
)

alternate constructor; uses provided sizes to construct Variables, Response and Constraints so Model can be passed to an Iterator; requires subsequent init_maps() call.

This alternate constructor defers initialization of the function pointers until a separate call to init_maps(), and accepts the minimum information needed to construct currentVariables, currentResponse, and userDefinedConstraints. The resulting model is sufficiently complete for passing to an Iterator. Parameter vars_comps_totals indicates the number of each type of variable {4 types} x {3 domains} in the recast variable space. Note: recast_secondary_offset is the start index for equality constraints, typically num nonlinear ineq constraints.

References RecastModel::init_distribution(), RecastModel::init_sizes(), and RecastModel::initialize_data_from_submodel().

◆ RecastModel() [3/3]

RecastModel ( const Model sub_model,
const ShortShortPair &  recast_vars_view 
)

Member Function Documentation

◆ init_maps()

void init_maps ( const Sizet2DArray &  vars_map_indices,
bool  nonlinear_vars_mapping,
void(*)(const Variables &recast_vars, Variables &sub_model_vars)  variables_map,
void(*)(const Variables &recast_vars, const ActiveSet &recast_set, ActiveSet &sub_model_set)  set_map,
const Sizet2DArray &  primary_resp_map_indices,
const Sizet2DArray &  secondary_resp_map_indices,
const BoolDequeArray &  nonlinear_resp_mapping,
void(*)(const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response)  primary_resp_map,
void(*)(const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response)  secondary_resp_map 
)

◆ derived_evaluate()

void derived_evaluate ( const ActiveSet set)
protectedvirtual

◆ eval_tag_prefix()

void eval_tag_prefix ( const String &  eval_id_str)
inlineprotectedvirtual

set the hierarchical eval ID tag prefix

RecastModel just forwards any tags to its subModel

Reimplemented from Model.

References Model::eval_tag_prefix(), and RecastModel::subModel.

◆ update_from_model()

void update_from_model ( Model model)
protected

update current variables/bounds/labels/constraints from subModel

Update inactive values and labels in currentVariables and inactive bound constraints in userDefinedConstraints from variables and constraints data within subModel.

References RecastModel::update_response_from_model(), RecastModel::update_variables_active_complement_from_model(), and RecastModel::update_variables_from_model().

Referenced by RecastModel::update_from_subordinate_model().


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