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

Derived model class within the surrogate model branch for managing a truth model alongside approximation models of varying fidelity. More...

Inheritance diagram for EnsembleSurrModel:
SurrogateModel Model

Public Member Functions

 EnsembleSurrModel (ProblemDescDB &problem_db)
 constructor
 
- Public Member Functions inherited from SurrogateModel
Pecos::ProbabilityTransformation & probability_transformation () override
 return probability transformation employed by the Model (forwarded along to ProbabilityTransformModel recasting)
 
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_U_to_X (const RealVector &u_c_vars, RealVector &x_c_vars) override
 transform u-space variable values to x-space
 
void trans_X_to_U (const RealVector &x_c_vars, RealVector &u_c_vars) override
 transform x-space variable values to u-space
 
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
 
std::shared_ptr< Modelsubordinate_model () override
 return truth_model()
 
void active_model_key (const Pecos::ActiveKey &key) override
 set the active model key within surrogate data, grid driver, and approximation classes that support the management of multiple approximation states within surrogate models
 
const Pecos::ActiveKey & active_model_key () const override
 return the active model key (used by surrogate data, grid driver, and approximation classes to support the management of multiple approximation states within surrogate models)
 
- Public Member Functions inherited from Model
 Model ()
 default constructor More...
 
 Model (ProblemDescDB &problem_db)
 standard constructor More...
 
 Model (const Model &model)=delete
 copy constructor
 
Modeloperator= (const Model &model)=delete
 assignment operator
 
virtual std::shared_ptr< Iteratorsubordinate_iterator ()
 return the sub-iterator in nested and surrogate models More...
 
virtual std::shared_ptr< Interfacederived_interface ()
 return the interface employed by the derived model class, if present: SimulationModel::userDefinedInterface, DataFitSurrModel::approxInterface, or NestedModel::optionalInterface More...
 
virtual void derived_interface (std::shared_ptr< Interface >)
 
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 const RealVector & error_estimates ()
 retrieve error estimates corresponding to the Model's response (could be surrogate error for SurrogateModels, statistical MSE for NestedModels, or adjoint error estimates for SimulationModels). Errors returned correspond to most recent evaluate(). TO DO: why not yet bound to SurrogateModel::approximation_variances()?
 
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 short local_eval_synchronization ()
 return derived model synchronization setting More...
 
virtual int local_eval_concurrency ()
 return derived model asynchronous evaluation concurrency More...
 
virtual bool derived_scheduler_overload () const
 Return a flag indicating the combination of multiprocessor evaluations and a dedicated scheduler processor for iterator-model scheduling. Used in synchronous evaluate functions to prevent the error of trying to run a multiprocessor job on the dedicated scheduler.
 
virtual void create_2d_plots ()
 create 2D graphics plots for automatic logging of vars/response data
 
virtual void active_view (short view, bool recurse_flag=true)
 update the Model's active view based on a higher level context
 
virtual const String & interface_id () const
 return the interface identifier More...
 
virtual void eval_tag_prefix (const String &eval_id_str)
 set the hierarchical eval ID tag prefix More...
 
virtual bool db_lookup (const Variables &search_vars, const ActiveSet &search_set, Response &found_resp)
 search the eval database (during derivative estimation); derived may need to reimplement due to problem transformations (RecastModel); return true if found in DB
 
virtual void declare_sources ()
 Declare a model's sources to the evaluationsDB.
 
virtual bool build_approximation (const Variables &vars, const IntResponsePair &response_pr)
 build a new SurrogateModel approximation using/enforcing anchor response at vars; rebuild if needed
 
virtual void rebuild_approximation ()
 incremental rebuild of an existing SurrogateModel approximation
 
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 (bool rebuild_flag)
 replace the approximation data within an existing surrogate based on data updates propagated elsewhere
 
virtual void update_approximation (const Variables &vars, const IntResponsePair &response_pr, bool rebuild_flag)
 replace the anchor point data within an existing surrogate
 
virtual void update_approximation (const VariablesArray &vars_array, const IntResponseMap &resp_map, bool rebuild_flag)
 replace the data points within an existing surrogate
 
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 (bool rebuild_flag)
 append to the existing approximation data within a surrogate based on data updates propagated elsewhere
 
virtual void append_approximation (const Variables &vars, const IntResponsePair &response_pr, bool rebuild_flag)
 append a single point to an existing surrogate's data
 
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 VariablesArray &vars_array, 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 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()
 
