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>& f1,
55 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
58 GeometricField<Type, PatchField, GeoMesh>& result,
59 const GeometricField<Type, PatchField, GeoMesh>& f1
65 template<
class>
class PatchField,
73 const GeometricField<Type, PatchField, GeoMesh>& f1
79 template<
class>
class PatchField,
90 const GeometricField<Type, PatchField, GeoMesh>& f1,
97 template<
class>
class PatchField,
108 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1,
112 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
117 const GeometricField<Type, PatchField, GeoMesh>& gf1
120 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
130 sqr(
const GeometricField<Type, PatchField, GeoMesh>& f1);
132 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
142 sqr(
const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1);
144 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
148 const GeometricField<Type, PatchField, GeoMesh>& f1
151 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
155 const GeometricField<Type, PatchField, GeoMesh>& f1
158 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
162 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1
165 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
169 const GeometricField<Type, PatchField, GeoMesh>& tf1
172 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
176 const GeometricField<Type, PatchField, GeoMesh>& f1
179 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
183 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1
186 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
195 const GeometricField<Type, PatchField, GeoMesh>& f1
198 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
208 cmptAv(
const GeometricField<Type, PatchField, GeoMesh>& f1);
210 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
220 cmptAv(
const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1);
223 #define UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY(ReturnType, Func, BinaryOp) \ 225 template<class Type, template<class> class PatchField, class GeoMesh> \ 226 dimensioned<ReturnType> Func \ 228 const GeometricField<Type, PatchField, GeoMesh>& f1, \ 229 const label comm = UPstream::worldComm \ 232 template<class Type, template<class> class PatchField, class GeoMesh> \ 233 dimensioned<ReturnType> Func \ 235 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1, \ 236 const label comm = UPstream::worldComm \ 244 #undef UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY 247 #define UNARY_REDUCTION_FUNCTION(ReturnType, Func) \ 250 template<class Type, template<class> class PatchField, class GeoMesh> \ 251 dimensioned<ReturnType> Func \ 253 const GeometricField<Type, PatchField, GeoMesh>& f1, \ 254 const label comm = UPstream::worldComm \ 257 template<class Type, template<class> class PatchField, class GeoMesh> \ 258 dimensioned<ReturnType> Func \ 260 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1, \ 261 const label comm = UPstream::worldComm \ 268 #undef UNARY_REDUCTION_FUNCTION 285 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
288 GeometricField<Type, PatchField, GeoMesh>& result,
289 const GeometricField<Type, PatchField, GeoMesh>& f1,
293 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
294 tmp<GeometricField<Type, PatchField, GeoMesh>>
297 const GeometricField<Type, PatchField, GeoMesh>& f1,
301 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
302 tmp<GeometricField<Type, PatchField, GeoMesh>>
305 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1,
334 #define PRODUCT_OPERATOR(product, Op, OpFunc) \ 337 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 341 <typename product<Type1, Type2>::type, PatchField, GeoMesh>& result, \ 342 const GeometricField<Type1, PatchField, GeoMesh>& f1, \ 343 const GeometricField<Type2, PatchField, GeoMesh>& f2 \ 347 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 351 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 355 const GeometricField<Type1, PatchField, GeoMesh>& f1, \ 356 const GeometricField<Type2, PatchField, GeoMesh>& f2 \ 360 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 364 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 368 const GeometricField<Type1, PatchField, GeoMesh>& f1, \ 369 const tmp<GeometricField<Type2, PatchField, GeoMesh>>& tf2 \ 373 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 377 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 381 const tmp<GeometricField<Type1, PatchField, GeoMesh>>& tf1, \ 382 const GeometricField<Type2, PatchField, GeoMesh>& f2 \ 386 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 390 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 394 const tmp<GeometricField<Type1, PatchField, GeoMesh>>& tf1, \ 395 const tmp<GeometricField<Type2, PatchField, GeoMesh>>& tf2 \ 399 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 403 <typename product<Type, Form>::type, PatchField, GeoMesh>& result, \ 404 const GeometricField<Type, PatchField, GeoMesh>& f1, \ 405 const dimensioned<Form>& dvs \ 409 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 413 <typename product<Type, Form>::type, PatchField, GeoMesh> \ 417 const GeometricField<Type, PatchField, GeoMesh>& f1, \ 418 const dimensioned<Form>& dvs \ 426 class Type, template<class> class PatchField, \ 432 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 436 const GeometricField<Type, PatchField, GeoMesh>& f1, \ 437 const VectorSpace<Form,Cmpt,nCmpt>& vs \ 441 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 445 <typename product<Type, Form>::type, PatchField, GeoMesh> \ 449 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1, \ 450 const dimensioned<Form>& dvs \ 458 class Type, template<class> class PatchField, \ 464 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 468 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1, \ 469 const VectorSpace<Form,Cmpt,nCmpt>& vs \ 473 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 477 <typename product<Form, Type>::type, PatchField, GeoMesh>& result, \ 478 const dimensioned<Form>& dvs, \ 479 const GeometricField<Type, PatchField, GeoMesh>& f2 \ 483 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 487 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 491 const dimensioned<Form>& dvs, \ 492 const GeometricField<Type, PatchField, GeoMesh>& f2 \ 500 class Type, template<class> class PatchField, \ 506 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 510 const VectorSpace<Form,Cmpt,nCmpt>& vs, \ 511 const GeometricField<Type, PatchField, GeoMesh>& f2 \ 515 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 519 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 523 const dimensioned<Form>& dvs, \ 524 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf2 \ 532 class Type, template<class> class PatchField, \ 538 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 542 const VectorSpace<Form,Cmpt,nCmpt>& vs, \ 543 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf2 \ 554 #undef PRODUCT_OPERATOR #define BINARY_OPERATOR(ReturnType, Type1, Type2, Op, OpName, OpFunc)
void divide(DimensionedField< Type, GeoMesh > &result, const DimensionedField< Type, GeoMesh > &f1, const DimensionedField< scalar, GeoMesh > &f2)
MinMax< scalar > scalarMinMax
A scalar min/max range.
tmp< DimensionedField< typename DimensionedField< Type, GeoMesh >::cmptType, GeoMesh >> cmptAv(const DimensionedField< Type, GeoMesh > &f1)
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)
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &f1, const label comm)
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 > &)
#define UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY(ReturnType, Func, BinaryOp)
MinMax< label > minMax(const labelHashSet &set)
Find the min/max values of labelHashSet.
#define BINARY_FUNCTION(ReturnType, Type1, Type2, Func)
dimensioned< Type > average(const DimensionedField< Type, GeoMesh > &f1, const label comm)
dimensioned< scalarMinMax > minMaxMag(const DimensionedField< Type, GeoMesh > &f1, const label comm)
Scalar specific part of the implementation of GeometricField.
#define BINARY_TYPE_FUNCTION_FS(ReturnType, Type1, Type2, Func)
#define UNARY_REDUCTION_FUNCTION(ReturnType, Func)
void negate(DimensionedField< Type, GeoMesh > &result, const DimensionedField< Type, GeoMesh > &f1)
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)
refinementData transform(const tensor &, const refinementData val)
No-op rotational transform for base types.
dimensioned< Type > lerp(const dimensioned< Type > &a, const dimensioned< Type > &b, const scalar t)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Represents 0/1 range or concept. Used for tagged dispatch or clamping.
symmTypeOfRank< typename pTraits< arg1 >::cmptType, arg2 *direction(pTraits< arg1 >::rank) >::type type
dimensioned< typename typeOfMag< Type >::type > sumMag(const DimensionedField< Type, GeoMesh > &f1, const label comm)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
#define PRODUCT_OPERATOR(product, Op, OpFunc)
#define UNARY_OPERATOR(ReturnType, Type1, Op, OpFunc, Dfunc)
#define TERNARY_TYPE_FUNCTION_FFS(ReturnType, Type1, Type2, Type3, Func)
void multiply(DimensionedField< Type, GeoMesh > &result, const DimensionedField< Type, GeoMesh > &f1, const DimensionedField< scalar, GeoMesh > &f2)
#define TERNARY_FUNCTION(ReturnType, Type1, Type2, Type3, Func)
void component(FieldField< Field, typename FieldField< Field, Type >::cmptType > &sf, const FieldField< Field, Type > &f, const direction d)
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
dimensionSet clamp(const dimensionSet &a, const dimensionSet &range)
pTraits< typename pTraits< arg1 >::cmptType >::magType type