![]() |
Dakota
Version 6.23
Explore and Predict with Confidence
|
Base class for the interface class hierarchy. More...
Public Member Functions | |
| Interface (const Interface &interface_in) | |
| copy constructor More... | |
| virtual | ~Interface () |
| destructor | |
| Interface | operator= (const Interface &interface_in) |
| assignment operator | |
| virtual void | map (const Variables &vars, const ActiveSet &set, Response &response, bool asynch_flag=false) |
| the function evaluator: provides a "mapping" from the variables to the responses. | |
| virtual const IntResponseMap & | synchronize () |
| recovers data from a series of asynchronous evaluations (blocking) | |
| virtual const IntResponseMap & | synchronize_nowait () |
| recovers data from a series of asynchronous evaluations (nonblocking) | |
| virtual void | serve_evaluations () |
| evaluation server function for multiprocessor executions | |
| virtual void | stop_evaluation_servers () |
| send messages from iterator rank 0 to terminate evaluation servers | |
| virtual void | init_communicators (const IntArray &message_lengths, int max_eval_concurrency) |
| allocate communicator partitions for concurrent evaluations within an iterator and concurrent multiprocessor analyses within an evaluation. | |
| virtual void | set_communicators (const IntArray &message_lengths, int max_eval_concurrency) |
| set the local parallel partition data for an interface (the partitions are already allocated in ParallelLibrary). | |
| virtual void | init_serial () |
| reset certain defaults for serial interface objects. | |
| virtual int | asynch_local_evaluation_concurrency () const |
| return the user-specified concurrency for asynch local evaluations | |
| virtual void | serialize_threshold (size_t thresh) |
| set the threshold concurrency for serializing local evaluations | |
| virtual short | interface_synchronization () const |
| return the user-specified interface synchronization | |
| virtual int | minimum_points (bool constraint_flag) const |
| returns the minimum number of points required to build a particular ApproximationInterface (used by DataFitSurrModels). | |
| virtual int | recommended_points (bool constraint_flag) const |
| returns the recommended number of points required to build a particular ApproximationInterface (used by DataFitSurrModels). | |
| virtual void | active_model_key (const Pecos::ActiveKey &key) |
| activate an approximation state based on its key | |
| virtual void | clear_model_keys () |
| reset initial state by removing all model keys for an approximation | |
| virtual void | approximation_function_indices (const SizetSet &approx_fn_indices) |
| set the (currently active) approximation function index set | |
| virtual void | update_approximation (const Variables &vars, const IntResponsePair &response_pr) |
| updates the anchor point for an approximation | |
| virtual void | update_approximation (const RealMatrix &samples, const IntResponseMap &resp_map) |
| updates the current data points for an approximation | |
| virtual void | update_approximation (const VariablesArray &vars_array, const IntResponseMap &resp_map) |
| updates the current data points for an approximation | |
| virtual void | append_approximation (const Variables &vars, const IntResponsePair &response_pr) |
| appends a single point to an existing approximation | |
| virtual void | append_approximation (const RealMatrix &samples, const IntResponseMap &resp_map) |
| appends multiple points to an existing approximation | |
| virtual void | append_approximation (const VariablesArray &vars_array, const IntResponseMap &resp_map) |
| appends multiple points to an existing approximation | |
| virtual void | append_approximation (const IntVariablesMap &vars_map, const IntResponseMap &resp_map) |
| appends multiple points to an existing approximation | |
| virtual void | replace_approximation (const IntResponsePair &response_pr) |
| replace the response for a single point within an existing approximation | |
| virtual void | replace_approximation (const IntResponseMap &resp_map) |
| replace responses for multiple points within an existing approximation | |
| virtual void | track_evaluation_ids (bool track) |
| assigns trackEvalIds to activate tracking of evaluation ids within surrogate data, enabling id-based lookups for data replacement | |
| virtual void | build_approximation (const RealVector &c_l_bnds, const RealVector &c_u_bnds, const IntVector &di_l_bnds, const IntVector &di_u_bnds, const RealVector &dr_l_bnds, const RealVector &dr_u_bnds) |
| builds the approximation | |
| virtual void | export_approximation () |
| export the approximation to disk | |
| virtual void | rebuild_approximation (const BitArray &rebuild_fns) |
| rebuilds the approximation after a data update | |
| virtual void | pop_approximation (bool save_data) |
| removes data from last append from the approximation | |
| virtual void | push_approximation () |
| retrieves approximation data from a previous state (negates pop) | |
| virtual bool | push_available () |
| queries the approximation for the ability to retrieve a previous increment | |
| virtual void | finalize_approximation () |
| finalizes the approximation by applying all 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 to the currently active one | |
| virtual void | clear_inactive () |
| clear inactive approximation data | |
| virtual bool | advancement_available () |
| query for available advancements in approximation resolution controls | |
| virtual bool | formulation_updated () const |
| query for change in approximation formulation | |
| virtual void | formulation_updated (bool update) |
| assign an updated status for approximation formulation to force rebuild | |
| virtual Real2DArray | cv_diagnostics (const StringArray &metric_types, unsigned num_folds) |
| approximation cross-validation quality metrics per response function | |
| virtual RealArray | challenge_diagnostics (const String &metric_type, const RealMatrix &challenge_pts) |
| approximation challenge data metrics per response function | |
| virtual void | clear_current_active_data () |
| clears current data from an approximation interface | |
| virtual void | clear_active_data () |
| clears all data from an approximation interface | |
| virtual SharedApproxData & | shared_approximation () |
| retrieve the SharedApproxData within an ApproximationInterface | |
| virtual std::vector< Approximation > & | approximations () |
| retrieve the Approximations within an ApproximationInterface | |
| virtual const Pecos::SurrogateData & | approximation_data (size_t fn_index) |
| retrieve the approximation data from a particular Approximation within an ApproximationInterface | |
| virtual const RealVectorArray & | approximation_coefficients (bool normalized=false) |
| retrieve the approximation coefficients from each Approximation within an ApproximationInterface | |
| virtual void | approximation_coefficients (const RealVectorArray &approx_coeffs, bool normalized=false) |
| set the approximation coefficients within each Approximation within an ApproximationInterface | |
| virtual const RealVector & | approximation_variances (const Variables &vars) |
| retrieve the approximation variances from each Approximation within an ApproximationInterface | |
| virtual const StringArray & | analysis_drivers () const |
| retrieve the analysis drivers specification for application interfaces | |
| virtual const String2DArray & | analysis_components () const |
| retrieve the analysis components, if available | |
| virtual void | discrepancy_emulation_mode (short mode) |
| set discrepancy emulation mode used for approximating response differences | |
| virtual bool | evaluation_cache () const |
| return flag indicating usage of the global evaluation cache | |
| virtual bool | restart_file () const |
| return flag indicating usage of the restart file | |
| virtual void | file_cleanup () const |
| clean up any interface parameter/response files when aborting | |
| IntResponseMap & | response_map () |
| return rawResponseMap | |
| void | cache_unmatched_response (int raw_id) |
| migrate an unmatched response record from rawResponseMap to cachedResponseMap | |
| void | cache_unmatched_responses () |
| migrate all remaining response records from rawResponseMap to cachedResponseMap | |
| unsigned short | interface_type () const |
| returns the interface type | |
| const String & | interface_id () const |
| returns the interface identifier | |
| int | evaluation_id () const |
| returns the value of the (total) evaluation id counter for the interface | |
| void | fine_grained_evaluation_counters (size_t num_fns) |
| set fineGrainEvalCounters to true and initialize counters if needed | |
| void | init_evaluation_counters (size_t num_fns) |
| initialize fine grained evaluation counters, sizing if needed | |
| void | set_evaluation_reference () |
| set evaluation count reference points for the interface | |
| void | print_evaluation_summary (std::ostream &s, bool minimal_header, bool relative_count) const |
| print an evaluation summary for the interface | |
| bool | multi_proc_eval () const |
| returns a flag signaling the use of multiprocessor evaluation partitions | |
| bool | iterator_eval_dedicated_scheduler () const |
| returns a flag signaling the use of a dedicated scheduler processor at the iterator-evaluation scheduling level | |
| void | eval_tag_prefix (const String &eval_id_str, bool append_iface_id=true) |
| set the evaluation tag prefix (does not recurse) More... | |
Static Public Member Functions | |
| static std::shared_ptr< Interface > | get_interface (ProblemDescDB &problem_db, ParallelLibrary ¶llel_lib) |
| retrieve an existing Interface, if it exists, or instantiate a new one More... | |
| static std::list< std::shared_ptr< Interface > > & | interface_cache (ProblemDescDB &problem_db) |
| return the interface cache for the study More... | |
| static void | remove_cached_interface (const ProblemDescDB &problem_db) |
| remove a cached Interface for the study | |
Protected Member Functions | |
| Interface (const ProblemDescDB &problem_db) | |
| constructor initializes the base class configuration More... | |
| Interface (size_t num_fns, short output_level) | |
| constructor initializes the base class configuration for on the fly instantiations without a DB) | |
| void | init_algebraic_mappings (const Variables &vars, const Response &response) |
| Define algebraicACVIndices, algebraicACVIds, and algebraicFnIndices. | |
| void | asv_mapping (const ActiveSet &total_set, ActiveSet &algebraic_set, ActiveSet &core_set) |
| define the evaluation requirements for algebraic_mappings() (algebraic_set) and the core Application/Approximation mapping (core_set) from the total Interface evaluation requirements (total_set) | |
| void | asv_mapping (const ActiveSet &algebraic_set, ActiveSet &total_set) |
| map an algebraic ASV back to original total ordering for asynch recovery | |
| void | algebraic_mappings (const Variables &vars, const ActiveSet &algebraic_set, Response &algebraic_response) |
| evaluate the algebraic_response using the AMPL solver library and the data extracted from the algebraic_mappings file | |
| void | response_mapping (const Response &algebraic_response, const Response &core_response, Response &total_response) |
| combine the response from algebraic_mappings() with the response from derived_map() to create the total response More... | |
| virtual String | final_eval_id_tag (int fn_eval_id) |
| form and return the final evaluation ID tag, appending iface ID if needed | |
Protected Attributes | |
| unsigned short | interfaceType |
| the interface type: enum for system, fork, direct, grid, or approximation | |
| String | interfaceId |
| the interface specification identifier string from the DAKOTA input file | |
| bool | algebraicMappings |
| flag for the presence of algebraic_mappings that define the subset of an Interface's parameter to response mapping that is explicit and algebraic. | |
| bool | coreMappings |
| flag for the presence of non-algebraic mappings that define the core of an Interface's parameter to response mapping (using analysis_drivers for ApplicationInterface or functionSurfaces for ApproximationInterface). | |
| short | outputLevel |
| output verbosity level: {SILENT,QUIET,NORMAL,VERBOSE,DEBUG}_OUTPUT | |
| int | currEvalId |
| identifier for the current evaluation, which may differ from the evaluation counters in the case of evaluation scheduling; used on iterator scheduler as well as server processors. Currently, this is set prior to all invocations of derived_map() for all processors. | |
| bool | fineGrainEvalCounters |
| controls use of fn val/grad/hess counters for detailed evaluation report | |
| int | evalIdCntr |
| total interface evaluation counter | |
| int | newEvalIdCntr |
| new (non-duplicate) interface evaluation counter | |
| int | evalIdRefPt |
| iteration reference point for evalIdCntr | |
| int | newEvalIdRefPt |
| iteration reference point for newEvalIdCntr | |
| IntArray | fnValCounter |
| number of value evaluations by resp fn | |
| IntArray | fnGradCounter |
| number of gradient evaluations by resp fn | |
| IntArray | fnHessCounter |
| number of Hessian evaluations by resp fn | |
| IntArray | newFnValCounter |
| number of new value evaluations by resp fn | |
| IntArray | newFnGradCounter |
| number of new gradient evaluations by resp fn | |
| IntArray | newFnHessCounter |
| number of new Hessian evaluations by resp fn | |
| IntArray | fnValRefPt |
| iteration reference point for fnValCounter | |
| IntArray | fnGradRefPt |
| iteration reference point for fnGradCounter | |
| IntArray | fnHessRefPt |
| iteration reference point for fnHessCounter | |
| IntArray | newFnValRefPt |
| iteration reference point for newFnValCounter | |
| IntArray | newFnGradRefPt |
| iteration reference point for newFnGradCounter | |
| IntArray | newFnHessRefPt |
| iteration reference point for newFnHessCounter | |
| IntResponseMap | rawResponseMap |
| Set of responses returned by either a blocking or nonblocking schedule. More... | |
| IntResponseMap | cachedResponseMap |
| Set of available asynchronous responses completed within a blocking or nonblocking scheduler that cannot be processed in a higher level context and need to be stored for later. | |
| StringArray | fnLabels |
| response function descriptors (used in print_evaluation_summary() and derived direct interface classes); initialized in map() functions due to potential updates after construction | |
| bool | multiProcEvalFlag |
| flag for multiprocessor evaluation partitions (evalComm) | |
| bool | ieDedSchedFlag |
| flag for dedicated scheduler partitioning at the iterator level | |
| String | evalTagPrefix |
| set of period-delimited evaluation ID tags to use in evaluation tagging | |
| bool | appendIfaceId |
| whether to append the interface ID to the prefix during map (default true) | |
| String2DArray | analysisComponents |
| Analysis components for interface types that support them. | |
Private Member Functions | |
| int | algebraic_function_type (String) |
| Used by algebraic mappings to determine the correct AMPL function evaluation call to make. | |
Static Private Member Functions | |
| static void | clean_up_all_interfaces () |
| Clean up files for all interfaces (used by abort handler) | |
| static String | user_auto_id () |
| return the next available interface ID for no-ID user methods More... | |
| static String | no_spec_id () |
| return the next available interface ID for on-the-fly methods More... | |
Private Attributes | |
| StringArray | algebraicVarTags |
| set of variable tags from AMPL stub.col | |
| SizetArray | algebraicACVIndices |
| set of indices mapping AMPL algebraic variables to DAKOTA all continuous variables | |
| SizetArray | algebraicACVIds |
| set of ids mapping AMPL algebraic variables to DAKOTA all continuous variables | |
| StringArray | algebraicFnTags |
| set of function tags from AMPL stub.row | |
| IntArray | algebraicFnTypes |
| function type: > 0 = objective, < 0 = constraint |value|-1 is the objective (constraint) index when making AMPL objval (conival) calls | |
| SizetArray | algebraicFnIndices |
| set of indices mapping AMPL algebraic objective functions to DAKOTA response functions | |
| RealArray | algebraicConstraintWeights |
| set of weights for computing Hessian matrices for algebraic constraints; | |
| int | numAlgebraicResponses |
| number of algebraic responses (objectives+constraints) | |
| ASL * | asl |
| pointer to an AMPL solver library (ASL) object | |
Static Private Attributes | |
| static std::map< const ProblemDescDB *, std::list< std::shared_ptr< Interface > > > | interfaceCache {} |
| Cache of Interfaces created for each study. | |
| static size_t | noSpecIdNum = 0 |
| the last used interface ID number for on-the-fly instantiations (increment before each use) | |
Friends | |
| class | CleanUpAllInterfacesAttorney |
Base class for the interface class hierarchy.
The Interface class hierarchy provides the part of a Model that is responsible for mapping a set of Variables into a set of Responses. The mapping is performed using either a simulation-based application interface or a surrogate-based approximation interface.
|
protected |
constructor initializes the base class configuration
Base class constructor to initialize class data for all inherited interfaces. InterfaceUtils::get_interface(...) instantiates derived classs
References Dakota::abort_handler(), Interface::algebraic_function_type(), Interface::algebraicConstraintWeights, Interface::algebraicFnTags, Interface::algebraicFnTypes, Interface::algebraicMappings, Interface::algebraicVarTags, Interface::asl, Interface::interfaceId, Interface::outputLevel, Dakota::strends(), and Interface::user_auto_id().
|
static |
retrieve an existing Interface, if it exists, or instantiate a new one
References Interface::interfaceCache.
Referenced by NestedModel::NestedModel().
|
static |
return the interface cache for the study
| problem_db |
References Interface::interfaceCache.
| void eval_tag_prefix | ( | const String & | eval_id_str, |
| bool | append_iface_id = true |
||
| ) |
set the evaluation tag prefix (does not recurse)
default implementation just sets the list of eval ID tags; derived classes containing additional models or interfaces should override (currently no use cases)
References Interface::appendIfaceId, and Interface::evalTagPrefix.
|
protected |
combine the response from algebraic_mappings() with the response from derived_map() to create the total response
This function will get invoked even when only algebraic mappings are active (no core mappings from derived_map), since the AMPL algebraic_response may be ordered differently from the total_response. In this case, the core_response object is unused.
References Dakota::abort_handler(), Response::active_set_derivative_vector(), Response::active_set_request_vector(), Interface::algebraicACVIds, Interface::algebraicFnIndices, Interface::coreMappings, Dakota::find_index(), Response::function_gradient(), Response::function_gradient_view(), Response::function_gradients(), Response::function_hessian(), Response::function_hessian_view(), Response::function_hessians(), Response::function_value(), Response::function_values(), Response::function_values_view(), Interface::outputLevel, Response::reset(), and Response::reset_inactive().
Referenced by ApplicationInterface::map(), ApproximationInterface::map(), ApplicationInterface::synchronize(), and ApplicationInterface::synchronize_nowait().
|
staticprivate |
return the next available interface ID for no-ID user methods
Rationale: The parser allows multiple user-specified interfaces with empty (unspecified) ID. However, only a single Interface with empty ID can be constructed (if it's the only one present, or the "last one parsed"). Therefore decided to prefer NO_ID over NO_ID_<num> for consistency with interface NO_ID convention. Additionally, NO_ID is preferred over NO_INTERFACE_ID (contrast with Iterator and Model) to preserve backward compatibility
Referenced by Interface::Interface().
|
staticprivate |
return the next available interface ID for on-the-fly methods
Rationale: For now NOSPEC_ID_ is chosen due to historical id="NO_SPECIFICATION" used for internally-constructed Iterators. Longer-term, consider auto-generating an ID that includes the context from which the method is constructed, e.g., the parent method or model's ID, together with its name.
References Interface::noSpecIdNum.
|
protected |
Set of responses returned by either a blocking or nonblocking schedule.
The map is a full/partial set of completions which are identified through their evalIdCntr key. The raw set is postprocessed (i.e., finite diff grads merged) in Model::synchronize() where it becomes responseMap.
Referenced by ApplicationInterface::asynchronous_local_evaluations(), Interface::cache_unmatched_response(), Interface::cache_unmatched_responses(), ApplicationInterface::process_asynch_local(), ApplicationInterface::process_synch_local(), ApplicationInterface::receive_evaluation(), Interface::response_map(), ApplicationInterface::synchronize(), ApproximationInterface::synchronize(), ApplicationInterface::synchronize_nowait(), ApproximationInterface::synchronize_nowait(), ApplicationInterface::test_local_backfill(), and ApplicationInterface::test_receives_backfill().