virtual void push_approximation ()
 push a previous approximation data state; reverse of pop_approximation
 
virtual bool push_available ()
 query for whether a trial increment is restorable within a surrogate
 
virtual void finalize_approximation ()
 finalize an approximation by applying all previous trial increments
 
virtual void combine_approximation ()
 combine the current approximation with previously stored data sets
 
virtual void combined_to_active (bool clear_combined=true)
 promote the combined approximation into the active approximation
 
virtual void clear_inactive ()
 clear inactive approximations (finalization + combination completed)
 
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 SharedApproxDatashared_approximation ()
 retrieve the shared approximation data within the ApproximationInterface of a DataFitSurrModel
 
virtual std::vector< Approximation > & approximations ()
 retrieve the set of Approximations within the ApproximationInterface of a DataFitSurrModel
 
virtual const Pecos::SurrogateData & approximation_data (size_t fn_index)
 retrieve a SurrogateData instance from a particular Approximation instance within the ApproximationInterface of a DataFitSurrModel
 
virtual const RealVectorArray & approximation_coefficients (bool normalized=false)
 retrieve the approximation coefficients from each Approximation within a DataFitSurrModel
 
virtual void approximation_coefficients (const RealVectorArray &approx_coeffs, bool normalized=false)
 set the approximation coefficients for each Approximation within a DataFitSurrModel
 
virtual const RealVector & approximation_variances (const Variables &vars)
 retrieve the prediction variances from each Approximation within a DataFitSurrModel
 
virtual void discrepancy_emulation_mode (short mode)
 set discrepancy emulation mode used in SurrogateModels for approximating response differences
 
virtual size_t solution_levels () const
 number of discrete levels within solution control (SimulationModel) More...
 
virtual void solution_level_cost_index (size_t index)
 activate a particular level within the solution level control (SimulationModel) More...
 
virtual size_t solution_level_cost_index () const
 return currently active level within the solution level control (SimulationModel)
 
virtual RealVector solution_level_costs () const
 return ordered cost estimates across solution levels (SimulationModel)
 
virtual Real solution_level_cost () const
 return currently active cost estimate from solution level control (SimulationModel)
 
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 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)
 
Responsecurrent_response ()
 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).
 
virtual 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.
 
virtual ActiveSet default_active_set ()
 

Protected Member Functions

bool initialize_mapping (ParLevLIter pl_iter) override
 
bool finalize_mapping () override
 
void derived_evaluate (const ActiveSet &set) override
 
void derived_evaluate_nowait (const ActiveSet &set) override
 
size_t qoi () const override
 return number of unique response functions (managing any aggregations)
 
void init_model (Model &model) override
 initialize model with data that could change once per set of evaluations (e.g., an outer iterator execution), including active variable labels, inactive variable values/bounds/labels, and linear/nonlinear constraint coeffs/bounds
 
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 check_submodel_compatibility (const Model &sub_model) override
 verify compatibility between SurrogateModel attributes and attributes of the submodel (DataFitSurrModel::actualModel or EnsembleSurrModel::truthModel)
 
const IntResponseMap & derived_synchronize () override
 
const IntResponseMap & derived_synchronize_nowait () override
 
void stop_servers () override
 Executed by the scheduler to terminate all server operations for a particular model when iteration on the model is complete.
 
bool multifidelity () const override
 identify if 1D hierarchy can be defined across model forms
 
bool multilevel () const override
 identify if 1D hierarchy can be defined across resolution levels
 
bool multilevel_multifidelity () const override
 identify if 2D hierarchy can be defined across both model forms and resolution levels
 
short ensemble_precedence () const override
 return precedence for ensemble definition: model forms, resolution levels, or both
 
void ensemble_precedence (short mlmf_prec, bool update_default=true) override
 assign precedence for ensemble definition (model forms or resolution levels or both) as determined from algorithm context
 
void surrogate_response_mode (short mode) override
 set responseMode and pass any bypass request on to the high fidelity model for any lower-level surrogate recursions
 
void surrogate_function_indices (const SizetSet &surr_fn_indices) override
 (re)set the surrogate index set in SurrogateModel::surrogateFnIndices
 
void set_evaluation_reference () override
 set the evaluation counter reference points for the EnsembleSurrModel (request forwarded to truth and surrogate models)
 
