Go to the documentation of this file.
35 #ifndef dimensionedType_H
36 #define dimensionedType_H
50 template<
class Type>
class dimensioned;
53 Istream&
operator>>(Istream&, dimensioned<Type>&);
56 Ostream&
operator<<(Ostream&,
const dimensioned<Type>&);
178 const Type&
value()
const;
224 friend Istream&
operator>> <Type>
227 friend Ostream& operator<< <Type>
234 template<
class Type,
int r>
238 const dimensioned<Type>&,
245 sqr(
const dimensioned<Type>&);
248 dimensioned<scalar>
magSqr(
const dimensioned<Type>&);
251 dimensioned<scalar>
mag(
const dimensioned<Type>&);
256 const dimensioned<Type>&,
257 const dimensioned<Type>&
263 const dimensioned<Type>&,
264 const dimensioned<Type>&
268 dimensioned<Type>
max(
const dimensioned<Type>&,
const dimensioned<Type>&);
271 dimensioned<Type>
min(
const dimensioned<Type>&,
const dimensioned<Type>&);
274 bool operator>(
const dimensioned<Type>&,
const dimensioned<Type>&);
277 bool operator<(
const dimensioned<Type>&,
const dimensioned<Type>&);
280 dimensioned<Type>
operator+(
const dimensioned<Type>&,
const dimensioned<Type>&);
283 dimensioned<Type>
operator-(
const dimensioned<Type>&);
286 dimensioned<Type>
operator-(
const dimensioned<Type>&,
const dimensioned<Type>&);
289 dimensioned<Type>
operator*
291 const dimensioned<scalar>&,
292 const dimensioned<Type>&
296 dimensioned<Type>
operator/
298 const dimensioned<Type>&,
299 const dimensioned<scalar>&
306 #define PRODUCT_OPERATOR(product, op, opFunc) \
308 template<class Type1, class Type2> \
309 dimensioned<typename product<Type1, Type2>::type> \
310 operator op(const dimensioned<Type1>&, const dimensioned<Type2>&); \
312 template<class Type, class Form, class Cmpt, int nCmpt> \
313 dimensioned<typename product<Type, Form>::type> \
316 const dimensioned<Type>&, \
317 const VectorSpace<Form,Cmpt,nCmpt>& \
320 template<class Type, class Form, class Cmpt, int nCmpt> \
321 dimensioned<typename product<Form, Type>::type> \
324 const VectorSpace<Form,Cmpt,nCmpt>&, \
325 const dimensioned<Type>& \
333 #undef PRODUCT_OPERATOR
dimensioned(const Type &t)
Construct given a value (creates dimensionless value).
dimensioned< cmptType > component(const direction) const
Return a component as a dimensioned<cmptType>
static dimensioned< Type > lookupOrAddToDict(const word &, dictionary &, const dimensionSet &dims=dimless, const Type &defaultValue=pTraits< Type >::zero)
Construct from dictionary, with default value.
void initialize(Istream &is)
Initialize from Istream.
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
static dimensioned< Type > lookupOrDefault(const word &, const dictionary &, const dimensionSet &dims=dimless, const Type &defaultValue=pTraits< Type >::zero)
Construct from dictionary, with default dimensions and value.
A class for handling words, derived from string.
dimensioned< Type > T() const
Return transpose.
dimensioned< Type > cmptMultiply(const dimensioned< Type > &, const dimensioned< Type > &)
bool operator<(const dimensioned< Type > &, const dimensioned< Type > &)
void dot(FieldField< Field1, typename innerProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
const word & name() const
Return const reference to name.
Type value_
The data value.
const Type & value() const
Return const reference to value.
Dimension set for the base types.
dimensioned< cmptType > operator[](const direction) const
Return a component as a dimensioned<cmptType>
dimensioned< scalar > mag(const dimensioned< Type > &)
symmTypeOfRank< typename pTraits< arg1 >::cmptType, arg2 *int(pTraits< arg1 >::rank) >::type type
tmp< fvMatrix< Type > > operator-(const fvMatrix< Type > &)
bool operator>(const dimensioned< Type > &, const dimensioned< Type > &)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
void operator/=(const scalar)
void read(const dictionary &)
Update the value of dimensioned<Type>
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Ostream & operator<<(Ostream &, const edgeMesh &)
A list of keyword definitions, which are a keyword followed by any number of values (e....
bool readIfPresent(const dictionary &)
Update the value of dimensioned<Type> if found in the dictionary.
void operator-=(const dimensioned< Type > &)
Direction is an integer type used to represent the Cartesian directions etc. Currently it is a typede...
An STL-conforming hash table.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
dimensioned< Type > cmptDivide(const dimensioned< Type > &, const dimensioned< Type > &)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionSet dimensions_
The dimension set.
void replace(const direction, const dimensioned< cmptType > &)
Return a component with a dimensioned<cmptType>
dimensioned()
Null constructor.
Traits class for primitives.
void operator*=(const scalar)
void outer(FieldField< Field1, typename outerProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
Istream & operator>>(Istream &, edgeMesh &)
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
const dimensionSet & dimensions() const
Return const reference to dimensions.
#define PRODUCT_OPERATOR(product, op, opFunc)
void cross(FieldField< Field1, typename crossProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
pTraits< Type >::cmptType cmptType
Component type.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
tmp< fvMatrix< Type > > operator+(const fvMatrix< Type > &, const fvMatrix< Type > &)
dimensioned< scalar > magSqr(const dimensioned< Type > &)
void operator+=(const dimensioned< Type > &)
void dotdot(FieldField< Field1, typename scalarProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)