32 template<class Type, template<class> class PatchField, class GeoMesh>
42template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
51 const GeometricField<Type, PatchField, GeoMesh>& gf,
55template<
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,
111template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
116 const GeometricField<Type, PatchField, GeoMesh>& gf1
119template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
129sqr(
const GeometricField<Type, PatchField, GeoMesh>& gf);
131template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
141sqr(
const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf);
143template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
147 const GeometricField<Type, PatchField, GeoMesh>& gf
150template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
151tmp<GeometricField<typename typeOfMag<Type>::type, PatchField, GeoMesh>>
154 const GeometricField<Type, PatchField, GeoMesh>& gf
157template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
158tmp<GeometricField<typename typeOfMag<Type>::type, PatchField, GeoMesh>>
161 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf
164template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
168 const GeometricField<Type, PatchField, GeoMesh>& gf
171template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
172tmp<GeometricField<typename typeOfMag<Type>::type, PatchField, GeoMesh>>
175 const GeometricField<Type, PatchField, GeoMesh>& gf
178template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
179tmp<GeometricField<typename typeOfMag<Type>::type, PatchField, GeoMesh>>
182 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf
185template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
194 const GeometricField<Type, PatchField, GeoMesh>& gf
197template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
207cmptAv(
const GeometricField<Type, PatchField, GeoMesh>& gf);
209template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
219cmptAv(
const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf);
222#define UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY(returnType, func, binaryOp) \
224template<class Type, template<class> class PatchField, class GeoMesh> \
225dimensioned<returnType> func \
227 const GeometricField<Type, PatchField, GeoMesh>& gf \
230template<class Type, template<class> class PatchField, class GeoMesh> \
231dimensioned<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) \
246template<class Type, template<class> class PatchField, class GeoMesh> \
247dimensioned<returnType> func \
249 const GeometricField<Type, PatchField, GeoMesh>& gf \
252template<class Type, template<class> class PatchField, class GeoMesh> \
253dimensioned<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
#define BINARY_FUNCTION(ReturnType, Type1, Type2, Func)
#define UNARY_OPERATOR(ReturnType, Type1, Op, OpFunc, Dfunc)
#define BINARY_OPERATOR(ReturnType, Type1, Type2, Op, OpName, OpFunc)
#define BINARY_TYPE_OPERATOR_SF(ReturnType, Type1, Type2, Op, OpName, OpFunc)
#define BINARY_TYPE_OPERATOR_FS(ReturnType, Type1, Type2, Op, OpName, OpFunc)
#define BINARY_TYPE_FUNCTION(ReturnType, Type1, Type2, Func)
#define UNARY_REDUCTION_FUNCTION(returnType, func, dfunc)
#define UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY(returnType, func, binaryOp)
Scalar specific part of the implementation of GeometricField.
Field< Type >::cmptType cmptType
The field component type.
typeOfRank< typenamepTraits< arg1 >::cmptType, direction(pTraits< arg1 >::rank)+direction(pTraits< arg2 >::rank)>::type type
symmTypeOfRank< typenamepTraits< arg1 >::cmptType, arg2 *direction(pTraits< arg1 >::rank)>::type type
pTraits< typenamepTraits< arg1 >::cmptType >::magType type
#define PRODUCT_OPERATOR(product, op, opFunc)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
Type gSum(const FieldField< Field, Type > &f)
dimensionSet transform(const dimensionSet &ds)
Return the argument; transformations do not change the dimensions.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
void component(FieldField< Field, typename FieldField< Field, Type >::cmptType > &sf, const FieldField< Field, Type > &f, const direction d)
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &df)
void subtract(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
dimensioned< Type > cmptDivide(const dimensioned< Type > &, const dimensioned< Type > &)
MinMax< scalar > scalarMinMax
A scalar min/max range.
dimensioned< Type > average(const DimensionedField< Type, GeoMesh > &df)
void dot(FieldField< Field1, typename innerProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
MinMax< label > minMax(const labelHashSet &set)
Find the min/max values of labelHashSet.
dimensioned< typename typeOfMag< Type >::type > sumMag(const DimensionedField< Type, GeoMesh > &df)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
void add(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
void negate(FieldField< Field, Type > &res, const FieldField< Field, Type > &f)
void multiply(FieldField< Field, Type > &f, const FieldField< Field, Type > &f1, const FieldField< Field, scalar > &f2)
Type gAverage(const FieldField< Field, Type > &f)
dimensioned< Type > cmptMultiply(const dimensioned< Type > &, const dimensioned< Type > &)
typeOfMag< Type >::type gSumMag(const FieldField< Field, Type > &f)
void dotdot(FieldField< Field1, typename scalarProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
void cross(FieldField< Field1, typename crossProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
tmp< DimensionedField< typename DimensionedField< Type, GeoMesh >::cmptType, GeoMesh > > cmptAv(const DimensionedField< Type, GeoMesh > &df)
dimensioned< scalarMinMax > minMaxMag(const DimensionedField< Type, GeoMesh > &df)
void divide(FieldField< Field, Type > &f, const FieldField< Field, Type > &f1, const FieldField< Field, scalar > &f2)
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
void outer(FieldField< Field1, typename outerProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)