46 const scalar temperature,
49 const scalar luminousIntensity
52 exponents_[
MASS] = mass;
53 exponents_[
LENGTH] = length;
54 exponents_[
TIME] = time;
56 exponents_[
MOLES] = moles;
67 const scalar temperature,
71 exponents_[MASS] = mass;
72 exponents_[LENGTH] = length;
73 exponents_[TIME] = time;
74 exponents_[TEMPERATURE] = temperature;
75 exponents_[MOLES] = moles;
76 exponents_[CURRENT] = 0;
77 exponents_[LUMINOUS_INTENSITY] = 0;
91 for (
int Dimension=0; Dimension<nDimensions; ++Dimension)
96 exponents_[Dimension] > smallExponent
97 || exponents_[Dimension] < -smallExponent
110 for (
int Dimension=0; Dimension<nDimensions; ++Dimension)
112 exponents_[Dimension] = ds.exponents_[Dimension];
121 return exponents_[
type];
127 return exponents_[
type];
133 return exponents_[
type];
139 return exponents_[
type];
145 for (
int Dimension=0; Dimension < nDimensions; ++Dimension)
149 mag(exponents_[Dimension] - ds.exponents_[Dimension])
169 if (dimensionSet::debug && *
this != ds)
172 <<
"Different dimensions for =" <<
endl
173 <<
" dimensions : " << *
this <<
" = " << ds <<
endl
183 if (dimensionSet::debug && *
this != ds)
186 <<
"Different dimensions for +=" <<
endl
187 <<
" dimensions : " << *
this <<
" = " << ds <<
endl
197 if (dimensionSet::debug && *
this != ds)
200 <<
"Different dimensions for -=" <<
endl
201 <<
" dimensions : " << *
this <<
" = " << ds <<
endl
229 if (dimensionSet::debug && ds1 != ds2)
232 <<
"Arguments of max have different dimensions" <<
endl
233 <<
" dimensions : " << ds1 <<
" and " << ds2 <<
endl
243 if (dimensionSet::debug && ds1 != ds2)
246 <<
"Arguments of min have different dimensions" <<
endl
247 <<
" dimensions : " << ds1 <<
" and " << ds2 <<
endl
307 <<
"Exponent of pow is not dimensionless"
340 <<
"Argument or exponent of pow not dimensionless" <<
endl
392 return pow(ds, 1.0/3.0);
461 <<
"Argument of trancendental function not dimensionless"
471 if (dimensionSet::debug && ds1 != ds2)
474 <<
"Arguments of atan2 have different dimensions" <<
endl
475 <<
" dimensions : " << ds1 <<
" and " << ds2 <<
endl
505 if (dimensionSet::debug && ds1 != ds2)
508 <<
"LHS and RHS of + have different dimensions" <<
endl
509 <<
" dimensions : " << ds1 <<
" + " << ds2 <<
endl
525 if (dimensionSet::debug && ds1 != ds2)
528 <<
"LHS and RHS of - have different dimensions" <<
endl
529 <<
" dimensions : " << ds1 <<
" - " << ds2 <<
endl
533 return dimDifference;
547 dimProduct.exponents_[Dimension] += ds2.exponents_[Dimension];
564 dimQuotient.exponents_[Dimension] -= ds2.exponents_[Dimension];
Dimension set for the base types.
bool operator+=(const dimensionSet &) const
bool operator==(const dimensionSet &) const
bool operator!=(const dimensionSet &) const
dimensionSet(const scalar mass, const scalar length, const scalar time, const scalar temperature, const scalar moles, const scalar current, const scalar luminousIntensity)
Construct given individual dimension exponents for all.
static const scalar smallExponent
bool operator/=(const dimensionSet &)
bool operator-=(const dimensionSet &) const
scalar operator[](const dimensionType) const
void reset(const dimensionSet &)
bool dimensionless() const
Return true if it is dimensionless.
dimensionType
Define an enumeration for the names of the dimension exponents.
bool operator*=(const dimensionSet &)
bool operator=(const dimensionSet &) const
const dimensionSet & dimensions() const
Return const reference to dimensions.
const Type & value() const
Return const reference to value.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
dimensionedScalar pow6(const dimensionedScalar &ds)
dimensionedScalar pos(const dimensionedScalar &ds)
dimensionedScalar pow5(const dimensionedScalar &ds)
dimensionedScalar pos0(const dimensionedScalar &ds)
dimensionedScalar sign(const dimensionedScalar &ds)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
tmp< fvMatrix< Type > > operator==(const fvMatrix< Type > &, const fvMatrix< Type > &)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar pow3(const dimensionedScalar &ds)
errorManip< error > abort(error &err)
const dimensionSet dimless
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensionedScalar atan2(const dimensionedScalar &x, const dimensionedScalar &y)
dimensionedScalar negPart(const dimensionedScalar &ds)
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensionSet transform(const dimensionSet &)
dimensioned< scalar > mag(const dimensioned< Type > &)
defineTypeNameAndDebug(combustionModel, 0)
dimensionedScalar pow4(const dimensionedScalar &ds)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
dimensioned< Type > cmptMultiply(const dimensioned< Type > &, const dimensioned< Type > &)
dimensionedScalar neg(const dimensionedScalar &ds)
dimensionSet cmptMag(const dimensionSet &)
dimensioned< Type > cmptDivide(const dimensioned< Type > &, const dimensioned< Type > &)
dimensionedSphericalTensor inv(const dimensionedSphericalTensor &dt)
dimensionedScalar neg0(const dimensionedScalar &ds)
dimensionedScalar cbrt(const dimensionedScalar &ds)
tmp< fvMatrix< Type > > operator-(const fvMatrix< Type > &)
dimensionSet trans(const dimensionSet &)
dimensioned< scalar > magSqr(const dimensioned< Type > &)
dimensionedScalar posPart(const dimensionedScalar &ds)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
dimensionedScalar pow025(const dimensionedScalar &ds)