32 template<class Type, template<class> class PatchField, class GeoMesh> 42 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
51 const GeometricField<Type, PatchField, GeoMesh>& gf,
55 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
58 GeometricField<Type, PatchField, GeoMesh>& gf,
59 const GeometricField<Type, PatchField, GeoMesh>& gf1
65 template<
class>
class PatchField,
72 const GeometricField<Type, PatchField, GeoMesh>& gf1
78 template<
class>
class PatchField,
89 const GeometricField<Type, PatchField, GeoMesh>& gf,
96 template<
class>
class PatchField,
107 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf,
111 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
116 const GeometricField<Type, PatchField, GeoMesh>& gf1
119 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
129 sqr(
const GeometricField<Type, PatchField, GeoMesh>& gf);
131 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
141 sqr(
const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf);
143 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
147 const GeometricField<Type, PatchField, GeoMesh>& gf
150 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
154 const GeometricField<Type, PatchField, GeoMesh>& gf
157 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
161 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf
164 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
168 const GeometricField<Type, PatchField, GeoMesh>& gf
171 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
175 const GeometricField<Type, PatchField, GeoMesh>& gf
178 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
182 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf
185 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
194 const GeometricField<Type, PatchField, GeoMesh>& gf
197 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
207 cmptAv(
const GeometricField<Type, PatchField, GeoMesh>& gf);
209 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
219 cmptAv(
const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf);
222 #define UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY(returnType, func, binaryOp) \ 224 template<class Type, template<class> class PatchField, class GeoMesh> \ 225 dimensioned<returnType> func \ 227 const GeometricField<Type, PatchField, GeoMesh>& gf \ 230 template<class Type, template<class> class PatchField, class GeoMesh> \ 231 dimensioned<returnType> func \ 233 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf1 \ 241 #undef UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY 244 #define UNARY_REDUCTION_FUNCTION(returnType, func, gFunc) \ 246 template<class Type, template<class> class PatchField, class GeoMesh> \ 247 dimensioned<returnType> func \ 249 const GeometricField<Type, PatchField, GeoMesh>& gf \ 252 template<class Type, template<class> class PatchField, class GeoMesh> \ 253 dimensioned<returnType> func \ 255 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf1 \ 262 #undef UNARY_REDUCTION_FUNCTION 292 #define PRODUCT_OPERATOR(product, op, opFunc) \ 295 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 299 <typename product<Type1, Type2>::type, PatchField, GeoMesh>& gf, \ 300 const GeometricField<Type1, PatchField, GeoMesh>& gf1, \ 301 const GeometricField<Type2, PatchField, GeoMesh>& gf2 \ 305 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 309 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 313 const GeometricField<Type1, PatchField, GeoMesh>& gf1, \ 314 const GeometricField<Type2, PatchField, GeoMesh>& gf2 \ 318 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 322 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 326 const GeometricField<Type1, PatchField, GeoMesh>& gf1, \ 327 const tmp<GeometricField<Type2, PatchField, GeoMesh>>& tgf2 \ 331 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 335 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 339 const tmp<GeometricField<Type1, PatchField, GeoMesh>>& tgf1, \ 340 const GeometricField<Type2, PatchField, GeoMesh>& gf2 \ 344 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 348 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 352 const tmp<GeometricField<Type1, PatchField, GeoMesh>>& tgf1, \ 353 const tmp<GeometricField<Type2, PatchField, GeoMesh>>& tgf2 \ 357 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 361 <typename product<Type, Form>::type, PatchField, GeoMesh>& gf, \ 362 const GeometricField<Type, PatchField, GeoMesh>& gf1, \ 363 const dimensioned<Form>& dvs \ 367 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 371 <typename product<Type, Form>::type, PatchField, GeoMesh> \ 375 const GeometricField<Type, PatchField, GeoMesh>& gf1, \ 376 const dimensioned<Form>& dvs \ 384 class Type, template<class> class PatchField, \ 390 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 394 const GeometricField<Type, PatchField, GeoMesh>& gf1, \ 395 const VectorSpace<Form,Cmpt,nCmpt>& vs \ 399 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 403 <typename product<Type, Form>::type, PatchField, GeoMesh> \ 407 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf1, \ 408 const dimensioned<Form>& dvs \ 416 class Type, template<class> class PatchField, \ 422 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 426 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf1, \ 427 const VectorSpace<Form,Cmpt,nCmpt>& vs \ 431 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 435 <typename product<Form, Type>::type, PatchField, GeoMesh>& gf, \ 436 const dimensioned<Form>& dvs, \ 437 const GeometricField<Type, PatchField, GeoMesh>& gf1 \ 441 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 445 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 449 const dimensioned<Form>& dvs, \ 450 const GeometricField<Type, PatchField, GeoMesh>& gf1 \ 458 class Type, template<class> class PatchField, \ 464 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 468 const VectorSpace<Form,Cmpt,nCmpt>& vs, \ 469 const GeometricField<Type, PatchField, GeoMesh>& gf1 \ 473 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 477 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 481 const dimensioned<Form>& dvs, \ 482 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf1 \ 490 class Type, template<class> class PatchField, \ 496 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 500 const VectorSpace<Form,Cmpt,nCmpt>& vs, \ 501 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf1 \ 512 #undef PRODUCT_OPERATOR void divide(FieldField< Field, Type > &f, const FieldField< Field, Type > &f1, const FieldField< Field, scalar > &f2)
#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)
MinMax< scalar > scalarMinMax
A scalar min/max range.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
Field< Type >::cmptType cmptType
Component type of the field elements.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
#define BINARY_TYPE_OPERATOR_SF(ReturnType, Type1, Type2, Op, OpName, OpFunc)
#define BINARY_TYPE_OPERATOR_FS(ReturnType, Type1, Type2, Op, OpName, OpFunc)
void cross(FieldField< Field1, typename crossProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
typeOfRank< typename pTraits< arg1 >::cmptType, direction(pTraits< arg1 >::rank)+direction(pTraits< arg2 >::rank) >::type type
#define BINARY_TYPE_FUNCTION(ReturnType, Type1, Type2, Func)
void dotdot(FieldField< Field1, typename scalarProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
void subtract(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
void outer(FieldField< Field1, typename outerProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
void dot(FieldField< Field1, typename innerProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
dimensioned< Type > cmptDivide(const dimensioned< Type > &, const dimensioned< Type > &)
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &df)
#define PRODUCT_OPERATOR(product, op, opFunc)
MinMax< label > minMax(const labelHashSet &set)
Find the min/max values of labelHashSet.
#define BINARY_FUNCTION(ReturnType, Type1, Type2, Func)
Scalar specific part of the implementation of GeometricField.
Type gSum(const FieldField< Field, Type > &f)
dimensioned< Type > average(const DimensionedField< Type, GeoMesh > &df)
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
dimensioned< Type > cmptMultiply(const dimensioned< Type > &, const dimensioned< Type > &)
void add(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
typeOfMag< Type >::type gSumMag(const FieldField< Field, Type > &f)
dimensioned< typename typeOfMag< Type >::type > sumMag(const DimensionedField< Type, GeoMesh > &df)
symmTypeOfRank< typename pTraits< arg1 >::cmptType, arg2 *direction(pTraits< arg1 >::rank) >::type type
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
void negate(FieldField< Field, Type > &res, const FieldField< Field, Type > &f)
Type gAverage(const FieldField< Field, Type > &f)
#define UNARY_OPERATOR(ReturnType, Type1, Op, OpFunc, Dfunc)
#define UNARY_REDUCTION_FUNCTION(returnType, func, gFunc)
dimensionSet transform(const dimensionSet &ds)
Return the argument; transformations do not change the dimensions.
void component(FieldField< Field, typename FieldField< Field, Type >::cmptType > &sf, const FieldField< Field, Type > &f, const direction d)
tmp< DimensionedField< typename DimensionedField< Type, GeoMesh >::cmptType, GeoMesh >> cmptAv(const DimensionedField< Type, GeoMesh > &df)
#define UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY(returnType, func, binaryOp)
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
dimensioned< scalarMinMax > minMaxMag(const DimensionedField< Type, GeoMesh > &df)
pTraits< typename pTraits< arg1 >::cmptType >::magType type