$extrastylesheet
Dakota  Version 6.2
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends
Variables Class Reference

Base class for the variables class hierarchy. More...

Inheritance diagram for Variables:
MixedVariables RelaxedVariables

List of all members.

Public Member Functions

 Variables ()
 default constructor
 Variables (const ProblemDescDB &problem_db)
 standard constructor (explicit disallows its use for implicit type conversion)
 Variables (const SharedVariablesData &svd)
 alternate constructor for instantiations on the fly (explicit disallows its use for implicit type conversion)
 Variables (const Variables &vars)
 copy constructor
virtual ~Variables ()
 destructor
Variables operator= (const Variables &vars)
 assignment operator
virtual void read (std::istream &s)
 read a variables object from an std::istream
virtual void write (std::ostream &s) const
 write a variables object to an std::ostream
virtual void write_aprepro (std::ostream &s) const
 write a variables object to an std::ostream in aprepro format
virtual void read_annotated (std::istream &s)
 read a variables object in annotated format from an istream
virtual void write_annotated (std::ostream &s) const
 write a variables object in annotated format to an std::ostream
virtual void read_tabular (std::istream &s, bool active_only=false)
 read a variables object in tabular format from an istream
virtual void write_tabular (std::ostream &s, bool active_only=false) const
 write a variables object in tabular format to an std::ostream
void write_tabular_labels (std::ostream &s, bool active_only=false) const
 write the labels in input spec order to a std::ostream
virtual void read (MPIUnpackBuffer &s)
 read a variables object from a packed MPI buffer
virtual void write (MPIPackBuffer &s) const
 write a variables object to a packed MPI buffer
size_t tv () const
 total number of vars
size_t cv () const
 number of active continuous vars
size_t cv_start () const
 start index of active continuous vars
size_t div () const
 number of active discrete int vars
size_t div_start () const
 start index of active discrete int vars
size_t dsv () const
 number of active discrete string vars
size_t dsv_start () const
 start index of active discrete string vars
size_t drv () const
 number of active discrete real vars
size_t drv_start () const
 start index of active discrete real vars
size_t icv () const
 number of inactive continuous vars
size_t icv_start () const
 start index of inactive continuous vars
size_t idiv () const
 number of inactive discrete int vars
size_t idiv_start () const
 start index of inactive discrete int vars
size_t idsv () const
 number of inactive discrete string vars
size_t idsv_start () const
 start index of inactive discrete string vars
size_t idrv () const
 number of inactive discrete real vars
size_t idrv_start () const
 start index of inactive discrete real vars
size_t acv () const
 total number of continuous vars
size_t adiv () const
 total number of discrete integer vars
size_t adsv () const
 total number of discrete string vars
size_t adrv () const
 total number of discrete real vars
const SharedVariablesDatashared_data () const
 return sharedVarsData
SharedVariablesDatashared_data ()
 return sharedVarsData
void shape ()
 shape a Variables object based on sharedVarsData
void reshape ()
 reshape an existing Variables object based on updated sharedVarsData
Real continuous_variable (size_t index) const
 return an active continuous variable
const RealVector & continuous_variables () const
 return the active continuous variables (Note: returns a view by const reference, but initializing a RealVector from this reference invokes the Teuchos matrix copy constructor to create a Teuchos::Copy instance; to obtain a mutable view, use continuous_variables_view())
void continuous_variable (Real c_var, size_t index)
 set an active continuous variable
void continuous_variables (const RealVector &c_vars)
 set the active continuous variables
int discrete_int_variable (size_t index) const
 return an active discrete integer variable
const IntVector & discrete_int_variables () const
 return the active discrete integer variables (Note: returns a view by const reference, but initializing an IntVector from this reference invokes the Teuchos matrix copy constructor to create a Teuchos::Copy instance; to obtain a mutable view, use discrete_int_variables_view())
void discrete_int_variable (int di_var, size_t index)
 set an active discrete integer variable
void discrete_int_variables (const IntVector &di_vars)
 set the active discrete integer variables
const String & discrete_string_variable (size_t index) const
 return an active discrete string variable
StringMultiArrayConstView discrete_string_variables () const
 return the active discrete string variables (Note: returns a view by const reference, but initializing a StringArray from this reference invokes the Teuchos matrix copy constructor to create a Teuchos::Copy instance; to obtain a mutable view, use discrete_string_variables_view())
void discrete_string_variable (const String &ds_var, size_t index)
 set an active discrete string variable
