Go to the documentation of this file.
41 #ifndef dimensionedConstants_H
42 #define dimensionedConstants_H
74 if (unitDict.found(
group))
81 if (groupDict.
found(varName))
83 return groupDict.
get<
T>(varName);
87 groupDict.
add(varName, defaultValue);
94 unitDict.subDict(
group).add(varName, defaultValue);
102 #define defineDimensionedConstant(Group,Switch,Tag,Name) \
103 const Foam::dimensionedScalar Switch; \
104 class add##Tag##ToDimensionedConstant \
106 public Foam::simpleRegIOobject \
109 add##Tag##ToDimensionedConstant(const char* name) \
111 Foam::simpleRegIOobject \
112 (Foam::debug::addDimensionedConstantObject,name) \
114 Foam::dimensionedScalar ds \
116 Foam::dimensionedConstant \
122 Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \
126 s.dimensions().reset(ds.dimensions()); \
129 virtual ~add##Tag##ToDimensionedConstant() = default; \
130 virtual void readData(Foam::Istream& is) \
132 const_cast<Foam::dimensionedScalar&>(Switch) = \
133 Foam::dimensionedConstant \
139 virtual void writeData(Foam::Ostream& os) const \
144 add##Tag##ToDimensionedConstant add##Tag##ToDimensionedConstant_(Name)
148 #define defineDimensionedConstantWithDefault\
149 (Group,Switch,DefaultExpr,Tag,Name) \
150 const Foam::dimensionedScalar Switch; \
151 class add##Tag##ToDimensionedConstantWithDefault \
153 public Foam::simpleRegIOobject \
156 add##Tag##ToDimensionedConstantWithDefault(const char* name) \
158 Foam::simpleRegIOobject \
159 (Foam::debug::addDimensionedConstantObject,name) \
161 Foam::dimensionedScalar ds \
163 Foam::dimensionedConstant \
167 Foam::dimensionedScalar(Name,DefaultExpr) \
170 Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \
174 s.dimensions().reset(ds.dimensions()); \
177 virtual ~add##Tag##ToDimensionedConstantWithDefault() = default; \
178 virtual void readData(Foam::Istream& is) \
180 const_cast<Foam::dimensionedScalar&>(Switch) = \
181 Foam::dimensionedConstant \
185 Foam::dimensionedScalar(Name,DefaultExpr) \
188 virtual void writeData(Foam::Ostream& os) const \
193 add##Tag##ToDimensionedConstantWithDefault \
194 add##Tag##ToDimensionedConstantWithDefault_(Name)
A class for handling words, derived from Foam::string.
bool found(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Search for an entry (const access) with the given keyword.
const char *const group
Group name for atomic constants.
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
const HashTable< dimensionedScalar > & unitSet()
Set of all dimensions.
static const dictionary null
An empty dictionary, which is also the parent for all dictionaries.
const dictionary & subDict(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a sub-dictionary.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
dictionary & dimensionedConstants()
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
dimensionedScalar dimensionedConstant(const word &group, const word &varName)
entry * add(entry *entryPtr, bool mergeEntry=false)
Add a new entry.