void create_tabular_datastream () override
 create a tabular output stream for automatic logging of vars/response data
 
void derived_auto_graphics (const Variables &vars, const Response &resp) override
 Update tabular/graphics data with latest variables/response data.
 
size_t insert_response_start (size_t position) override
 compute start index for inserting response data into aggregated response
 
void insert_metadata (const RealArray &md, size_t position, Response &agg_response) override
 insert a single response into an aggregated response in the specified position
 
DiscrepancyCorrectiondiscrepancy_correction () override
 return the DiscrepancyCorrection object used by SurrogateModels
 
void correction_type (short corr_type) override
 set the correction type from the DiscrepancyCorrection object used by SurrogateModels
 
unsigned short correction_mode () const override
 return correctionMode
 
void correction_mode (unsigned short corr_mode) override
 set correctionMode
 
bool force_rebuild () override
 determine whether a surrogate model rebuild should be forced based on changes in the inactive data
 
void build_approximation () override
 use the high fidelity model to compute the truth values needed for correction of the low fidelity model results
 
std::shared_ptr< Modelsurrogate_model (size_t i=_NPOS) override
 return approxModels[i]
 
std::shared_ptr< const Modelsurrogate_model (size_t i=_NPOS) const override
 return approxModels[i]
 
std::shared_ptr< Modeltruth_model () override
 return truthModel
 
std::shared_ptr< const Modeltruth_model () const override
 return truthModel
 
unsigned short active_surrogate_model_form (size_t i) const override
 return the model form corresponding to surrModelKeys[i]
 
unsigned short active_truth_model_form () const override
 return the model form corresponding to truthModelKey
 
std::shared_ptr< Modelactive_surrogate_model (size_t i=_NPOS) override
 return the model corresponding to surrModelKeys[i] (spanning either model forms or resolutions)
 
std::shared_ptr< const Modelactive_surrogate_model (size_t i=_NPOS) const override
 return the model corresponding to surrModelKeys[i] (spanning either model forms or resolutions)
 
std::shared_ptr< Modelactive_truth_model () override
 return the model corresponding to truthModelKey
 
std::shared_ptr< const Modelactive_truth_model () const override
 return the model corresponding to truthModelKey
 
bool active_truth_key () const override
 return true if there is an active truth model indicated by truthModelKey
 
size_t active_surrogate_keys () const override
 return the number of active surrogate models indicated by surrModelKeys
 
void active_model_key (const Pecos::ActiveKey &key) override
 define the active model key and extract {truth,surr}ModelKeys More...
 
void clear_model_keys () override
 remove keys for any approximations underlying {truth,approx}Models
 
void derived_subordinate_models (ModelList &ml, bool recurse_flag) override
 return {approxModels,truthModel} and, optionally, their sub-model recursions
 
void resize_from_subordinate_model (size_t depth=SZ_MAX) override
 resize currentResponse if needed when one of the subordinate models has been resized
 
void update_from_subordinate_model (size_t depth=SZ_MAX) override
 update currentVariables using non-active data from the passed model (one of {approxModels,truthModel})
 
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 LF/HF models
 
void component_parallel_mode (short mode) override
 update component parallel mode for supporting parallelism in the low ad high fidelity models
 
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 parallel operations for the array of subordinate models {approxModels,truthModel}
 
void derived_init_serial () override
 set up serial operations for the array of subordinate models {approxModels,truthModel}
 
void derived_set_communicators (ParLevLIter pl_iter, int max_eval_concurrency, bool recurse_flag=true) override
 set active parallel configuration within the current low and high fidelity models identified by {low,high}FidelityKey
 
void derived_free_communicators (ParLevLIter pl_iter, int max_eval_concurrency, bool recurse_flag=true) override
 deallocate communicator partitions for the EnsembleSurrModel (request forwarded to the the array of subordinate models {approxModels,truthModel})
 
void serve_run (ParLevLIter pl_iter, int max_eval_concurrency) override
 Service the low and high fidelity model job requests received from the scheduler; completes when termination message received from stop_servers()
 
void inactive_view (short view, bool recurse_flag=true) override
 update the Model's inactive view based on higher level (nested) context and optionally recurse into
 
bool evaluation_cache (bool recurse_flag=true) const override
 if recurse_flag, return true if evaluation cache usage in subordinate models {approxModels,truthModel}
 