void discrete_string_variables (StringMultiArrayConstView ds_vars)
 set the active discrete string variables
Real discrete_real_variable (size_t index) const
 return an active discrete real variable
const RealVector & discrete_real_variables () const
 return the active discrete real variables (Note: returns a view by const reference, but initializing a RealVector from this reference invokes the Teuchos matrix copy constructor to create a Teuchos::Copy instance; to obtain a mutable view, use discrete_real_variables_view())
void discrete_real_variable (Real dr_var, size_t index)
 set an active discrete real variable
void discrete_real_variables (const RealVector &dr_vars)
 set the active discrete real variables
void active_variables (const Variables &vars)
 copy the active cv/div/dsv/drv variables from vars
RealVector & continuous_variables_view ()
 return a mutable view of the active continuous variables
IntVector & discrete_int_variables_view ()
 return a mutable view of the active discrete integer variables
StringMultiArrayView discrete_string_variables_view ()
 return a mutable view of the active discrete string variables
RealVector & discrete_real_variables_view ()
 return a mutable view of the active discrete real variables
StringMultiArrayConstView continuous_variable_labels () const
 return the active continuous variable labels
void continuous_variable_labels (StringMultiArrayConstView cv_labels)
 set the active continuous variable labels
void continuous_variable_label (const String &cv_label, size_t index)
 set an active continuous variable label
StringMultiArrayConstView discrete_int_variable_labels () const
 return the active discrete integer variable labels
void discrete_int_variable_labels (StringMultiArrayConstView div_labels)
 set the active discrete integer variable labels
void discrete_int_variable_label (const String &div_label, size_t index)
 set an active discrete integer variable label
StringMultiArrayConstView discrete_string_variable_labels () const
 return the active discrete string variable labels
void discrete_string_variable_labels (StringMultiArrayConstView dsv_labels)
 set the active discrete string variable labels
void discrete_string_variable_label (const String &dsv_label, size_t index)
 set an active discrete string variable label
StringMultiArrayConstView discrete_real_variable_labels () const
 return the active discrete real variable labels
void discrete_real_variable_labels (StringMultiArrayConstView drv_labels)
 set the active discrete real variable labels
void discrete_real_variable_label (const String &drv_label, size_t index)
 set an active discrete real variable label
UShortMultiArrayConstView continuous_variable_types () const
 return the active continuous variable types
void continuous_variable_types (UShortMultiArrayConstView cv_types)
 set the active continuous variable types
void continuous_variable_type (unsigned short cv_type, size_t index)
 set an active continuous variable type
UShortMultiArrayConstView discrete_int_variable_types () const
 return the active discrete integer variable types
void discrete_int_variable_types (UShortMultiArrayConstView div_types)
 set the active discrete integer variable types
void discrete_int_variable_type (unsigned short div_type, size_t index)
 set an active discrete integer variable type
UShortMultiArrayConstView discrete_string_variable_types () const
 return the active discrete string variable types
void discrete_string_variable_types (UShortMultiArrayConstView dsv_types)
 set the active discrete string variable types
void discrete_string_variable_type (unsigned short dsv_type, size_t index)
 set an active discrete string variable type
UShortMultiArrayConstView discrete_real_variable_types () const
 return the active discrete real variable types
void discrete_real_variable_types (UShortMultiArrayConstView drv_types)
 set the active discrete real variable types
void discrete_real_variable_type (unsigned short drv_type, size_t index)
 set an active discrete real variable type
SizetMultiArrayConstView continuous_variable_ids () const
 return the active continuous variable position identifiers
void continuous_variable_ids (SizetMultiArrayConstView cv_ids)
 set the active continuous variable position identifiers
void continuous_variable_id (size_t cv_id, size_t index)
 set an active continuous variable position identifier
const RealVector & inactive_continuous_variables () const
 return the inactive continuous variables
void inactive_continuous_variables (const RealVector &ic_vars)
 set the inactive continuous variables
const IntVector & inactive_discrete_int_variables () const
 return the inactive discrete variables
void inactive_discrete_int_variables (const IntVector &idi_vars)
 set the inactive discrete variables
StringMultiArrayConstView inactive_discrete_string_variables () const
 return the inactive discrete variables
void inactive_discrete_string_variables (StringMultiArrayConstView ids_vars)
 set the inactive discrete variables
const RealVector & inactive_discrete_real_variables () const
 return the inactive discrete variables
void inactive_discrete_real_variables (const RealVector &idr_vars)
 set the inactive discrete variables
