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)
#define BINARY_OPERATOR(ReturnType, Type1, Type2, Op, OpName, OpFunc)
#define BINARY_TYPE_OPERATOR_SF(ReturnType, Type1, Type2, Op, OpName, OpFunc)
#define UNARY_FUNCTION(ReturnType, Type1, Func, Dfunc)
Scalar specific part of the implementation of GeometricField.
const dimensionSet & dimensions() const
Return dimensions.
const GeoMesh & mesh() const
Return mesh.
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))
errorManipArg< error, int > exit(error &err, const int errNo=1)
void subtract(GeometricField< typename typeOfSum< Type1, Type2 >::type, GeoMesh, PrimitiveField1 > &gf, const GeometricField< Type1, GeoMesh, PrimitiveField2 > &gf1, const GeometricField< Type2, GeoMesh, PrimitiveField3 > &gf2)
dimensionedScalar pos(const dimensionedScalar &ds)
dimensionedScalar erfc(const dimensionedScalar &ds)
dimensionedScalar asin(const dimensionedScalar &ds)
dimensionedScalar exp(const dimensionedScalar &ds)
const dimensionSet & dimless
dimensionedScalar tan(const dimensionedScalar &ds)
dimensionedScalar pos0(const dimensionedScalar &ds)
dimensionedScalar sign(const dimensionedScalar &ds)
void add(GeometricField< typename typeOfSum< Type1, Type2 >::type, GeoMesh, PrimitiveField1 > &gf, const GeometricField< Type1, GeoMesh, PrimitiveField2 > &gf1, const GeometricField< Type2, GeoMesh, PrimitiveField3 > &gf2)
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)
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 divide(pointPatchField< Type > &f, const pointPatchField< Type > &f1, const pointPatchField< scalar > &f2)
void pow6(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
dimensionedScalar log(const dimensionedScalar &ds)
dimensionedScalar y1(const dimensionedScalar &ds)
dimensionedScalar negPart(const dimensionedScalar &ds)
dimensionedScalar acosh(const dimensionedScalar &ds)
void pow5(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
tmp< DimensionedField< scalar, GeoMesh, Field > > jn(const int n, const DimensionedField< scalar, GeoMesh, PrimitiveField > &dsf)
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)
tmp< DimensionedField< typename powProduct< Type, r >::type, GeoMesh, Field > > pow(const DimensionedField< Type, GeoMesh, PrimitiveField > &df, typename powProduct< Type, r >::type)
tmp< DimensionedField< scalar, GeoMesh, Field > > atan2(const DimensionedField< scalar, GeoMesh, PrimitiveField1 > &dsf1, const DimensionedField< scalar, GeoMesh, PrimitiveField2 > &dsf2)
void multiply(pointPatchField< Type > &f, const pointPatchField< scalar > &f1, const pointPatchField< Type > &f2)
dimensionedScalar neg0(const dimensionedScalar &ds)
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)
tmp< DimensionedField< scalar, GeoMesh, Field > > yn(const int n, const DimensionedField< scalar, GeoMesh, PrimitiveField > &dsf)
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)