bool restart_file (bool recurse_flag=true) const override
 if recurse_flag, return true if restart file usage in subordinate models {approxModels,truthModel}
 
void fine_grained_evaluation_counters () override
 request fine-grained evaluation reporting within the low and high fidelity models
 
void print_evaluation_summary (std::ostream &s, bool minimal_header=false, bool relative_count=true) const override
 print the evaluation summary for the EnsembleSurrModel (request forwarded to the low and high fidelity models)
 
void warm_start_flag (const bool flag) override
 set the warm start flag, including for the subordinate models {approxModels,truthModel}
 
void derived_synchronize_sequential (IntResponseMapArray &model_resp_maps_rekey, bool block)
 
void derived_synchronize_combine (IntResponseMapArray &model_resp_maps, IntResponseMap &combined_resp_map)
 
void derived_synchronize_combine_nowait (IntResponseMapArray &model_resp_maps, IntResponseMap &combined_resp_map)
 
std::shared_ptr< Modelmodel_from_index (unsigned short m_index)
 return the model from {approxModels,truthModel} corresponding to m_index
 
std::shared_ptr< const Modelmodel_from_index (unsigned short m_index) const
 return the model from {approxModels,truthModel} corresponding to m_index
 
std::shared_ptr< Modelapprox_model_from_index (unsigned short m_index)
 return approxModels[m_index]
 
std::shared_ptr< const Modelapprox_model_from_index (unsigned short m_index) const
 return approxModels[m_index]
 
Pecos::ActiveKey & key_from_index (size_t k_index)
 return the key from {truthModel,surrModel}Key{,s} corresponding to k_index
 
bool find_model_in_keys (unsigned short m_index)
 identify whether a model form is currently included within active keys
 
void asv_split (const ShortArray &orig_asv, ShortArray &approx_asv, ShortArray &actual_asv, bool build_flag=false)
 distributes the incoming orig_asv among actual_asv and approx_asv
 
void asv_split (const ShortArray &orig_asv, Short2DArray &indiv_asv)
 distributes the incoming orig_asv among actual_asv and approx_asv
 
void assign_default_keys (short mode)
 initialize truth and surrogate model keys to default values
 
void resize_maps ()
 size id_maps and cached_resp_maps arrays according to responseMode
 
void resize_response (bool use_virtual_counts=true)
 resize currentResponse based on responseMode
 
void init_model_mapped_variables (Model &model)
 initialize model variables that corresponsd to nested mappings that could change once per set of evaluations (e.g., an outer iterator execution)
 
void derived_synchronize_competing ()
 called from derived_synchronize() for case of distinct models/interfaces with competing LF/HF job queues
 
const String & solution_control_label (const Model &model)
 helper to select among Variables::all_discrete_{int,string,real}_ variable_labels() for exporting a solution control variable label
 
void add_tabular_solution_level_value (Model &model)
 helper to select among Model::solution_level_{int,string,real}_value() for exporting a scalar solution level value
 
- Protected Member Functions inherited from SurrogateModel
 SurrogateModel (ProblemDescDB &problem_db)
 constructor
 
 SurrogateModel (ProblemDescDB &problem_db, ParallelLibrary &parallel_lib, const ShortShortPair &surr_view, const SharedVariablesData &svd, bool share_svd, const SharedResponseData &srd, bool share_srd, const ActiveSet &surr_set, short corr_type, short output_level)
 alternate constructor
 
short surrogate_response_mode () const override
 return response computation mode used in SurrogateModels for forming currentResponse
 
short correction_type () const override
 return the correction type from the DiscrepancyCorrection object used by SurrogateModels
 
short correction_order () const override
 return the correction order from the DiscrepancyCorrection object used by SurrogateModels
 
int derived_evaluation_id () const override
 return the current evaluation id for this Model More...
 
size_t mi_parallel_level_index () const override
 return miPLIndex
 
virtual void update_model (std::shared_ptr< Model > model)
 update model with data that could change per function evaluation (active variable values/bounds)
 
virtual void update_from_model (std::shared_ptr< Model > model)
 update current variables/labels/bounds/targets with data from model More...
 
bool check_active_variables (const Model &sub_model)
 check sub_model for consistency in active variable counts
 
bool check_inactive_variables (const Model &sub_model)
 check sub_model for consistency in inactive variable counts
 
bool check_response_qoi (const Model &sub_model)
 check sub_model for consistency in response QoI counts
 