StringMultiArrayConstView inactive_continuous_variable_labels () const
 return the inactive continuous variable labels
void inactive_continuous_variable_labels (StringMultiArrayConstView ic_vars)
 set the inactive continuous variable labels
StringMultiArrayConstView inactive_discrete_int_variable_labels () const
 return the inactive discrete variable labels
void inactive_discrete_int_variable_labels (StringMultiArrayConstView idi_vars)
 set the inactive discrete variable labels
StringMultiArrayConstView inactive_discrete_string_variable_labels () const
 return the inactive discrete variable labels
void inactive_discrete_string_variable_labels (StringMultiArrayConstView ids_vars)
 set the inactive discrete variable labels
StringMultiArrayConstView inactive_discrete_real_variable_labels () const
 return the inactive discrete variable labels
void inactive_discrete_real_variable_labels (StringMultiArrayConstView idr_vars)
 set the inactive discrete variable labels
UShortMultiArrayConstView inactive_continuous_variable_types () const
 return the inactive continuous variable types
UShortMultiArrayConstView inactive_discrete_int_variable_types () const
 return the inactive discrete integer variable types
UShortMultiArrayConstView inactive_discrete_string_variable_types () const
 return the inactive discrete string variable types
UShortMultiArrayConstView inactive_discrete_real_variable_types () const
 return the inactive discrete real variable types
SizetMultiArrayConstView inactive_continuous_variable_ids () const
 return the inactive continuous variable position identifiers
const RealVector & all_continuous_variables () const
 returns a single array with all continuous variables
void all_continuous_variables (const RealVector &ac_vars)
 sets all continuous variables using a single array
void all_continuous_variable (Real ac_var, size_t index)
 set a variable within the all continuous array
const IntVector & all_discrete_int_variables () const
 returns a single array with all discrete variables
void all_discrete_int_variables (const IntVector &adi_vars)
 sets all discrete variables using a single array
void all_discrete_int_variable (int adi_var, size_t index)
 set a variable within the all discrete array
StringMultiArrayConstView all_discrete_string_variables () const
 returns a single array with all discrete variables
void all_discrete_string_variables (StringMultiArrayConstView ads_vars)
 sets all discrete variables using a single array
void all_discrete_string_variable (const String &ads_var, size_t index)
 set a variable within the all discrete array
const RealVector & all_discrete_real_variables () const
 returns a single array with all discrete variables
void all_discrete_real_variables (const RealVector &adr_vars)
 sets all discrete variables using a single array
void all_discrete_real_variable (Real adr_var, size_t index)
 set a variable within the all discrete array
StringMultiArrayView all_continuous_variable_labels () const
 returns a single array with all continuous variable labels
void all_continuous_variable_labels (StringMultiArrayConstView acv_labels)
 sets all continuous variable labels using a single array
void all_continuous_variable_label (const String &acv_label, size_t index)
 set a label within the all continuous label array
StringMultiArrayView all_discrete_int_variable_labels () const
 returns a single array with all discrete variable labels
void all_discrete_int_variable_labels (StringMultiArrayConstView adiv_labels)
 sets all discrete variable labels using a single array
void all_discrete_int_variable_label (const String &adiv_label, size_t index)
 set a label within the all discrete label array
StringMultiArrayView all_discrete_string_variable_labels () const
 returns a single array with all discrete variable labels
void all_discrete_string_variable_labels (StringMultiArrayConstView adsv_labels)
 sets all discrete variable labels using a single array
void all_discrete_string_variable_label (const String &adsv_label, size_t index)
 set a label within the all discrete label array
StringMultiArrayView all_discrete_real_variable_labels () const
 returns a single array with all discrete variable labels
void all_discrete_real_variable_labels (StringMultiArrayConstView adrv_labels)
 sets all discrete variable labels using a single array
void all_discrete_real_variable_label (const String &adrv_label, size_t index)
 set a label within the all discrete label array
UShortMultiArrayConstView all_continuous_variable_types () const
 return all continuous variable types
UShortMultiArrayConstView all_discrete_int_variable_types () const
 return all discrete variable types
UShortMultiArrayConstView all_discrete_string_variable_types () const
 return all discrete variable types
UShortMultiArrayConstView all_discrete_real_variable_types () const
 return all discrete variable types
SizetMultiArrayConstView all_continuous_variable_ids () const
 return all continuous variable position identifiers
