37#ifndef Foam_GeometricFieldOps_H
38#define Foam_GeometricFieldOps_H
59 class Tout,
class T1,
class UnaryOp,
60 template<
class>
class PatchField,
class GeoMesh
78 const label len = bfld.
size();
80 for (label i = 0; i < len; ++i)
102 class Tout,
class T1,
class T2,
class BinaryOp,
103 template<
class>
class PatchField,
class GeoMesh
123 const label len = bfld.
size();
125 for (label i = 0; i < len; ++i)
131 b.boundaryField()[i],
147 class T,
class BinaryOp,
148 template<
class>
class PatchField,
class GeoMesh
168 const label len = bfld.
size();
170 for (label i = 0; i < len; ++i)
176 b.boundaryField()[i],
195 class T,
class BoolType,
class FlipOp,
196 template<
class>
class PatchField,
class GeoMesh
218 const label len = bfld.
size();
220 for (label i = 0; i < len; ++i)
227 b.boundaryField()[i],
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
bool check() const
Helper: check if field has been evaluated. See instantiations.
static int debug
Enable debug.
Generic GeometricField class.
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field values.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
const Internal::FieldType & primitiveField() const noexcept
Return a const-reference to the internal field values.
void correctLocalBoundaryConditions()
Correct boundary conditions after a purely local operation.
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
label size() const noexcept
The number of entries in the list.
Various utility functions to work on Fields.
void assign(Field< Tout > &result, const Field< T1 > &a, const UnaryOp &op)
Populate a field as the result of a unary operation on an input.
void ternarySelect(Field< T > &result, const BoolListType &cond, const Field< T > &a, const Field< T > &b, const FlipOp &flip)
Emulate a ternary operation, selecting values from a or b depending on the conditional.
void ternary(Field< T > &result, const Field< T > &a, const Field< T > &b, const BinaryOp &bop)
Emulate a ternary operation, selecting values from a or b depending on the binary predicate.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)