$extrastylesheet
Dakota
Version 6.2
|
The database containing information parsed from the DAKOTA input file. More...
Public Member Functions | |
ProblemDescDB () | |
default constructor | |
ProblemDescDB (ParallelLibrary ¶llel_lib) | |
standard constructor | |
ProblemDescDB (const ProblemDescDB &db) | |
copy constructor | |
~ProblemDescDB () | |
destructor | |
ProblemDescDB | operator= (const ProblemDescDB &db) |
assignment operator | |
void | parse_inputs (const ProgramOptions &prog_opts, DbCallbackFunctionPtr callback=NULL, void *callback_data=NULL) |
Parses the input file or input string if present and executes callbacks. Does not perform any validation. | |
void | check_and_broadcast (const ProgramOptions &prog_opts) |
performs check_input, broadcast, and post_process, but for now, allowing separate invocation through the public API as well | |
void | check_input () |
verifies that there is at least one of each of the required keywords in the dakota input file | |
void | broadcast () |
invokes send_db_buffer() and receive_db_buffer() to broadcast DB data across the processor allocation. Used by manage_inputs(). | |
void | post_process () |
post-processes the (minimal) input specification to assign default variables/responses specification arrays. Used by manage_inputs(). | |
void | lock () |
Locks the database in order to prevent data access when the list nodes may not be set properly. Unlocked by a set nodes operation. | |
void | unlock () |
Explicitly unlocks the database. Use with care. | |
void | set_db_list_nodes (const String &method_tag) |
set dataMethodIter based on a method identifier string to activate a particular method specification in dataMethodList and use pointers from this method specification to set all other list iterators. | |
void | set_db_list_nodes (size_t method_index) |
set dataMethodIter based on an index within dataMethodList to activate a particular method specification and use pointers from this method specification to set all other list iterators. | |
void | resolve_top_method (bool set_model_nodes=true) |
For a (default) environment lacking a top method pointer, this function is used to determine which of several potential method specifications corresponds to the top method and then sets the list nodes accordingly. | |
void | set_db_method_node (const String &method_tag) |
set dataMethodIter based on a method identifier string to activate a particular method specification (only). | |
void | set_db_method_node (size_t method_index) |
set dataMethodIter based on an index within dataMethodList to activate a particular method specification (only). | |
size_t | get_db_method_node () |
return the index of the active node in dataMethodList | |
void | set_db_model_nodes (const String &model_tag) |
set the model list iterators (dataModelIter, dataVariablesIter, dataInterfaceIter, and dataResponsesIter) based on the model identifier string | |
void | set_db_model_nodes (size_t model_index) |
set the model list iterators (dataModelIter, dataVariablesIter, dataInterfaceIter, and dataResponsesIter) based on an index within dataModelList | |
size_t | get_db_model_node () |
return the index of the active node in dataModelList | |
void | set_db_variables_node (const String &variables_tag) |
set dataVariablesIter based on the variables identifier string | |
void | set_db_interface_node (const String &interface_tag) |
set dataInterfaceIter based on the interface identifier string | |
void | set_db_responses_node (const String &responses_tag) |
set dataResponsesIter based on the responses identifier string | |
ParallelLibrary & | parallel_library () const |
return the parallelLib reference | |
IteratorList & | iterator_list () |
return a list of all Iterator objects that have been instantiated | |
ModelList & | model_list () |
return a list of all Model objects that have been instantiated | |
VariablesList & | variables_list () |
return a list of all Variables objects that have been instantiated | |
InterfaceList & | interface_list () |
return a list of all Interface objects that have been instantiated | |
ResponseList & | response_list () |
return a list of all Response objects that have been instantiated | |
const RealMatrixArray & | get_rma (const String &entry_name) const |
get a RealMatrixArray out of the database based on an identifier string | |
const RealVector & | get_rv (const String &entry_name) const |
get a RealVector out of the database based on an identifier string | |
const IntVector & | get_iv (const String &entry_name) const |
get an IntVector out of the database based on an identifier string | |
const BitArray & | get_ba (const String &entry_name) const |
get a BitArray out of the database based on an identifier string | |
const SizetArray & | get_sza (const String &entry_name) const |
get an SizetArray out of the database based on an identifier string | |
const UShortArray & | get_usa (const String &entry_name) const |
get an UShortArray out of the database based on an identifier string | |
const RealSymMatrix & | get_rsm (const String &entry_name) const |
get a RealSymMatrix out of the database based on an identifier string | |
const RealVectorArray & | get_rva (const String &entry_name) const |
get a RealVectorArray out of the database based on an identifier string | |
const IntVectorArray & | get_iva (const String &entry_name) const |
get an IntVectorArray out of the database based on an identifier string | |
const IntSet & | get_is (const String &entry_name) const |
get an IntSet out of the database based on an identifier string | |
const IntSetArray & | get_isa (const String &entry_name) const |
get an IntSetArray out of the database based on an identifier string | |
const StringSetArray & | get_ssa (const String &entry_name) const |
get an StringSetArray out of the database based on an identifier string | |
const RealSetArray & | get_rsa (const String &entry_name) const |
get a RealSetArray out of the database based on an identifier string | |
const IntRealMapArray & | get_irma (const String &entry_name) const |
get an IntRealMapArray out of the database based on an identifier string | |
const StringRealMapArray & | get_srma (const String &entry_name) const |
get an StringRealMapArray out of the database based on an identifier string | |
const RealRealMapArray & | get_rrma (const String &entry_name) const |
get a RealRealMapArray out of the database based on an identifier string | |
const RealRealPairRealMapArray & | get_rrrma (const String &entry_name) const |
get a RealRealPairRealMapArray out of the database based on an identifier string | |
const IntIntPairRealMapArray & | get_iirma (const String &entry_name) const |
get an IntIntPairRealMapArray out of the database based on an identifier string | |
const StringArray & | get_sa (const String &entry_name) const |
get a StringArray out of the database based on an identifier string | |
const String2DArray & | get_s2a (const String &entry_name) const |
get a String2DArray out of the database based on an identifier string | |
const String & | get_string (const String &entry_name) const |
get a String out of the database based on an identifier string | |
const Real & | get_real (const String &entry_name) const |
get a Real out of the database based on an identifier string | |
int | get_int (const String &entry_name) const |
get an int out of the database based on an identifier string | |
short | get_short (const String &entry_name) const |
get a short out of the database based on an identifier string | |
unsigned short | get_ushort (const String &entry_name) const |
get an unsigned short out of the database based on an identifier string | |
size_t | get_sizet (const String &entry_name) const |
get a size_t out of the database based on an identifier string | |
bool | get_bool (const String &entry_name) const |
get a bool out of the database based on an identifier string | |
void ** | get_voidss (const String &entry_name) const |
for getting a void**, e.g., &dlLib | |
void | insert_node (const DataEnvironment &data_env) |
set the DataEnvironment object | |
void | insert_node (const DataMethod &data_method) |
add a DataMethod object to the dataMethodList | |
void | insert_node (const DataModel &data_model) |
add a DataModel object to the dataModelList | |
void | insert_node (DataVariables &data_variables) |
add a DataVariables object to the dataVariablesList | |
void | insert_node (const DataInterface &data_interface) |
add a DataInterface object to the dataInterfaceList | |
void | insert_node (const DataResponses &data_responses) |
add a DataResponses object to the dataResponsesList | |
void | set (const String &entry_name, const RealVector &rv) |
set a RealVector within the database based on an identifier string | |
void | set (const String &entry_name, const IntVector &iv) |
set an IntVector within the database based on an identifier string | |
void | set (const String &entry_name, const BitArray &ba) |
set a BitArray within the database based on an identifier string | |
void | set (const String &entry_name, const RealSymMatrix &rsm) |
set a RealMatrix within the database based on an identifier string | |
void | set (const String &entry_name, const RealVectorArray &rva) |
set a RealVectorArray within the database based on an identifier string | |
void | set (const String &entry_name, const IntVectorArray &iva) |
set an IntVectorArray within the database based on an identifier string | |
void | set (const String &entry_name, const IntSetArray &isa) |
set an IntSetArray within the database based on an identifier string | |
void | set (const String &entry_name, const RealSetArray &rsa) |
set a RealSetArray within the database based on an identifier string | |
void | set (const String &entry_name, const IntRealMapArray &irma) |
set an IntRealMapArray within the database based on an identifier string | |
void | set (const String &entry_name, const StringRealMapArray &srma) |
set a StringRealMapArray within the database based on an identifier string | |
void | set (const String &entry_name, const RealRealMapArray &rrma) |
set a RealRealMapArray within the database based on an identifier string | |
void | set (const String &entry_name, const RealRealPairRealMapArray &iirma) |
set a RealRealPairRealMapArray in the db based on an identifier string | |
void | set (const String &entry_name, const IntIntPairRealMapArray &iirma) |
set an IntIntPairRealMapArray in the db based on an identifier string | |
void | set (const String &entry_name, const StringArray &sa) |
set a StringArray within the database based on an identifier string | |
int | min_procs_per_ea () |
compute minimum evaluation partition size based on lower level overrides | |
int | max_procs_per_ea () |
compute maximum evaluation partition size based on lower level overrides and concurrency levels | |
int | min_procs_per_ie () |
compute minimum iterator partition size based on lower level overrides | |
int | max_procs_per_ie (int max_eval_concurrency) |
compute maximum iterator partition size based on lower level overrides and concurrency levels | |
bool | is_null () const |
function to check dbRep (does this envelope contain a letter) | |
Static Public Member Functions | |
static int | min_procs_per_level (int min_procs_per_server, int pps_spec, int num_serv_spec) |
compute minimum partition size for a parallel level based on lower level overrides | |
static int | max_procs_per_level (int max_procs_per_server, int pps_spec, int num_serv_spec, short sched_spec, int asynch_local_conc, bool peer_dynamic_avail, int max_concurrency) |
compute maximum partition size for a parallel level based on lower level overrides | |
Protected Member Functions | |
ProblemDescDB (BaseConstructor, ParallelLibrary ¶llel_lib) | |
constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) | |
virtual void | derived_parse_inputs (const ProgramOptions &prog_opts) |
derived class specifics within parse_inputs() | |
virtual void | derived_broadcast () |
derived class specifics within broadcast() | |
virtual void | derived_post_process () |
derived class specifics within post_process() | |
Protected Attributes | |
DataEnvironment | environmentSpec |
the environment specification (only one allowed) resulting from a call to environment_kwhandler() or insert_node() | |
std::list< DataMethod > | dataMethodList |
list of method specifications, one for each call to method_kwhandler() or insert_node() | |
std::list< DataModel > | dataModelList |
list of model specifications, one for each call to model_kwhandler() or insert_node() | |
std::list< DataVariables > | dataVariablesList |
list of variables specifications, one for each call to variables_kwhandler() or insert_node() | |
std::list< DataInterface > | dataInterfaceList |
list of interface specifications, one for each call to interface_kwhandler() or insert_node() | |
std::list< DataResponses > | dataResponsesList |
list of responses specifications, one for each call to responses_kwhandler() or insert_node() | |
size_t | environmentCntr |
counter for environment specifications used in check_input | |
Private Member Functions | |
const Iterator & | get_iterator () |
retrieve an existing Iterator, if it exists in iteratorList, or instantiate a new one | |
const Iterator & | get_iterator (Model &model) |
retrieve an existing Iterator, if it exists in iteratorList, or instantiate a new one | |
const Iterator & | get_iterator (const String &method_name, Model &model) |
retrieve an existing Iterator, if it exists in iteratorByNameList, or instantiate a new one | |
const Model & | get_model () |
retrieve an existing Model, if it exists, or instantiate a new one | |
const Variables & | get_variables () |
retrieve an existing Variables, if it exists, or instantiate a new one | |
const Interface & | get_interface () |
retrieve an existing Interface, if it exists, or instantiate a new one | |
const Response & | get_response (short type, const Variables &vars) |
retrieve an existing Response, if it exists, or instantiate a new one | |
ProblemDescDB * | get_db (ParallelLibrary ¶llel_lib) |
Used by the envelope constructor to instantiate the correct letter class. | |
void | send_db_buffer () |
MPI send of a large buffer containing environmentSpec and all objects in dataMethodList, dataModelList, dataVariablesList, dataInterfaceList, and dataResponsesList. Used by manage_inputs(). | |
void | receive_db_buffer () |
MPI receive of a large buffer containing environmentSpec and all objects in dataMethodList, dataModelList, dataVariablesList, dataInterfaceList, and dataResponsesList. Used by manage_inputs(). | |
bool | model_has_interface (DataModelRep *model_rep) const |
helper function for determining whether an interface specification should be active, based on model type | |
void | echo_input_file (const ProgramOptions &prog_opts) |
echo the (potentially) specified input file or string to stdout | |
Private Attributes | |
ParallelLibrary & | parallelLib |
reference to the parallel_lib object passed from main | |
std::list< DataMethod >::iterator | dataMethodIter |
iterator identifying the active list node in dataMethodList | |
std::list< DataModel >::iterator | dataModelIter |
iterator identifying the active list node in dataModelList | |
std::list< DataVariables > ::iterator | dataVariablesIter |
iterator identifying the active list node in dataVariablesList | |
std::list< DataInterface > ::iterator | dataInterfaceIter |
iterator identifying the active list node in dataInterfaceList | |
std::list< DataResponses > ::iterator | dataResponsesIter |
iterator identifying the active list node in dataResponsesList | |
IteratorList | iteratorList |
list of iterator objects, one for each method specification | |
IteratorList | iteratorByNameList |
list of iterator objects, one for each lightweight instantiation by name | |
ModelList | modelList |
list of model objects, one for each model specification | |
VariablesList | variablesList |
list of variables objects, one for each variables specification | |
InterfaceList | interfaceList |
list of interface objects, one for each interface specification | |
ResponseList | responseList |
list of response objects, one for each responses specification | |
bool | methodDBLocked |
prevents use of get_<type> retrieval and set_<type> update functions prior to setting the list node for the active method specification | |
bool | modelDBLocked |
prevents use of get_<type> retrieval and set_<type> update functions prior to setting the list node for the active model specification | |
bool | variablesDBLocked |
prevents use of get_<type> retrieval and set_<type> update functions prior to setting the list node for the active variables specification | |
bool | interfaceDBLocked |
prevents use of get_<type> retrieval and set_<type> update functions prior to setting the list node for the active interface specification | |
bool | responsesDBLocked |
prevents use of get_<type> retrieval and set_<type> update functions prior to setting the list node for the active responses specification | |
ProblemDescDB * | dbRep |
pointer to the letter (initialized only for the envelope) | |
int | referenceCount |
number of objects sharing dbRep | |
Friends | |
class | Model |
Model requires access to get_variables() and get_response() | |
class | SingleModel |
SingleModel requires access to get_interface() | |
class | HierarchSurrModel |
HierarchSurrModel requires access to get_model() | |
class | DataFitSurrModel |
DataFitSurrModel requires access to get_iterator() and get_model() | |
class | NestedModel |
NestedModel requires access to get_interface(), get_response(), get_iterator(), and get_model() | |
class | Environment |
Environment requires access to get_iterator() | |
class | IteratorScheduler |
Environment requires access to get_iterator() | |
class | Iterator |
Iterator requires access to get_model() | |
class | MetaIterator |
Iterator requires access to get_model() | |
class | SeqHybridMetaIterator |
SeqHybridMetaIterator requires access to get_model() | |
class | CollabHybridMetaIterator |
CollabHybridMetaIterator requires access to get_model() | |
class | ConcurrentMetaIterator |
ConcurrentMetaIterator requires access to get_model() | |
class | SurrBasedLocalMinimizer |
SurrBasedLocalMinimizer requires access to get_iterator() | |
class | SurrBasedGlobalMinimizer |
SurrBasedGlobalMinimizer requires access to get_iterator() |
The database containing information parsed from the DAKOTA input file.
The ProblemDescDB class is a database for DAKOTA input file data that is populated by a parser defined in a derived class. When the parser reads a complete keyword, it populates a data class object (DataEnvironment, DataMethod, DataVariables, DataInterface, or DataResponses) and, for all cases except environment, appends the object to a linked list (dataMethodList, dataVariablesList, dataInterfaceList, or dataResponsesList). No environment linked list is used since only one environment specification is allowed.
ProblemDescDB | ( | ) |
default constructor
The default constructor: dbRep is NULL in this case. This makes it necessary to check for NULL in the copy constructor, assignment operator, and destructor.
ProblemDescDB | ( | ParallelLibrary & | parallel_lib | ) |
standard constructor
This is the envelope constructor which uses problem_db to build a fully populated db object. It only needs to extract enough data to properly execute get_db(problem_db), since the constructor overloaded with BaseConstructor builds the actual base class data inherited by the derived classes.
References Dakota::abort_handler(), ProblemDescDB::dbRep, and ProblemDescDB::get_db().
ProblemDescDB | ( | const ProblemDescDB & | db | ) |
copy constructor
Copy constructor manages sharing of dbRep and incrementing of referenceCount.
References ProblemDescDB::dbRep, and ProblemDescDB::referenceCount.
~ProblemDescDB | ( | ) |
destructor
Destructor decrements referenceCount and only deletes dbRep when referenceCount reaches zero.
References Dakota::Dak_pddb, ProblemDescDB::dbRep, and ProblemDescDB::referenceCount.
ProblemDescDB | ( | BaseConstructor | , |
ParallelLibrary & | parallel_lib | ||
) | [protected] |
constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139)
This constructor is the one which must build the base class data for all derived classes. get_db() instantiates a derived class letter and the derived constructor selects this base class constructor in its initialization list (to avoid the recursion of the base class constructor calling get_db() again). Since the letter IS the representation, its representation pointer is set to NULL (an uninitialized pointer causes problems in ~ProblemDescDB).
ProblemDescDB operator= | ( | const ProblemDescDB & | db | ) |
assignment operator
Assignment operator decrements referenceCount for old dbRep, assigns new dbRep, and increments referenceCount for new dbRep.
References ProblemDescDB::dbRep, and ProblemDescDB::referenceCount.
void parse_inputs | ( | const ProgramOptions & | prog_opts, |
DbCallbackFunctionPtr | callback = NULL , |
||
void * | callback_data = NULL |
||
) |
Parses the input file or input string if present and executes callbacks. Does not perform any validation.
DB setup phase 1: parse the input file and execute callback functions if present. Rank 0 only.
DB setup phase 2: optionally insert additional data via late sets. Rank 0 only.
References Dakota::abort_handler(), ProblemDescDB::dbRep, ProblemDescDB::derived_parse_inputs(), ProgramOptions::echo_input(), ProblemDescDB::echo_input_file(), ProgramOptions::input_file(), ProgramOptions::input_string(), ProblemDescDB::parallelLib, ProblemDescDB::parse_inputs(), and ParallelLibrary::world_rank().
Referenced by Environment::parse(), and ProblemDescDB::parse_inputs().
void check_and_broadcast | ( | const ProgramOptions & | prog_opts | ) |
performs check_input, broadcast, and post_process, but for now, allowing separate invocation through the public API as well
DB setup phase 3: perform basic checks on keywords counts in current DB state, then sync to all processors.
References ProblemDescDB::broadcast(), ProblemDescDB::check_and_broadcast(), ProblemDescDB::check_input(), ProblemDescDB::dbRep, ProblemDescDB::parallelLib, ProblemDescDB::post_process(), and ParallelLibrary::world_rank().
Referenced by ProblemDescDB::check_and_broadcast(), LibraryEnvironment::done_modifying_db(), and Environment::parse().
void check_input | ( | ) |
verifies that there is at least one of each of the required keywords in the dakota input file
NOTE: when using library mode in a parallel application, check_input() should either be called only on worldRank 0, or it should follow a matched send_db_buffer()/receive_db_buffer() pair.
References Dakota::abort_handler(), ProblemDescDB::check_input(), ParallelLibrary::command_line_post_run_input(), ParallelLibrary::command_line_post_run_output(), ParallelLibrary::command_line_pre_run_input(), ParallelLibrary::command_line_pre_run_output(), ParallelLibrary::command_line_run_input(), ParallelLibrary::command_line_run_output(), ParallelLibrary::command_line_user_modes(), ProblemDescDB::dataInterfaceList, ProblemDescDB::dataMethodList, ProblemDescDB::dataModelList, ProblemDescDB::dataResponsesList, ProblemDescDB::dataVariablesList, ProblemDescDB::dbRep, ProblemDescDB::environmentCntr, ProblemDescDB::parallelLib, and Dakota::strbegins().
Referenced by ProblemDescDB::check_and_broadcast(), and ProblemDescDB::check_input().
void post_process | ( | ) |
post-processes the (minimal) input specification to assign default variables/responses specification arrays. Used by manage_inputs().
When using library mode in a parallel application, post_process() should be called on all processors following broadcast() of a minimal problem specification.
References ProblemDescDB::dbRep, and ProblemDescDB::derived_post_process().
Referenced by ProblemDescDB::check_and_broadcast().
ProblemDescDB * get_db | ( | ParallelLibrary & | parallel_lib | ) | [private] |
Used by the envelope constructor to instantiate the correct letter class.
Initializes dbRep to the appropriate derived type. The standard derived class constructors are invoked.
References Dakota::Dak_pddb.
Referenced by ProblemDescDB::ProblemDescDB().