Variables copy (bool deep_svd=false) const
 a deep variables copy for use in history mechanisms (SharedVariablesData uses a shallow copy by default)
const std::pair< short, short > & view () const
 returns variablesView
std::pair< short, short > get_view (const ProblemDescDB &problem_db) const
 defines variablesView from problem_db attributes
void inactive_view (short view2)
 sets the inactive view based on higher level (nested) context
const String & variables_id () const
 returns the variables identifier string
const SizetArray & variables_components_totals () const
 returns the number of variables for each of the constitutive components
bool is_null () const
 function to check variablesRep (does this envelope contain a letter)

Protected Member Functions

 Variables (BaseConstructor, const ProblemDescDB &problem_db, const std::pair< short, short > &view)
 constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139)
 Variables (BaseConstructor, const SharedVariablesData &svd)
 constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139)
void build_views ()
 construct active/inactive views of all variables arrays
void build_active_views ()
 construct active views of all variables arrays
void build_inactive_views ()
 construct inactive views of all variables arrays

Protected Attributes

SharedVariablesData sharedVarsData
 reference-counted instance of shared variables data: id's, labels, counts
RealVector allContinuousVars
 array combining all of the continuous variables
IntVector allDiscreteIntVars
 array combining all of the discrete integer variables
StringMultiArray allDiscreteStringVars
 array combining all of the discrete string variables
RealVector allDiscreteRealVars
 array combining all of the discrete real variables
RealVector continuousVars
 the active continuous variables array view
IntVector discreteIntVars
 the active discrete integer variables array view
RealVector discreteRealVars
 the active discrete real variables array view
RealVector inactiveContinuousVars
 the inactive continuous variables array view
IntVector inactiveDiscreteIntVars
 the inactive discrete integer variables array view
RealVector inactiveDiscreteRealVars
 the inactive discrete real variables array view

Private Member Functions

Variablesget_variables (const ProblemDescDB &problem_db)
 Used by the standard envelope constructor to instantiate the correct letter class.
Variablesget_variables (const SharedVariablesData &svd) const
 Used by the alternate envelope constructors, by read functions, and by copy() to instantiate a new letter class.
short method_map (short view_spec, bool relaxed) const
 infer domain from method selection
short method_domain (const ProblemDescDB &problem_db) const
 infer domain from method selection
short method_view (const ProblemDescDB &problem_db) const
 infer view from method selection
short response_view (const ProblemDescDB &problem_db) const
 infer view from type of response data set
void check_view_compatibility ()
 perform sanity checks on view.first and view.second after update
template<class Archive >
void load (Archive &ar, const unsigned int version)
 read a Variables object from an archive
template<class Archive >
void save (Archive &ar, const unsigned int version) const
 write a Variables object to an archive
 BOOST_SERIALIZATION_SPLIT_MEMBER () Variables *variablesRep
 pointer to the letter (initialized only for the envelope)

Private Attributes

int referenceCount
 number of objects sharing variablesRep

Friends

class boost::serialization::access
 for serializing private data members
bool operator== (const Variables &vars1, const Variables &vars2)
 strict equality operator (for boost hash-based lookups)
bool operator!= (const Variables &vars1, const Variables &vars2)
 strict inequality operator
bool nearby (const Variables &vars1, const Variables &vars2, Real rel_tol)
 tolerance-based equality operator
std::size_t hash_value (const Variables &vars)
 hash_value

Detailed Description

Base class for the variables class hierarchy.

The Variables class is the base class for the class hierarchy providing design, uncertain, and state variables for continuous and discrete domains within a Model. Using the fundamental arrays from the input specification, different derived classes define different views of the data. For memory efficiency and enhanced polymorphism, the variables hierarchy employs the "letter/envelope idiom" (see Coplien "Advanced C++", p. 133), for which the base class (Variables) serves as the envelope and one of the derived classes (selected in Variables::get_variables()) serves as the letter.


Member Function Documentation

StringMultiArrayView discrete_string_variables_view ( ) [inline]

return a mutable view of the active discrete string variables

same as discrete_string_variables(), except mutable view

References Variables::allDiscreteStringVars, SharedVariablesData::dsv(), SharedVariablesData::dsv_start(), and Variables::sharedVarsData.

void build_views ( ) [inline, protected]

construct active/inactive views of all variables arrays

= EMPTY)

= EMPTY)

References Variables::build_active_views(), Variables::build_inactive_views(), Variables::sharedVarsData, Variables::view(), and SharedVariablesData::view().


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