void init_model_constraints (Model &model)
 initialize model with linear/nonlinear constraint data that could change once per set of evaluations (e.g., an outer iterator execution) More...
 
void init_model_labels (Model &model)
 initialize model with active/inactive variable label data that could change once per set of evaluations (e.g., an outer iterator execution)
 
void init_model_inactive_variables (Model &model)
 initialize model with inactive variable values/bounds data that could change once per set of evaluations (e.g., an outer iterator execution)
 
void init_model_inactive_labels (Model &model)
 initialize model with inactive variable labels that could change once per set of evaluations (e.g., an outer iterator execution)
 
void update_model_active_constraints (Model &model)
 update incoming (sub-)model with active bounds from userDefinedConstraints
 
void update_model_distributions (Model &model)
 update model with random variable distribution data
 
void update_variables_from_model (const Model &model)
 update current variables/bounds with data from model
 
void update_distributions_from_model (const Model &model)
 update current random variable distributions with data from model
 
void update_response_from_model (const Model &model)
 update response/constraints with data from model
 
void check_key (int key1, int key2) const
 check for consistency in response map keys
 
bool check_rebuild (const RealVector &ref_icv, const IntVector &ref_idiv, const StringMultiArray &ref_idsv, const RealVector &ref_idrv, const RealVector &ref_c_l_bnds, const RealVector &ref_c_u_bnds, const IntVector &ref_di_l_bnds, const IntVector &ref_di_u_bnds, const RealVector &ref_dr_l_bnds, const RealVector &ref_dr_u_bnds)
 evaluate whether a rebuild of the approximation should be forced based on changes in the inactive data More...
 
void asv_combine (const ShortArray &actual_asv, const ShortArray &approx_asv, ShortArray &combined_asv)
 reconstitutes a combined_asv from actual_asv and approx_asv
 
void response_combine (const Response &actual_response, const Response &approx_response, Response &combined_response)
 overlays actual_response and approx_response to update combined_response
 
void aggregate_response (const Response &resp1, const Response &resp2, Response &agg_resp)
 aggregate 2 sets of response data to create a new response with 2x size
 
void insert_response (const Response &response, size_t position, Response &agg_response)
 insert a single response into an aggregated response in the specified position
 
- Protected Member Functions inherited from Model
 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 &parallel_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 &parallel_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
 

Protected Attributes

std::shared_ptr< ModeltruthModel
 the single truth reference model
 
std::vector< std::shared_ptr< Model > > approxModels
 set of model approximations
 
Pecos::ActiveKey truthModelKey
 key defining active model form / resolution level for the truth model
 
std::vector< Pecos::ActiveKey > surrModelKeys
 keys defining model forms / resolution levels for the active set of approximations
 
bool sameModelInstance
 flag indicating that the {low,high}FidelityKey correspond to the same model instance, requiring modifications to updating and evaluation scheduling processes
 
bool sameInterfaceInstance
 flag indicating that the models identified by {low,high}FidelityKey employ the same interface instance, requiring modifications to evaluation scheduling processes
 
size_t solnCntlAVIndex
 index of solution control variable within all variables
 
short ensemblePrecedence
 precedence tie breaker for type of 1D,2D model hierarchy when model forms and resolution levels are present
 
int modeKeyBufferSize
 size of MPI buffer containing responseMode and an aggregated activeKey
 
IntIntMapArray modelIdMaps
 map from evaluation ids of truthModel/approxModels to EnsembleSurrModel ids
 
IntResponseMapArray cachedRespMaps
 maps of responses retrieved in derived_synchronize_nowait() that could not be returned since corresponding response portions were still pending, blocking response aggregation
 
SizetArray primaryACVarMapIndices
 "primary" all continuous variable mapping indices flowed down from higher level iteration
 
SizetArray primaryADIVarMapIndices
 "primary" all discrete int variable mapping indices flowed down from higher level iteration
 
SizetArray primaryADSVarMapIndices
 "primary" all discrete string variable mapping indices flowed down from higher level iteration
 
SizetArray primaryADRVarMapIndices
 "primary" all discrete real variable mapping indices flowed down from higher level iteration
 
- Protected Attributes inherited from SurrogateModel
SizetSet surrogateFnIndices
 for mixed response sets, this array specifies the response function subset that is approximated
 
