![]() |
Dakota
Version 6.22
Explore and Predict with Confidence
|
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...
Public Member Functions | |
RecastModel (std::shared_ptr< 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 (std::shared_ptr< 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 (std::shared_ptr< Model >, const ShortShortPair &recast_vars_view) | |
alternate constructor; only changes the view (NEED A SUBCLASS FOR THIS?) More... | |
RecastModel (ProblemDescDB &problem_db, std::shared_ptr< 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 (std::shared_ptr< 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. | |
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 () override |
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 () override |
void | declare_sources () override |
Declare a model's sources to the evaluationsDB. | |
bool | nonlinear_variables_mapping () const |
return nonlinearVarsMapping | |
Pecos::ProbabilityTransformation & | probability_transformation () override |
return probability transformation employed by the Model (forwarded along to ProbabilityTransformModel recasting) | |
bool | initialize_mapping (ParLevLIter pl_iter) override |
Perform any global updates prior to individual evaluate() calls; returns true if the variables size has changed. | |
bool | finalize_mapping () override |
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) override |
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 override |
return primaryACVarMapIndices | |
const ShortArray & | nested_acv2_targets () const override |
return secondaryACVarMapTargets | |
short | query_distribution_parameter_derivatives () const override |
calculate and return derivative composition of final results w.r.t. distribution parameters (none, all, or mixed) | |
void | activate_distribution_parameter_derivatives () override |
activate derivative setting w.r.t. distribution parameters | |
void | deactivate_distribution_parameter_derivatives () override |
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) override |
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) override |
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) override |
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) override |
transform x-space Hessian matrix to u-space | |
size_t | qoi () const override |
return number of unique response functions (managing any aggregations) | |
void | derived_evaluate (const ActiveSet &set) override |
portion of evaluate() specific to RecastModel (forward to subModel.evaluate()) More... | |
void | derived_evaluate_nowait (const ActiveSet &set) override |
portion of evaluate_nowait() specific to RecastModel (forward to subModel.evaluate_nowait()) | |
const IntResponseMap & | derived_synchronize () override |
portion of synchronize() specific to RecastModel (forward to subModel.synchronize()) | |
const IntResponseMap & | derived_synchronize_nowait () override |
portion of synchronize_nowait() specific to RecastModel (forward to subModel.synchronize_nowait()) | |
std::shared_ptr< Iterator > | subordinate_iterator () override |
return sub-iterator, if present, within subModel | |
std::shared_ptr< Model > | subordinate_model () override |
return subModel | |
void | active_model_key (const Pecos::ActiveKey &key) override |
set key in subModel | |
const Pecos::ActiveKey & | active_model_key () const override |
return key from subModel | |
void | clear_model_keys () override |
remove keys in subModel | |
std::shared_ptr< Model > | surrogate_model (size_t i=_NPOS) override |
return the i-th surrogate model within subModel | |
std::shared_ptr< const Model > | surrogate_model (size_t i=_NPOS) const override |
return the i-th surrogate model within subModel | |
std::shared_ptr< Model > | active_surrogate_model (size_t i=_NPOS) override |
return the i-th active surrogate model within subModel | |
std::shared_ptr< const Model > | active_surrogate_model (size_t i=_NPOS) const override |
return the i-th active surrogate model within subModel | |
std::shared_ptr< Model > | truth_model () override |
return the truth model within subModel | |
std::shared_ptr< const Model > | truth_model () const override |
return the truth model within subModel | |
std::shared_ptr< Model > | active_truth_model () override |
return the active truth model within subModel | |
std::shared_ptr< const Model > | active_truth_model () const override |
return the active truth model within subModel | |
void | derived_subordinate_models (ModelList &ml, bool recurse_flag) override |
add subModel to list and recurse into subModel | |
void | resize_from_subordinate_model (size_t depth=SZ_MAX) override |
pass request to subModel if recursing and then resize from its results | |
void | update_from_subordinate_model (size_t depth=SZ_MAX) override |
pass request to subModel if recursing and then update from its results | |
std::shared_ptr< Interface > | derived_interface () override |
return subModel interface | |
void | derived_interface (std::shared_ptr< Interface >) override |
size_t | solution_levels () const override |
return size of subModel::solnControlCostMap | |
void | solution_level_cost_index (size_t cost_index) override |
activate entry in subModel::solnControlCostMap | |
size_t | solution_level_cost_index () const override |
return active entry in subModel::solnControlCostMap | |
RealVector | solution_level_costs () const override |
return cost estimates from subModel::solnControlCostMap | |
Real | solution_level_cost () const override |
return active cost estimate from subModel::solnControlCostMap | |
void | primary_response_fn_weights (const RealVector &wts, bool recurse_flag=true) override |
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) override |
update the subModel's surrogate response function indices (DataFitSurrModel::surrogateFnIndices) | |
void | surrogate_response_mode (short mode) override |
update the subModel's surrogate response mode (SurrogateModel::responseMode) | |
void | discrepancy_emulation_mode (short mode) override |
update the subModel's discrepancy emulation mode | |
short | correction_type () const override |
retrieve subModel's correction type | |
void | correction_type (short corr_type) override |
update subModel's correction type | |
short | correction_order () const override |
retrieve subModel's correction order | |
const RealVector & | error_estimates () override |
retrieve error estimates corresponding to the subModel | |
void | build_approximation () override |
builds the subModel approximation | |
bool | build_approximation (const Variables &vars, const IntResponsePair &response_pr) override |
builds the subModel approximation | |
void | rebuild_approximation () override |
updates a subModel approximation | |
void | update_approximation (bool rebuild_flag) override |
replaces data in the subModel approximation | |
void | update_approximation (const Variables &vars, const IntResponsePair &response_pr, bool rebuild_flag) override |
replaces data in the subModel approximation | |
void | update_approximation (const VariablesArray &vars_array, const IntResponseMap &resp_map, bool rebuild_flag) override |
replaces data in the subModel approximation | |
void | append_approximation (bool rebuild_flag) override |
appends data to the subModel approximation | |
void | append_approximation (const Variables &vars, const IntResponsePair &response_pr, bool rebuild_flag) override |
appends data to the subModel approximation | |
void | append_approximation (const VariablesArray &vars_array, const IntResponseMap &resp_map, bool rebuild_flag) override |
appends data to the subModel approximation | |
void | pop_approximation (bool save_surr_data, bool rebuild_flag=false) override |
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 () override |
push a previous approximation data state; reverse of pop_approximation | |
bool | push_available () override |
query for whether a trial increment is restorable within a surrogate | |
void | finalize_approximation () override |
finalize an approximation by applying all previous trial increments | |
void | combine_approximation () override |
combine the current approximation with previously stored data sets | |
void | combined_to_active (bool clear_combined=true) override |
promote the combined approximation into the active approximation | |
void | clear_inactive () override |
clear inactive approximations (finalization + combination completed) | |
std::vector< Approximation > & | approximations () override |
retrieve the set of Approximations from the subModel | |
const RealVectorArray & | approximation_coefficients (bool normalized=false) override |
retrieve the approximation coefficients from the subModel | |
void | approximation_coefficients (const RealVectorArray &approx_coeffs, bool normalized=false) override |
set the approximation coefficients within the subModel | |
const RealVector & | approximation_variances (const Variables &vars) override |
retrieve the approximation variances from the subModel | |
const Pecos::SurrogateData & | approximation_data (size_t fn_index) override |
retrieve the approximation data from the subModel | |
void | component_parallel_mode (short mode) override |
RecastModel only supports parallelism in subModel, so this virtual function redefinition is simply a sanity check. | |
size_t | mi_parallel_level_index () const override |
return subModel's MI parallel level index | |
short | local_eval_synchronization () override |
return subModel local synchronization setting | |
int | local_eval_concurrency () override |
return subModel local evaluation concurrency | |
bool | derived_scheduler_overload () const override |
flag which prevents overloading the dedicated scheduler processor with a multiprocessor evaluation (request forwarded to subModel) | |
IntIntPair | estimate_partition_bounds (int max_eval_concurrency) override |
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) override |
set up RecastModel for parallel operations (request forwarded to subModel) | |
void | derived_init_serial () override |
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) override |
set active parallel configuration within subModel | |
void | derived_free_communicators (ParLevLIter pl_iter, int max_eval_concurrency, bool recurse_flag=true) override |
deallocate communicator partitions for the RecastModel (request forwarded to subModel) | |
void | serve_run (ParLevLIter pl_iter, int max_eval_concurrency) override |
Service subModel job requests received from the dedicated scheduler. Completes when a termination message is received from stop_servers(). | |
void | stop_servers () override |
executed by the dedicated scheduler to terminate subModel server operations when RecastModel iteration is complete. | |
void | active_view (short view, bool recurse_flag=true) override |
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) override |
update the Model's inactive view based on higher level context and optionally recurse into subModel | |
const String & | interface_id () const override |
return the subModel interface identifier | |
bool | evaluation_cache (bool recurse_flag=true) const override |
if recurse_flag, return the subModel evaluation cache usage | |
bool | restart_file (bool recurse_flag=true) const override |
if recurse_flag, return the subModel restart file usage | |
int | derived_evaluation_id () const override |
return the current evaluation id for the RecastModel | |
void | set_evaluation_reference () override |
set the evaluation counter reference points for the RecastModel (request forwarded to subModel) | |
void | fine_grained_evaluation_counters () override |
request fine-grained evaluation reporting within subModel | |
void | print_evaluation_summary (std::ostream &s, bool minimal_header=false, bool relative_count=true) const override |
print the evaluation summary for the RecastModel (request forwarded to subModel) | |
void | warm_start_flag (const bool flag) override |
set the warm start flag, including the orderedModels | |
void | eval_tag_prefix (const String &eval_id_str) override |
set the hierarchical eval ID tag prefix More... | |
bool | db_lookup (const Variables &search_vars, const ActiveSet &search_set, Response &found_resp) override |
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 |
![]() | |
Model () | |
default constructor More... | |
Model (ProblemDescDB &problem_db) | |
standard constructor More... | |
Model (const Model &model)=delete | |
copy constructor | |
Model & | operator= (const Model &model)=delete |
assignment operator | |
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 | |
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 | 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 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 | active_truth_key () const |
return true if there is an active truth model indicated by truthModelKey | |
virtual size_t | active_surrogate_keys () const |
return the number of active surrogate models indicated by surrModelKeys | |
virtual bool | force_rebuild () |
determine whether a surrogate model rebuild should be forced based on changes in the inactive data | |
virtual short | surrogate_response_mode () const |
return response computation mode used in SurrogateModels for forming currentResponse | |
virtual DiscrepancyCorrection & | discrepancy_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 | 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 SharedApproxData & | shared_approximation () |
retrieve the shared approximation data within the ApproximationInterface of a DataFitSurrModel | |
virtual bool | multifidelity () const |
identify if 1D hierarchy can be defined across model forms | |
virtual bool | multilevel () const |
identify if 1D hierarchy can be defined across resolution levels | |
virtual bool | multilevel_multifidelity () const |
identify if 2D hierarchy can be defined across both model forms and resolution levels | |
virtual short | ensemble_precedence () const |
return precedence for ensemble definition: model forms, resolution levels, or both | |
virtual void | ensemble_precedence (short mlmf_prec, bool update_default=false) |
assign precedence for ensemble definition (model forms or resolution levels or both) as determined from algorithm context | |
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 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 | |
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... | |
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 (Variables &vars) |
employ the model recursion to transform from bottom level user-space variables to top level iterator-space variables | |
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 (Variables &vars) |
employ the model recursion to transform from top level iterator-space variables to bottom level user-space variables | |
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 | |
Pecos::MultivariateDistribution & | multivariate_distribution () |
return mvDist | |
const Pecos::MultivariateDistribution & | multivariate_distribution () const |
return mvDist | |
const Variables & | current_variables () const |
return the current variables (currentVariables) as const reference (preferred) | |
Variables & | current_variables () |
return the current variables (currentVariables) in mutable form (special cases) | |
const Constraints & | user_defined_constraints () const |
return the user-defined constraints (userDefinedConstraints) as const reference (preferred) | |
Constraints & | user_defined_constraints () |
return the user-defined constraints (userDefinedConstraints) in mutable form (special cases) | |
const Response & | current_response () const |
return the current response (currentResponse) | |
Response & | current_response () |
return the current response (currentResponse) | |
ProblemDescDB & | problem_description_db () const |
return the problem description database (probDescDB) | |
ParallelLibrary & | parallel_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 ScalingOptions & | scaling_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). | |
Static Public 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 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. | |
Public Attributes | |
std::shared_ptr< 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. | |
Static Public 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 | |
![]() | |
Model (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 ¶llel_lib=dummy_lib) | |
constructor initializing the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) More... | |
Model (ProblemDescDB &problem_db, ParallelLibrary ¶llel_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 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... | |
![]() | |
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() | |
ProblemDescDB & | probDescDB |
class member reference to the problem description database More... | |
ParallelLibrary & | parallelLib |
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 | |
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:
RecastModel | ( | std::shared_ptr< 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(), Variables::copy(), 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 | ( | std::shared_ptr< 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 | ( | std::shared_ptr< Model > | sub_model, |
const ShortShortPair & | recast_vars_view | ||
) |
alternate constructor; only changes the view (NEED A SUBCLASS FOR THIS?)
This alternate constructor only alters the active/inactive view
References Response::active_set_derivative_vector(), Variables::continuous_variable_ids(), SharedVariablesData::copy(), Variables::copy(), Model::currentResponse, Model::currentVariables, Variables::cv(), RecastModel::init_constraints(), RecastModel::init_distribution(), RecastModel::init_metadata(), RecastModel::initialize_data_from_submodel(), Response::num_functions(), Model::numDerivVars, Model::numFns, Variables::shared_data(), and RecastModel::subModel.
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 | ||
) |
initialize recast indices and map callbacks after alternate construction
This function is used for late initialization of the recasting functions. It is used in concert with the alternate constructor.
References Dakota::abort_handler(), RecastModel::nonlinearRespMapping, RecastModel::nonlinearVarsMapping, RecastModel::primaryRespMapIndices, RecastModel::primaryRespMapping, RecastModel::secondaryRespMapIndices, RecastModel::secondaryRespMapping, RecastModel::setMapping, RecastModel::variablesMapping, and RecastModel::varsMapIndices.
Referenced by DataTransformModel::DataTransformModel(), SubspaceModel::initialize_base_recast(), RandomFieldModel::initialize_recast(), ProbabilityTransformModel::ProbabilityTransformModel(), ScalingModel::ScalingModel(), and WeightingModel::WeightingModel().
|
overridevirtual |
portion of evaluate() specific to RecastModel (forward to subModel.evaluate())
The RecastModel is evaluated by an Iterator for a recast problem formulation. Therefore, the currentVariables, incoming active set, and output currentResponse all correspond to the recast inputs/outputs.
Reimplemented from Model.
Reimplemented in SubspaceModel.
References Response::active_set(), Model::currentResponse, Model::currentVariables, RecastModel::primaryRespMapping, RecastModel::recastModelEvalCntr, RecastModel::secondaryRespMapping, RecastModel::subModel, RecastModel::transform_response(), RecastModel::transform_set(), RecastModel::transform_variables(), and Response::update().
Referenced by ActiveSubspaceModel::derived_evaluate(), DataTransformModel::derived_evaluate(), RandomFieldModel::derived_evaluate(), and SubspaceModel::derived_evaluate().
|
inlineoverridevirtual |
set the hierarchical eval ID tag prefix
RecastModel just forwards any tags to its subModel
Reimplemented from Model.
References RecastModel::subModel.
void update_from_model | ( | Model & | model | ) |
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().