28 #define TEMPLATE template<template<class> class PatchField, class GeoMesh> 38 template<
template<
class>
class PatchField,
class GeoMesh>
51 template<
template<
class>
class PatchField,
class GeoMesh>
64 "stabilise(" + gsf.
name() +
',' + ds.
name() +
')',
81 template<
template<
class>
class PatchField,
class GeoMesh>
95 "stabilise(" + gsf.
name() +
',' + ds.
name() +
')',
121 template<
template<
class>
class PatchField,
class GeoMesh>
134 template<
template<
class>
class PatchField,
class GeoMesh>
144 <<
"Base field is not dimensionless: " << gsf1.
dimensions()
151 <<
"Exponent field is not dimensionless: " << gsf2.
dimensions()
161 "pow(" + gsf1.
name() +
',' + gsf2.
name() +
')',
172 pow(tPow.
ref(), gsf1, gsf2);
178 template<
template<
class>
class PatchField,
class GeoMesh>
190 <<
"Base field is not dimensionless: " << gsf1.
dimensions()
197 <<
"Exponent field is not dimensionless: " << gsf2.
dimensions()
206 "pow(" + gsf1.
name() +
',' + gsf2.
name() +
')',
211 pow(tPow.
ref(), gsf1, gsf2);
219 template<
template<
class>
class PatchField,
class GeoMesh>
231 <<
"Base field is not dimensionless: " << gsf1.
dimensions()
238 <<
"Exponent field is not dimensionless: " << gsf2.
dimensions()
247 "pow(" + gsf1.
name() +
',' + gsf2.
name() +
')',
252 pow(tPow.
ref(), gsf1, gsf2);
259 template<
template<
class>
class PatchField,
class GeoMesh>
272 <<
"Base field is not dimensionless: " << gsf1.
dimensions()
279 <<
"Exponent field is not dimensionless: " << gsf2.
dimensions()
286 <scalar, scalar, scalar, scalar, PatchField,
GeoMesh>::
New 290 "pow(" + gsf1.
name() +
',' + gsf2.
name() +
')',
295 pow(tPow.
ref(), gsf1, gsf2);
304 template<
template<
class>
class PatchField,
class GeoMesh>
317 template<
template<
class>
class PatchField,
class GeoMesh>
327 <<
"Exponent is not dimensionless: " << ds.
dimensions()
337 "pow(" + gsf.
name() +
',' + ds.
name() +
')',
353 template<
template<
class>
class PatchField,
class GeoMesh>
363 <<
"Exponent is not dimensionless: " << ds.
dimensions()
374 "pow(" + gsf.
name() +
',' + ds.
name() +
')',
386 template<
template<
class>
class PatchField,
class GeoMesh>
396 template<
template<
class>
class PatchField,
class GeoMesh>
407 template<
template<
class>
class PatchField,
class GeoMesh>
420 template<
template<
class>
class PatchField,
class GeoMesh>
430 <<
"Base scalar is not dimensionless: " << ds.
dimensions()
437 <<
"Exponent field is not dimensionless: " << gsf.
dimensions()
447 "pow(" + ds.
name() +
',' + gsf.
name() +
')',
464 template<
template<
class>
class PatchField,
class GeoMesh>
476 <<
"Base scalar is not dimensionless: " << ds.
dimensions()
483 <<
"Exponent field is not dimensionless: " << gsf.
dimensions()
492 "pow(" + ds.
name() +
',' + gsf.
name() +
')',
504 template<
template<
class>
class PatchField,
class GeoMesh>
514 template<
template<
class>
class PatchField,
class GeoMesh>
527 template<
template<
class>
class PatchField,
class GeoMesh>
550 template<
template<
class>
class PatchField,
class GeoMesh>
563 "atan2(" + gsf1.
name() +
',' + gsf2.
name() +
')',
580 template<
template<
class>
class PatchField,
class GeoMesh>
594 "atan2(" + gsf1.
name() +
',' + gsf2.
name() +
')',
607 template<
template<
class>
class PatchField,
class GeoMesh>
621 "atan2(" + gsf1.
name() +
',' + gsf2.
name() +
')',
633 template<
template<
class>
class PatchField,
class GeoMesh>
646 <scalar, scalar, scalar, scalar, PatchField,
GeoMesh>::
New 650 "atan2(" + gsf1.
name() +
',' + gsf2.
name() +
')',
664 template<
template<
class>
class PatchField,
class GeoMesh>
677 template<
template<
class>
class PatchField,
class GeoMesh>
690 "atan2(" + gsf.
name() +
',' + ds.
name() +
')',
706 template<
template<
class>
class PatchField,
class GeoMesh>
720 "atan2(" + gsf.
name() +
',' + ds.
name() +
')',
732 template<
template<
class>
class PatchField,
class GeoMesh>
742 template<
template<
class>
class PatchField,
class GeoMesh>
753 template<
template<
class>
class PatchField,
class GeoMesh>
766 template<
template<
class>
class PatchField,
class GeoMesh>
779 "atan2(" + ds.
name() +
',' + gsf.
name() +
')',
796 template<
template<
class>
class PatchField,
class GeoMesh>
810 "atan2(" + ds.
name() +
',' + gsf.
name() +
')',
822 template<
template<
class>
class PatchField,
class GeoMesh>
832 template<
template<
class>
class PatchField,
class GeoMesh>
886 #define BesselFunc(func) \ 888 template<template<class> class PatchField, class GeoMesh> \ 891 GeometricField<scalar, PatchField, GeoMesh>& gsf, \ 893 const GeometricField<scalar, PatchField, GeoMesh>& gsf1 \ 896 func(gsf.primitiveFieldRef(), n, gsf1.primitiveField()); \ 897 func(gsf.boundaryFieldRef(), n, gsf1.boundaryField()); \ 900 template<template<class> class PatchField, class GeoMesh> \ 901 tmp<GeometricField<scalar, PatchField, GeoMesh>> func \ 904 const GeometricField<scalar, PatchField, GeoMesh>& gsf \ 907 if (!gsf.dimensions().dimensionless()) \ 909 FatalErrorInFunction \ 910 << "gsf not dimensionless" \ 911 << abort(FatalError); \ 914 tmp<GeometricField<scalar, PatchField, GeoMesh>> tFunc \ 916 new GeometricField<scalar, PatchField, GeoMesh> \ 920 #func "(" + gsf.name() + ')', \ 931 func(tFunc.ref(), n, gsf); \ 936 template<template<class> class PatchField, class GeoMesh> \ 937 tmp<GeometricField<scalar, PatchField, GeoMesh>> func \ 940 const tmp<GeometricField<scalar, PatchField, GeoMesh>>& tgsf \ 943 const GeometricField<scalar, PatchField, GeoMesh>& gsf = tgsf(); \ 945 if (!gsf.dimensions().dimensionless()) \ 947 FatalErrorInFunction \ 948 << " : gsf not dimensionless" \ 949 << abort(FatalError); \ 952 tmp<GeometricField<scalar, PatchField, GeoMesh>> tFunc \ 957 #func "(" + gsf.name() + ')', \ 962 func(tFunc.ref(), n, gsf); \ void divide(FieldField< Field, Type > &f, const FieldField< Field, Type > &f1, const FieldField< Field, scalar > &f2)
dimensionedScalar sign(const dimensionedScalar &ds)
dimensionedScalar tanh(const dimensionedScalar &ds)
dimensionSet trans(const dimensionSet &)
dimensionedScalar acos(const dimensionedScalar &ds)
#define BINARY_OPERATOR(ReturnType, Type1, Type2, Op, OpName, OpFunc)
void multiply(FieldField< Field, Type > &f, const FieldField< Field, Type > &f1, const FieldField< Field, scalar > &f2)
const word & name() const
Return name.
dimensionedScalar log(const dimensionedScalar &ds)
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
#define UNARY_FUNCTION(ReturnType, Type1, Func, Dfunc)
const Boundary & boundaryField() const
Return const-reference to the boundary field.
T & ref() const
Return non-const reference or generate a fatal error.
dimensionedScalar yn(const int n, const dimensionedScalar &ds)
#define BINARY_TYPE_OPERATOR_SF(ReturnType, Type1, Type2, Op, OpName, OpFunc)
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensionedScalar pow025(const dimensionedScalar &ds)
dimensionedScalar y0(const dimensionedScalar &ds)
const Internal::FieldType & primitiveField() const
Return a const-reference to the internal field.
Generic GeometricField class.
void subtract(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
dimensionedScalar posPart(const dimensionedScalar &ds)
dimensionedScalar neg(const dimensionedScalar &ds)
dimensionedScalar asin(const dimensionedScalar &ds)
dimensionedScalar pow5(const dimensionedScalar &ds)
dimensionedScalar j1(const dimensionedScalar &ds)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
dimensionedScalar pos(const dimensionedScalar &ds)
const dimensionSet & dimensions() const
Return dimensions.
Scalar specific part of the implementation of GeometricField.
dimensionedScalar acosh(const dimensionedScalar &ds)
dimensionedScalar cos(const dimensionedScalar &ds)
dimensionedScalar exp(const dimensionedScalar &ds)
dimensionedScalar asinh(const dimensionedScalar &ds)
dimensionedScalar jn(const int n, const dimensionedScalar &ds)
dimensionedScalar cbrt(const dimensionedScalar &ds)
dimensionedScalar neg0(const dimensionedScalar &ds)
const Type & value() const
Return const reference to value.
dimensionedScalar atanh(const dimensionedScalar &ds)
dimensionedScalar y1(const dimensionedScalar &ds)
dimensionedScalar pos0(const dimensionedScalar &ds)
dimensionedScalar sin(const dimensionedScalar &ds)
Internal::FieldType & primitiveFieldRef()
Return a reference to the internal field.
void add(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
dimensionedScalar erf(const dimensionedScalar &ds)
dimensionedScalar atan2(const dimensionedScalar &x, const dimensionedScalar &y)
const Mesh & mesh() const
Return mesh.
const word & name() const
Return const reference to name.
Internal & ref()
Return a reference to the dimensioned internal field.
dimensionedScalar lgamma(const dimensionedScalar &ds)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensionedScalar pow3(const dimensionedScalar &ds)
tmp< DimensionedField< scalar, GeoMesh > > stabilise(const DimensionedField< scalar, GeoMesh > &dsf, const dimensioned< scalar > &ds)
const fileName & instance() const
dimensionedScalar erfc(const dimensionedScalar &ds)
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
dimensionedScalar sinh(const dimensionedScalar &ds)
Boundary & boundaryFieldRef()
Return a reference to the boundary field.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
dimensionedScalar atan(const dimensionedScalar &ds)
dimensionedScalar pow4(const dimensionedScalar &ds)
const dimensionSet & dimensions() const
Return const reference to dimensions.
dimensionedScalar pow6(const dimensionedScalar &ds)
dimensionedScalar cosh(const dimensionedScalar &ds)
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
A class for managing temporary objects.
const objectRegistry & db() const
Return the local objectRegistry.
dimensionedScalar tan(const dimensionedScalar &ds)
dimensionedScalar j0(const dimensionedScalar &ds)
#define BINARY_TYPE_OPERATOR(ReturnType, Type1, Type2, Op, OpName, OpFunc)
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
bool dimensionless() const
Return true if it is dimensionless.
dimensionedScalar log10(const dimensionedScalar &ds)
dimensionedScalar negPart(const dimensionedScalar &ds)