10 #ifndef SACADO_PARAMETERFAMILYBASE_HPP
11 #define SACADO_PARAMETERFAMILYBASE_HPP
26 template <
typename EntryBase,
typename EntryType>
49 template <
typename EvalType>
58 template <
typename EvalType>
61 const bool allow_overwrite =
false);
64 template <
typename EvalType>
69 template <
typename EvalType>
78 void print(std::ostream& os,
bool print_values =
false)
const;
83 typedef std::map<std::string, Teuchos::RCP<EntryBase> >
EvalMap;
92 template <
class EvalType> std::string
getTypeName()
const;
ParameterFamilyBase(const std::string &name, bool supports_ad, bool supports_analytic)
Constructor.
const std::string name
Family name.
virtual ~ParameterFamilyBase()
Destructor.
EvalMap::const_iterator const_iterator
Const iterator for EvalMap.
EvalMap::iterator iterator
Iterator for EvalMap.
std::string getTypeName() const
Returns a string representation of type EntryType.
std::string getName() const
Get the name of the family.
F::template apply< A1, A2, A3, A4, A5 >::type type
void print(std::ostream &os, bool print_values=false) const
Print the family.
bool addEntry(const Teuchos::RCP< typename Sacado::mpl::apply< EntryType, EvalType >::type > &entry, const bool allow_overwrite=false)
Add a new parameter using custom entry.
bool hasType() const
Determine if family has an entry for the given type EvalType.
Teuchos::RCP< typename Sacado::mpl::apply< EntryType, EvalType >::type > getEntry()
Gets the entry corresponding to type EvalType.
EvalMap family
Family of parameter entries.
bool supportsAD() const
Indicates whether parameter supports AD derivatives.
ParameterFamilyBase & operator=(const ParameterFamilyBase &)
Private to prohibit copying.
std::map< std::string, Teuchos::RCP< EntryBase > > EvalMap
Map of entries for a parameter name.
bool supportsAnalytic() const
Indicates whether parameter supports analytic derivatives.
bool supports_analytic
Family supports analytic derivatives.
bool supports_ad
Family supports AD.