Go to the documentation of this file.
30 #define TEMPLATE template<template<class> class PatchField, class GeoMesh>
40 template<
template<
class>
class PatchField,
class GeoMesh>
53 template<
template<
class>
class PatchField,
class GeoMesh>
54 tmp<GeometricField<scalar, PatchField, GeoMesh>>
stabilise
66 "stabilise(" + gsf.name() +
',' + ds.
name() +
')',
83 template<
template<
class>
class PatchField,
class GeoMesh>
84 tmp<GeometricField<scalar, PatchField, GeoMesh>>
stabilise
97 "stabilise(" + gsf.name() +
',' + ds.
name() +
')',
123 template<
template<
class>
class PatchField,
class GeoMesh>
136 template<
template<
class>
class PatchField,
class GeoMesh>
137 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
143 if (!gsf1.dimensions().dimensionless())
146 <<
"Base field is not dimensionless: " << gsf1.dimensions()
150 if (!gsf2.dimensions().dimensionless())
153 <<
"Exponent field is not dimensionless: " << gsf2.dimensions()
163 "pow(" + gsf1.name() +
',' + gsf2.name() +
')',
174 pow(tPow.
ref(), gsf1, gsf2);
180 template<
template<
class>
class PatchField,
class GeoMesh>
181 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
189 if (!gsf1.dimensions().dimensionless())
192 <<
"Base field is not dimensionless: " << gsf1.dimensions()
196 if (!gsf2.dimensions().dimensionless())
199 <<
"Exponent field is not dimensionless: " << gsf2.dimensions()
208 "pow(" + gsf1.name() +
',' + gsf2.name() +
')',
213 pow(tPow.
ref(), gsf1, gsf2);
221 template<
template<
class>
class PatchField,
class GeoMesh>
222 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
230 if (!gsf1.dimensions().dimensionless())
233 <<
"Base field is not dimensionless: " << gsf1.dimensions()
237 if (!gsf2.dimensions().dimensionless())
240 <<
"Exponent field is not dimensionless: " << gsf2.dimensions()
249 "pow(" + gsf1.name() +
',' + gsf2.name() +
')',
254 pow(tPow.
ref(), gsf1, gsf2);
261 template<
template<
class>
class PatchField,
class GeoMesh>
262 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
271 if (!gsf1.dimensions().dimensionless())
274 <<
"Base field is not dimensionless: " << gsf1.dimensions()
278 if (!gsf2.dimensions().dimensionless())
281 <<
"Exponent field is not dimensionless: " << gsf2.dimensions()
288 <scalar, scalar, scalar, scalar, PatchField,
GeoMesh>::
New
292 "pow(" + gsf1.name() +
',' + gsf2.name() +
')',
297 pow(tPow.
ref(), gsf1, gsf2);
306 template<
template<
class>
class PatchField,
class GeoMesh>
319 template<
template<
class>
class PatchField,
class GeoMesh>
320 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
329 <<
"Exponent is not dimensionless: " << ds.
dimensions()
339 "pow(" + gsf.name() +
',' + ds.
name() +
')',
346 pow(gsf.dimensions(), ds)
355 template<
template<
class>
class PatchField,
class GeoMesh>
356 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
365 <<
"Exponent is not dimensionless: " << ds.
dimensions()
376 "pow(" + gsf.name() +
',' + ds.
name() +
')',
377 pow(gsf.dimensions(), ds)
388 template<
template<
class>
class PatchField,
class GeoMesh>
389 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
398 template<
template<
class>
class PatchField,
class GeoMesh>
399 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
409 template<
template<
class>
class PatchField,
class GeoMesh>
422 template<
template<
class>
class PatchField,
class GeoMesh>
423 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
432 <<
"Base scalar is not dimensionless: " << ds.
dimensions()
436 if (!gsf.dimensions().dimensionless())
439 <<
"Exponent field is not dimensionless: " << gsf.dimensions()
449 "pow(" + ds.
name() +
',' + gsf.name() +
')',
466 template<
template<
class>
class PatchField,
class GeoMesh>
467 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
478 <<
"Base scalar is not dimensionless: " << ds.
dimensions()
482 if (!gsf.dimensions().dimensionless())
485 <<
"Exponent field is not dimensionless: " << gsf.dimensions()
494 "pow(" + ds.
name() +
',' + gsf.name() +
')',
506 template<
template<
class>
class PatchField,
class GeoMesh>
507 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
516 template<
template<
class>
class PatchField,
class GeoMesh>
517 tmp<GeometricField<scalar, PatchField, GeoMesh>>
pow
529 template<
template<
class>
class PatchField,
class GeoMesh>
552 template<
template<
class>
class PatchField,
class GeoMesh>
553 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
565 "atan2(" + gsf1.name() +
',' + gsf2.name() +
')',
572 atan2(gsf1.dimensions(), gsf2.dimensions())
582 template<
template<
class>
class PatchField,
class GeoMesh>
583 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
596 "atan2(" + gsf1.name() +
',' + gsf2.name() +
')',
597 atan2(gsf1.dimensions(), gsf2.dimensions())
609 template<
template<
class>
class PatchField,
class GeoMesh>
610 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
623 "atan2(" + gsf1.name() +
',' + gsf2.name() +
')',
624 atan2( gsf1.dimensions(), gsf2.dimensions())
635 template<
template<
class>
class PatchField,
class GeoMesh>
636 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
648 <scalar, scalar, scalar, scalar, PatchField,
GeoMesh>::
New
652 "atan2(" + gsf1.name() +
',' + gsf2.name() +
')',
653 atan2(gsf1.dimensions(), gsf2.dimensions())
666 template<
template<
class>
class PatchField,
class GeoMesh>
679 template<
template<
class>
class PatchField,
class GeoMesh>
680 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
692 "atan2(" + gsf.name() +
',' + ds.
name() +
')',
699 atan2(gsf.dimensions(), ds)
708 template<
template<
class>
class PatchField,
class GeoMesh>
709 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
722 "atan2(" + gsf.name() +
',' + ds.
name() +
')',
723 atan2(gsf.dimensions(), ds)
734 template<
template<
class>
class PatchField,
class GeoMesh>
735 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
744 template<
template<
class>
class PatchField,
class GeoMesh>
745 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
755 template<
template<
class>
class PatchField,
class GeoMesh>
768 template<
template<
class>
class PatchField,
class GeoMesh>
769 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
781 "atan2(" + ds.
name() +
',' + gsf.name() +
')',
788 atan2(ds, gsf.dimensions())
798 template<
template<
class>
class PatchField,
class GeoMesh>
799 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
812 "atan2(" + ds.
name() +
',' + gsf.name() +
')',
813 atan2(ds, gsf.dimensions())
824 template<
template<
class>
class PatchField,
class GeoMesh>
825 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
834 template<
template<
class>
class PatchField,
class GeoMesh>
835 tmp<GeometricField<scalar, PatchField, GeoMesh>>
atan2
888 #define BesselFunc(func) \
890 template<template<class> class PatchField, class GeoMesh> \
893 GeometricField<scalar, PatchField, GeoMesh>& gsf, \
895 const GeometricField<scalar, PatchField, GeoMesh>& gsf1 \
898 func(gsf.primitiveFieldRef(), n, gsf1.primitiveField()); \
899 func(gsf.boundaryFieldRef(), n, gsf1.boundaryField()); \
902 template<template<class> class PatchField, class GeoMesh> \
903 tmp<GeometricField<scalar, PatchField, GeoMesh>> func \
906 const GeometricField<scalar, PatchField, GeoMesh>& gsf \
909 if (!gsf.dimensions().dimensionless()) \
911 FatalErrorInFunction \
912 << "gsf not dimensionless" \
913 << abort(FatalError); \
916 tmp<GeometricField<scalar, PatchField, GeoMesh>> tFunc \
918 new GeometricField<scalar, PatchField, GeoMesh> \
922 #func "(" + gsf.name() + ')', \
933 func(tFunc.ref(), n, gsf); \
938 template<template<class> class PatchField, class GeoMesh> \
939 tmp<GeometricField<scalar, PatchField, GeoMesh>> func \
942 const tmp<GeometricField<scalar, PatchField, GeoMesh>>& tgsf \
945 const GeometricField<scalar, PatchField, GeoMesh>& gsf = tgsf(); \
947 if (!gsf.dimensions().dimensionless()) \
949 FatalErrorInFunction \
950 << " : gsf not dimensionless" \
951 << abort(FatalError); \
954 tmp<GeometricField<scalar, PatchField, GeoMesh>> tFunc \
959 #func "(" + gsf.name() + ')', \
964 func(tFunc.ref(), n, gsf); \
#define BINARY_TYPE_OPERATOR_SF(ReturnType, Type1, Type2, Op, OpName, OpFunc)
#define BINARY_OPERATOR(ReturnType, Type1, Type2, Op, OpName, OpFunc)
dimensionSet trans(const dimensionSet &ds)
Check the argument is dimensionless (for transcendental functions)
Defines the attributes of an object for which implicit objectRegistry management is supported,...
void subtract(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
dimensionedScalar tan(const dimensionedScalar &ds)
#define UNARY_FUNCTION(ReturnType, Type1, Func, Dfunc)
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
dimensionedScalar cosh(const dimensionedScalar &ds)
dimensionedScalar y1(const dimensionedScalar &ds)
A class for managing temporary objects.
dimensionedScalar sin(const dimensionedScalar &ds)
dimensionedScalar jn(const int n, const dimensionedScalar &ds)
dimensionedScalar posPart(const dimensionedScalar &ds)
const Internal::FieldType & primitiveField() const
Return a const-reference to the internal field.
dimensionedScalar atan2(const dimensionedScalar &x, const dimensionedScalar &y)
dimensionedScalar neg0(const dimensionedScalar &ds)
#define BINARY_TYPE_OPERATOR(ReturnType, Type1, Type2, Op, OpName, OpFunc)
const word & name() const
Return const reference to name.
Scalar specific part of the implementation of GeometricField.
const Type & value() const
Return const reference to value.
dimensionedScalar pos0(const dimensionedScalar &ds)
dimensionedScalar exp(const dimensionedScalar &ds)
dimensionedScalar sign(const dimensionedScalar &ds)
dimensionedScalar erf(const dimensionedScalar &ds)
void divide(FieldField< Field, Type > &f, const FieldField< Field, Type > &f1, const FieldField< Field, scalar > &f2)
dimensionedScalar pow025(const dimensionedScalar &ds)
dimensionedScalar atanh(const dimensionedScalar &ds)
dimensionedScalar lgamma(const dimensionedScalar &ds)
dimensionedScalar pow4(const dimensionedScalar &ds)
bool dimensionless() const
Return true if it is dimensionless.
dimensionedScalar pow6(const dimensionedScalar &ds)
dimensionedScalar tanh(const dimensionedScalar &ds)
dimensionedScalar pow3(const dimensionedScalar &ds)
tmp< DimensionedField< scalar, GeoMesh > > stabilise(const DimensionedField< scalar, GeoMesh > &dsf, const dimensioned< scalar > &ds)
dimensionedScalar log10(const dimensionedScalar &ds)
dimensionedScalar y0(const dimensionedScalar &ds)
dimensionedScalar erfc(const dimensionedScalar &ds)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
dimensionedScalar asinh(const dimensionedScalar &ds)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
void add(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
dimensionedScalar pow5(const dimensionedScalar &ds)
dimensionedScalar log(const dimensionedScalar &ds)
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
errorManipArg< error, int > exit(error &err, const int errNo=1)
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
dimensionedScalar yn(const int n, const dimensionedScalar &ds)
dimensionedScalar acosh(const dimensionedScalar &ds)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
dimensionedScalar negPart(const dimensionedScalar &ds)
Internal & ref(const bool updateAccessTime=true)
Return a reference to the dimensioned internal field.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensionedScalar j0(const dimensionedScalar &ds)
dimensionedScalar acos(const dimensionedScalar &ds)
dimensionedScalar atan(const dimensionedScalar &ds)
void multiply(FieldField< Field, Type > &f, const FieldField< Field, Type > &f1, const FieldField< Field, scalar > &f2)
const dimensionSet & dimensions() const
Return const reference to dimensions.
dimensionedScalar cbrt(const dimensionedScalar &ds)
Generic GeometricField class.
dimensionedScalar j1(const dimensionedScalar &ds)
dimensionedScalar neg(const dimensionedScalar &ds)
dimensionedScalar asin(const dimensionedScalar &ds)
const Boundary & boundaryField() const
Return const-reference to the boundary field.
const dimensionSet dimless
Dimensionless.
dimensionedScalar cos(const dimensionedScalar &ds)
dimensionedScalar pos(const dimensionedScalar &ds)
dimensionedScalar sinh(const dimensionedScalar &ds)