Go to the documentation of this file.
42 #ifndef dimensionedConstants_H
43 #define dimensionedConstants_H
75 if (unitDict.found(
group))
82 if (groupDict.
found(varName))
84 return groupDict.
get<
T>(varName);
88 groupDict.
add(varName, defaultValue);
95 unitDict.subDict(
group).add(varName, defaultValue);
103 #define defineDimensionedConstant(Group,Switch,Tag,Name) \
104 const Foam::dimensionedScalar Switch; \
105 class add##Tag##ToDimensionedConstant \
107 public Foam::simpleRegIOobject \
110 add##Tag##ToDimensionedConstant(const char* name) \
112 Foam::simpleRegIOobject \
113 (Foam::debug::addDimensionedConstantObject,name) \
115 Foam::dimensionedScalar ds \
117 Foam::dimensionedConstant \
123 Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \
127 s.dimensions().reset(ds.dimensions()); \
130 virtual ~add##Tag##ToDimensionedConstant() = default; \
131 virtual void readData(Foam::Istream& is) \
133 const_cast<Foam::dimensionedScalar&>(Switch) = \
134 Foam::dimensionedConstant \
140 virtual void writeData(Foam::Ostream& os) const \
145 add##Tag##ToDimensionedConstant add##Tag##ToDimensionedConstant_(Name)
149 #define defineDimensionedConstantWithDefault\
150 (Group,Switch,DefaultExpr,Tag,Name) \
151 const Foam::dimensionedScalar Switch; \
152 class add##Tag##ToDimensionedConstantWithDefault \
154 public Foam::simpleRegIOobject \
157 add##Tag##ToDimensionedConstantWithDefault(const char* name) \
159 Foam::simpleRegIOobject \
160 (Foam::debug::addDimensionedConstantObject,name) \
162 Foam::dimensionedScalar ds \
164 Foam::dimensionedConstant \
168 Foam::dimensionedScalar(Name,DefaultExpr) \
171 Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \
175 s.dimensions().reset(ds.dimensions()); \
178 virtual ~add##Tag##ToDimensionedConstantWithDefault() = default; \
179 virtual void readData(Foam::Istream& is) \
181 const_cast<Foam::dimensionedScalar&>(Switch) = \
182 Foam::dimensionedConstant \
186 Foam::dimensionedScalar(Name,DefaultExpr) \
189 virtual void writeData(Foam::Ostream& os) const \
194 add##Tag##ToDimensionedConstantWithDefault \
195 add##Tag##ToDimensionedConstantWithDefault_(Name)
A class for handling words, derived from Foam::string.
constexpr const char *const group
bool found(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
const HashTable< dimensionedScalar > & unitSet()
static const dictionary null
const dictionary & subDict(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
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,...
Generic dimensioned Type class.
dimensionedScalar dimensionedConstant(const word &group, const word &varName)
entry * add(entry *entryPtr, bool mergeEntry=false)