short responseMode
 an enumeration that controls the response calculation mode in {DataFit,Ensemble}SurrModel approximate response computations
 
Pecos::ActiveKey activeKey
 array of indices that identify the currently active model key
 
short corrType
 type of correction: additive, multiplicative, or combined
 
short corrOrder
 order of correction: 0 (value), 1 (gradient), or 2 (Hessian)
 
IntVariablesMap rawVarsMap
 map of raw continuous variables used by apply_correction(). Model::varsList cannot be used for this purpose since it does not contain lower level variables sets from finite differencing.
 
int surrModelEvalCntr
 counter for calls to derived_evaluate()/derived_evaluate_nowait(); used to key response maps from SurrogateModels
 
IntResponseMap surrResponseMap
 map of surrogate responses returned by derived_synchronize() and derived_synchronize_nowait()
 
size_t approxBuilds
 number of calls to build_approximation() More...
 
size_t miPLIndex
 the index of the active metaiterator-iterator parallelism level (corresponding to ParallelConfiguration::miPLIters) used at runtime
 
- 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
 

Private Member Functions

void assign_truth_key ()
 synchronize the HF model's solution level control with truthModelKey
 
void assign_surrogate_key (size_t i)
 synchronize the LF model's solution level control with surrModelKey
 
void assign_key (size_t i)
 assign the resolution level for the i-th model key
 
void extract_truth_key (const Pecos::ActiveKey &active_key, Pecos::ActiveKey &truth_key)
 define truth and surrogate keys from incoming active key. In case of singleton, use responseMode to disambiguate.
 
void extract_subordinate_keys (const Pecos::ActiveKey &active_key, std::vector< Pecos::ActiveKey > &surr_keys, Pecos::ActiveKey &truth_key)
 define truth and surrogate keys from incoming active key. In case of singleton, use responseMode to disambiguate.
 
bool matching_active_interface_ids ()
 check for matching interface ids among active truth/surrogate models (varies based on active keys)
 
bool matching_all_interface_ids ()
 check for matching interface ids across full set of models (invariant)
 
void check_model_interface_instance ()
 update sameInterfaceInstance based on interface ids for models identified by current {low,high}FidelityKey
 
int server_buffer_size (short mode, const Pecos::ActiveKey &key)
 compute modeKeyBufferSize
 
void initialize_correction ()
 initialize deltaCorr[activeKey]
 
void stop_model (short model_id)
 stop the servers for the model instance identified by the passed id
 
void inflate (const StringArray &labels, size_t num_replicates, StringArray &new_labels) const
 replicate a label array when resizing a response
 
bool test_asv (const ShortArray &asv)
 check whether incoming ASV has any active content
 
bool test_id_maps (const IntIntMapArray &id_maps)
 
size_t count_id_maps (const IntIntMapArray &id_maps)
 
void compute_apply_delta (IntResponseMap &lf_resp_map)
 helper function used in the AUTO_CORRECTED_SURROGATE responseMode for computing a correction and applying it to lf_resp_map
 
void single_apply (const Variables &vars, Response &resp, const Pecos::ActiveKey &paired_key) override
 helper function for applying a single response correction corresponding to deltaCorr[paired_key]
 
void recursive_apply (const Variables &vars, Response &resp) override
 helper function for applying a correction across a sequence of model forms or discretization levels
 

Private Attributes

std::map< Pecos::ActiveKey, DiscrepancyCorrectiondeltaCorr
 manages construction and application of correction functions that are applied to a surrogate model in order to reproduce high fidelity data
 
unsigned short correctionMode
 one of {DEFAULT,SINGLE,FULL_SOLUTION_LEVEL,FULL_MODEL_FORM}_CORRECTION
 
std::map< Pecos::ActiveKey, ResponsetruthResponseRef
 map of reference truth (high fidelity) responses computed in build_approximation() and used for calculating corrections
 
std::map< Pecos::ActiveKey, RealVector > referenceICVars
 stores a reference copy of the inactive continuous variables when the approximation is built using a Distinct view; used to detect when a rebuild is required.
 
std::map< Pecos::ActiveKey, IntVector > referenceIDIVars
 stores a reference copy of the inactive discrete int variables when the approximation is built using a Distinct view; used to detect when a rebuild is required.
 
std::map< Pecos::ActiveKey, StringMultiArray > referenceIDSVars
 stores a reference copy of the inactive discrete string variables when the approximation is built using a Distinct view; used to detect when a rebuild is required.
 
