32 template<class> class PrimitiveField \
38 template<class> class PrimitiveField1, \
39 template<class> class PrimitiveField2 \
45 template<class> class PrimitiveField1, \
46 template<class> class PrimitiveField2, \
47 template<class> class PrimitiveField3 \
82 "stabilise(" + gsf.
name() +
',' + ds.
name() +
')',
108 "stabilise(" + gsf.
name() +
',' + ds.
name() +
')',
157 <<
"Base field is not dimensionless: " << gsf1.
dimensions()
164 <<
"Exponent field is not dimensionless: " << gsf2.
dimensions()
172 "pow(" + gsf1.
name() +
',' + gsf2.
name() +
')',
178 pow(tPow.
ref(), gsf1, gsf2);
197 <<
"Base field is not dimensionless: " << gsf1.
dimensions()
204 <<
"Exponent field is not dimensionless: " << gsf2.
dimensions()
213 "pow(" + gsf1.
name() +
',' + gsf2.
name() +
')',
218 pow(tPow.
ref(), gsf1, gsf2);
239 <<
"Base field is not dimensionless: " << gsf1.
dimensions()
246 <<
"Exponent field is not dimensionless: " << gsf2.
dimensions()
255 "pow(" + gsf1.
name() +
',' + gsf2.
name() +
')',
260 pow(tPow.
ref(), gsf1, gsf2);
281 <<
"Base field is not dimensionless: " << gsf1.
dimensions()
288 <<
"Exponent field is not dimensionless: " << gsf2.
dimensions()
306 "pow(" + gsf1.
name() +
',' + gsf2.
name() +
')',
311 pow(tPow.
ref(), gsf1, gsf2);
343 <<
"Exponent is not dimensionless: " << ds.
dimensions()
351 "pow(" + gsf.
name() +
',' + ds.
name() +
')',
373 <<
"Exponent is not dimensionless: " << ds.
dimensions()
384 "pow(" + gsf.
name() +
',' + ds.
name() +
')',
442 <<
"Base scalar is not dimensionless: " << ds.
dimensions()
449 <<
"Exponent field is not dimensionless: " << gsf.
dimensions()
457 "pow(" + ds.
name() +
',' + gsf.
name() +
')',
481 <<
"Base scalar is not dimensionless: " << ds.
dimensions()
488 <<
"Exponent field is not dimensionless: " << gsf.
dimensions()
497 "pow(" + ds.
name() +
',' + gsf.
name() +
')',
568 "atan2(" + gsf1.
name() +
',' + gsf2.
name() +
')',
592 <scalar, scalar,
GeoMesh, PrimitiveField1>::
New
595 "atan2(" + gsf1.
name() +
',' + gsf2.
name() +
')',
620 <scalar, scalar,
GeoMesh, PrimitiveField2>::
New
623 "atan2(" + gsf1.
name() +
',' + gsf2.
name() +
')',
660 "atan2(" + gsf1.
name() +
',' + gsf2.
name() +
')',
698 "atan2(" + gsf.
name() +
',' + ds.
name() +
')',
724 "atan2(" + gsf.
name() +
',' + ds.
name() +
')',
783 "atan2(" + ds.
name() +
',' + gsf.
name() +
')',
809 "atan2(" + ds.
name() +
',' + gsf.
name() +
')',
887 #define BesselFunc(func) \
892 GeometricField<scalar, GeoMesh, PrimitiveField1>& gsf, \
894 const GeometricField<scalar, GeoMesh, PrimitiveField2>& gsf1 \
897 func(gsf.primitiveFieldRef(), n, gsf1.primitiveField()); \
898 func(gsf.boundaryFieldRef(), n, gsf1.boundaryField()); \
902 tmp<GeometricField<scalar, GeoMesh, Field>> func \
905 const GeometricField<scalar, GeoMesh, PrimitiveField>& gsf \
908 if (!gsf.dimensions().dimensionless()) \
910 FatalErrorInFunction \
911 << "gsf not dimensionless" \
912 << abort(FatalError); \
915 tmp<GeometricField<scalar, GeoMesh, Field>> tFunc \
917 GeometricField<scalar, GeoMesh, Field>::New \
919 #func "(" + gsf.name() + ')', \
925 func(tFunc.ref(), n, gsf); \
931 tmp<GeometricField<scalar, GeoMesh, Field>> func \
934 const tmp<GeometricField<scalar, GeoMesh, PrimitiveField>>& tgsf \
937 const GeometricField<scalar, GeoMesh, PrimitiveField>& gsf = tgsf(); \
939 if (!gsf.dimensions().dimensionless()) \
941 FatalErrorInFunction \
942 << " : gsf not dimensionless" \
943 << abort(FatalError); \
946 tmp<GeometricField<scalar, GeoMesh, Field>> tFunc \
948 reuseTmpGeometricField<scalar, scalar, GeoMesh, PrimitiveField>::New \
951 #func "(" + gsf.name() + ')', \
956 func(tFunc.ref(), n, gsf); \
#define BINARY_TYPE_OPERATOR(ReturnType, Type1, Type2, Op, OpName, OpFunc)
Scalar specific part of the implementation of GeometricField.
#define BINARY_OPERATOR(Template, Type, Type1, Type2, op, opFunc)
#define UNARY_FUNCTION(Template, Type, Type1, func)
#define BINARY_TYPE_OPERATOR_SF(TYPE, op, opFunc)
const dimensionSet & dimensions() const
Return dimensions.
const Mesh & mesh() const
Return mesh.
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
Generic GeometricField class.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
Internal::FieldType & primitiveFieldRef()
Return a reference to the primitive field.
Boundary & boundaryFieldRef()
Return a reference to the boundary field.
const Internal::FieldType & primitiveField() const
Return a const-reference to the primitive field.
const word & name() const
Return name.
bool dimensionless() const
Return true if it is dimensionless.
const dimensionSet & dimensions() const
Return const reference to dimensions.
const Type & value() const
Return const reference to value.
const word & name() const
Return const reference to name.
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.name(), lagrangian::cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
void subtract(LagrangianPatchField< typename typeOfSum< Type1, Type2 >::type > &f, const LagrangianPatchField< Type1 > &f1, const LagrangianPatchField< Type2 > &f2)
errorManipArg< error, int > exit(error &err, const int errNo=1)
dimensionedScalar pos(const dimensionedScalar &ds)
dimensionedScalar erfc(const dimensionedScalar &ds)
dimensionedScalar asin(const dimensionedScalar &ds)
dimensionedScalar exp(const dimensionedScalar &ds)
dimensionedScalar tan(const dimensionedScalar &ds)
void divide(LagrangianPatchField< Type > &f, const LagrangianPatchField< Type > &f1, const LagrangianPatchField< scalar > &f2)
dimensionedScalar pos0(const dimensionedScalar &ds)
dimensionedScalar sign(const dimensionedScalar &ds)
dimensionedScalar lgamma(const dimensionedScalar &ds)
dimensionedScalar j1(const dimensionedScalar &ds)
dimensionedScalar y0(const dimensionedScalar &ds)
dimensionedScalar cosh(const dimensionedScalar &ds)
void pow025(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
const dimensionSet dimless
dimensionedScalar sin(const dimensionedScalar &ds)
dimensionedScalar tanh(const dimensionedScalar &ds)
dimensionedScalar erf(const dimensionedScalar &ds)
dimensionedScalar sinh(const dimensionedScalar &ds)
dimensionedScalar log10(const dimensionedScalar &ds)
tmp< DimensionedField< scalar, GeoMesh, Field > > stabilise(const DimensionedField< scalar, GeoMesh, PrimitiveField > &dsf, const dimensioned< scalar > &ds)
void pow4(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
void pow6(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
dimensionedScalar yn(const int n, const dimensionedScalar &ds)
dimensionedScalar log(const dimensionedScalar &ds)
dimensionedScalar atan2(const dimensionedScalar &x, const dimensionedScalar &y)
dimensionedScalar y1(const dimensionedScalar &ds)
dimensionedScalar negPart(const dimensionedScalar &ds)
dimensionedScalar acosh(const dimensionedScalar &ds)
void pow(LagrangianPatchField< typename powProduct< Type, r >::type > &f, const LagrangianPatchField< Type > &f1)
void multiply(LagrangianPatchField< Type > &f, const LagrangianPatchField< scalar > &f1, const LagrangianPatchField< Type > &f2)
void pow5(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
dimensionedScalar jn(const int n, const dimensionedScalar &ds)
void pow3(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
dimensionedScalar neg(const dimensionedScalar &ds)
void cbrt(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
dimensionedScalar atanh(const dimensionedScalar &ds)
dimensionedScalar neg0(const dimensionedScalar &ds)
void add(LagrangianPatchField< typename typeOfSum< Type1, Type2 >::type > &f, const LagrangianPatchField< Type1 > &f1, const LagrangianPatchField< Type2 > &f2)
dimensionedScalar atan(const dimensionedScalar &ds)
void sqrt(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
dimensionSet trans(const dimensionSet &)
tmp< DimensionedField< TypeR, GeoMesh, Field > > New(const tmp< DimensionedField< TypeR, GeoMesh, Field >> &tdf1, const word &name, const dimensionSet &dimensions)
dimensionedScalar cos(const dimensionedScalar &ds)
dimensionedScalar posPart(const dimensionedScalar &ds)
dimensionedScalar acos(const dimensionedScalar &ds)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
dimensionedScalar j0(const dimensionedScalar &ds)
dimensionedScalar asinh(const dimensionedScalar &ds)