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 \ 231 template<class Type, template<class> class PatchField, class GeoMesh> \ 232 dimensioned<ReturnType> Func \ 234 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1 \ 242 #undef UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY 245 #define UNARY_REDUCTION_FUNCTION(ReturnType, Func, gFunc) \ 247 template<class Type, template<class> class PatchField, class GeoMesh> \ 248 dimensioned<ReturnType> Func \ 250 const GeometricField<Type, PatchField, GeoMesh>& f1 \ 253 template<class Type, template<class> class PatchField, class GeoMesh> \ 254 dimensioned<ReturnType> Func \ 256 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1 \ 263 #undef UNARY_REDUCTION_FUNCTION 280 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
283 GeometricField<Type, PatchField, GeoMesh>& result,
284 const GeometricField<Type, PatchField, GeoMesh>& f1,
288 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
289 tmp<GeometricField<Type, PatchField, GeoMesh>>
292 const GeometricField<Type, PatchField, GeoMesh>& f1,
296 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
297 tmp<GeometricField<Type, PatchField, GeoMesh>>
300 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1,
329 #define PRODUCT_OPERATOR(product, Op, OpFunc) \ 332 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 336 <typename product<Type1, Type2>::type, PatchField, GeoMesh>& result, \ 337 const GeometricField<Type1, PatchField, GeoMesh>& f1, \ 338 const GeometricField<Type2, PatchField, GeoMesh>& f2 \ 342 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 346 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 350 const GeometricField<Type1, PatchField, GeoMesh>& f1, \ 351 const GeometricField<Type2, PatchField, GeoMesh>& f2 \ 355 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 359 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 363 const GeometricField<Type1, PatchField, GeoMesh>& f1, \ 364 const tmp<GeometricField<Type2, PatchField, GeoMesh>>& tf2 \ 368 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 372 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 376 const tmp<GeometricField<Type1, PatchField, GeoMesh>>& tf1, \ 377 const GeometricField<Type2, PatchField, GeoMesh>& f2 \ 381 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \ 385 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \ 389 const tmp<GeometricField<Type1, PatchField, GeoMesh>>& tf1, \ 390 const tmp<GeometricField<Type2, PatchField, GeoMesh>>& tf2 \ 394 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 398 <typename product<Type, Form>::type, PatchField, GeoMesh>& result, \ 399 const GeometricField<Type, PatchField, GeoMesh>& f1, \ 400 const dimensioned<Form>& dvs \ 404 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 408 <typename product<Type, Form>::type, PatchField, GeoMesh> \ 412 const GeometricField<Type, PatchField, GeoMesh>& f1, \ 413 const dimensioned<Form>& dvs \ 421 class Type, template<class> class PatchField, \ 427 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 431 const GeometricField<Type, PatchField, GeoMesh>& f1, \ 432 const VectorSpace<Form,Cmpt,nCmpt>& vs \ 436 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 440 <typename product<Type, Form>::type, PatchField, GeoMesh> \ 444 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1, \ 445 const dimensioned<Form>& dvs \ 453 class Type, template<class> class PatchField, \ 459 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 463 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1, \ 464 const VectorSpace<Form,Cmpt,nCmpt>& vs \ 468 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 472 <typename product<Form, Type>::type, PatchField, GeoMesh>& result, \ 473 const dimensioned<Form>& dvs, \ 474 const GeometricField<Type, PatchField, GeoMesh>& f2 \ 478 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 482 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 486 const dimensioned<Form>& dvs, \ 487 const GeometricField<Type, PatchField, GeoMesh>& f2 \ 495 class Type, template<class> class PatchField, \ 501 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 505 const VectorSpace<Form,Cmpt,nCmpt>& vs, \ 506 const GeometricField<Type, PatchField, GeoMesh>& f2 \ 510 <class Form, class Type, template<class> class PatchField, class GeoMesh> \ 514 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 518 const dimensioned<Form>& dvs, \ 519 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf2 \ 527 class Type, template<class> class PatchField, \ 533 <typename product<Form, Type>::type, PatchField, GeoMesh> \ 537 const VectorSpace<Form,Cmpt,nCmpt>& vs, \ 538 const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf2 \ 549 #undef PRODUCT_OPERATOR dimensioned< typename typeOfMag< Type >::type > sumMag(const DimensionedField< Type, GeoMesh > &f1)
dimensioned< Type > average(const DimensionedField< Type, GeoMesh > &f1)
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &f1)
#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)
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)
Scalar specific part of the implementation of GeometricField.
Type gSum(const FieldField< Field, Type > &f)
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)
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)
typeOfMag< Type >::type gSumMag(const FieldField< Field, Type > &f)
Represents 0/1 range or concept. Used for tagged dispatch or clamping.
symmTypeOfRank< typename pTraits< arg1 >::cmptType, arg2 *direction(pTraits< arg1 >::rank) >::type type
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
#define UNARY_REDUCTION_FUNCTION(ReturnType, Func, gFunc)
#define PRODUCT_OPERATOR(product, Op, OpFunc)
dimensioned< scalarMinMax > minMaxMag(const DimensionedField< Type, GeoMesh > &f1)
Type gAverage(const FieldField< Field, Type > &f)
BINARY_TYPE_FUNCTION_FS(Type, Type, MinMax< Type >, clip)
#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)
dimensionSet transform(const dimensionSet &ds)
Return the argument; transformations do not change the dimensions.
#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