std::map< Pecos::ActiveKey, RealVector > referenceIDRVars
 stores a reference copy of the inactive discrete real variables when the approximation is built using a Distinct view; used to detect when a rebuild is required.
 
std::map< Pecos::ActiveKey, RealVector > referenceCLBnds
 stores a reference copy of active continuous lower bounds when the approximation is built; used to detect when a rebuild is required.
 
std::map< Pecos::ActiveKey, RealVector > referenceCUBnds
 stores a reference copy of active continuous upper bounds when the approximation is built; used to detect when a rebuild is required.
 
std::map< Pecos::ActiveKey, IntVector > referenceDILBnds
 stores a reference copy of active discrete int lower bounds when the approximation is built; used to detect when a rebuild is required.
 
std::map< Pecos::ActiveKey, IntVector > referenceDIUBnds
 stores a reference copy of active discrete int upper bounds when the approximation is built; used to detect when a rebuild is required.
 
std::map< Pecos::ActiveKey, RealVector > referenceDRLBnds
 stores a reference copy of active discrete real lower bounds when the approximation is built; used to detect when a rebuild is required.
 
std::map< Pecos::ActiveKey, RealVector > referenceDRUBnds
 stores a reference copy of active discrete real upper bounds when the approximation is built; used to detect when a rebuild is required.
 

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

Detailed Description

Derived model class within the surrogate model branch for managing a truth model alongside approximation models of varying fidelity.

The EnsembleSurrModel class manages subordinate models of varying fidelity. The class contains a truth model and an array of approximation models, where each model form may also contain a set of solution levels (space/time discretization, convergence tolerances, etc.).

Member Function Documentation

◆ initialize_mapping()

bool initialize_mapping ( ParLevLIter  pl_iter)
overrideprotectedvirtual

Inactive variables must be propagated when an EnsembleSurrModel is employed by a sub-iterator (e.g., OUU with MLMC or MLPCE). In current use cases, this can occur once per sub-iterator execution within Model::initialize_mapping().

Reimplemented from Model.

References EnsembleSurrModel::approxModels, EnsembleSurrModel::init_model(), Model::initialize_mapping(), and EnsembleSurrModel::truthModel.

◆ finalize_mapping()

bool finalize_mapping ( )
overrideprotectedvirtual

Inactive variables must be propagated when an EnsembleSurrModel is employed by a sub-iterator (e.g., OUU with MLMC or MLPCE). In current use cases, this can occur once per sub-iterator execution within Model::initialize_mapping().

Reimplemented from Model.

References EnsembleSurrModel::approxModels, Model::finalize_mapping(), and EnsembleSurrModel::truthModel.

◆ derived_evaluate()

void derived_evaluate ( const ActiveSet set)
overrideprotectedvirtual

◆ derived_evaluate_nowait()

void derived_evaluate_nowait ( const ActiveSet set)
overrideprotectedvirtual

◆ derived_synchronize()

const IntResponseMap & derived_synchronize ( )
overrideprotectedvirtual

Blocking retrieval of asynchronous evaluations from LF model, HF model, or both (mixed case). For the LF model portion, apply correction (if active) to each response in the array. derived_synchronize() is designed for the general case where derived_evaluate_nowait() may be inconsistent in its use of low fidelity evaluations, high fidelity evaluations, or both.

Reimplemented from Model.

References EnsembleSurrModel::derived_synchronize_competing(), EnsembleSurrModel::modelIdMaps, EnsembleSurrModel::sameInterfaceInstance, EnsembleSurrModel::sameModelInstance, and SurrogateModel::surrResponseMap.

◆ derived_synchronize_nowait()

const IntResponseMap & derived_synchronize_nowait ( )
overrideprotectedvirtual

Nonblocking retrieval of asynchronous evaluations from LF model, HF model, or both (mixed case). For the LF model portion, apply correction (if active) to each response in the map. derived_synchronize_nowait() is designed for the general case where derived_evaluate_nowait() may be inconsistent in its use of actual evals, approx evals, or both.

Reimplemented from Model.

References EnsembleSurrModel::modelIdMaps, and SurrogateModel::surrResponseMap.

Referenced by EnsembleSurrModel::derived_synchronize_competing().

◆ active_model_key()

void active_model_key ( const Pecos::ActiveKey &  key)
overrideprotectedvirtual

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