Foam::FieldOps Namespace Reference

Various utility functions to work on Fields. More...

Functions

template<class Tout , class T1 , class UnaryOp >
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. More...
 
template<class Tout , class T1 , class T2 , class BinaryOp >
void assign (Field< Tout > &result, const Field< T1 > &a, const Field< T2 > &b, const BinaryOp &bop)
 Populate a field as the result of a binary operation on two inputs. More...
 
template<class T , class BinaryOp >
void ternary (Field< T > &result, const Field< T > &a, const Field< T > &b, const BinaryOp &bop)
 
template<class T , class BoolListType , class FlipOp >
void ternarySelect (Field< T > &result, const BoolListType &cond, const Field< T > &a, const Field< T > &b, const FlipOp &flip)
 
template<class T , class FlipOp >
void ternarySelect (Field< T > &result, const bitSet &cond, const Field< T > &a, const Field< T > &b, const FlipOp &flip)
 
template<class T , class BoolListType >
void ternarySelect (Field< T > &result, const BoolListType &cond, const Field< T > &a, const Field< T > &b)
 Emulated ternary operation, without condition flipping. More...
 
template<class T >
void ternarySelect (Field< T > &result, const bitSet &cond, const Field< T > &a, const Field< T > &b)
 Emulated ternary operation, without condition flipping. More...
 
template<class T1 , class T2 >
Tuple2< T1, T2 > findMinData (const Field< T1 > &vals, const Field< T2 > &data)
 Locate the min value in a field and return it and associated data. More...
 
template<class T1 , class T2 >
Tuple2< T1, T2 > findMaxData (const Field< T1 > &vals, const Field< T2 > &data)
 Locate the max value in a field and return it and associated data. More...
 
template<class Tout , class T1 , class UnaryOp , template< class > class PatchField, class GeoMesh >
void assign (GeometricField< Tout, PatchField, GeoMesh > &result, const GeometricField< T1, PatchField, GeoMesh > &a, const UnaryOp &op)
 Populate a geometric field as the result of a unary operation on an input. More...
 
template<class Tout , class T1 , class T2 , class BinaryOp , template< class > class PatchField, class GeoMesh >
void assign (GeometricField< Tout, PatchField, GeoMesh > &result, const GeometricField< T1, PatchField, GeoMesh > &a, const GeometricField< T2, PatchField, GeoMesh > &b, const BinaryOp &bop)
 Populate a geometric field from the binary operation on two inputs. More...
 
template<class T , class BinaryOp , template< class > class PatchField, class GeoMesh >
void ternary (GeometricField< T, PatchField, GeoMesh > &result, const GeometricField< T, PatchField, GeoMesh > &a, const GeometricField< T, PatchField, GeoMesh > &b, const BinaryOp &bop)
 
template<class T , class BoolType , class FlipOp , template< class > class PatchField, class GeoMesh >
void ternarySelect (GeometricField< T, PatchField, GeoMesh > &result, const GeometricField< BoolType, PatchField, GeoMesh > &cond, const GeometricField< T, PatchField, GeoMesh > &a, const GeometricField< T, PatchField, GeoMesh > &b, const FlipOp &flip)
 
template<class Tout , class T1 , class UnaryOp >
void assign (pointPatchField< Tout > &result, const pointPatchField< T1 > &a, const UnaryOp &op)
 
template<class Tout , class T1 , class T2 , class BinaryOp >
void assign (pointPatchField< Tout > &result, const pointPatchField< T1 > &a, const pointPatchField< T2 > &b, const BinaryOp &bop)
 
template<class T , class BinaryOp >
void ternary (pointPatchField< T > &result, const pointPatchField< T > &a, const pointPatchField< T > &b, const BinaryOp &bop)
 
template<class T , class BoolType , class FlipOp >
void ternarySelect (pointPatchField< T > &result, const pointPatchField< BoolType > &cond, const pointPatchField< T > &a, const pointPatchField< T > &b, const FlipOp &flip)
 

Detailed Description

Various utility functions to work on Fields.

Source files

Function Documentation

◆ assign() [1/6]

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.

It is permissible for inputs/outputs to refer to the same field(s), but partially overlapping regions are ill-defined.

Examples,

boolField result(sfield1.size());
FieldOps::assign(result, sfield1, lessOp1<scalar>(0.5));
FieldOps::assign(result, lfield1, std::logical_not<bool>());

Example of using the Random::uniformGeneratorOp unary operator to populate a random field,

(
sfield,
sfield,
Random::uniformGeneratorOp<scalar>(-15, 25)
);
Note
wraps std::transform

Definition at line 35 of file FieldOps.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, Foam::nl, and Foam::transform().

Referenced by assign(), fileName::assign(), keyType::assign(), wordRe::assign(), coordinateSystem::coordinateSystem(), exprDriver::fill_random(), word::operator=(), keyType::operator=(), wordRe::operator=(), fileName::operator=(), wordRe::set(), and parseDriver::setInternalFieldResult().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ assign() [2/6]

void assign ( Field< Tout > &  result,
const Field< T1 > &  a,
const Field< T2 > &  b,
const BinaryOp &  bop 
)

Populate a field as the result of a binary operation on two inputs.

It is permissible for inputs/outputs to refer to the same field(s), but partially overlapping regions are ill-defined.

Examples,

FieldOps::assign(result, sfield1, sfield2, std::less<scalar>());
FieldOps::assign(result, lfield1, lfield2, std::logical_or<bool>());
Note
wraps std::transform

Definition at line 57 of file FieldOps.C.

References Foam::abort(), Foam::constant::physicoChemical::b, Foam::FatalError, FatalErrorInFunction, Foam::nl, and Foam::transform().

Here is the call graph for this function:

◆ ternary() [1/3]

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.

Examples,

FieldOps::ternary(result, sfield1, sfield2, std::less<scalar>());

Definition at line 80 of file FieldOps.C.

References Foam::abort(), Foam::constant::physicoChemical::b, Foam::FatalError, FatalErrorInFunction, forAll, and Foam::nl.

Referenced by ternary().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ternarySelect() [1/6]

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.

The meaning of the conditional is adjusted by the flip operation, which is typically Foam::noOp() or Foam::flipBoolOp()

Similar parameter requirements as Foam::subset()

Examples,

FieldOps::ternarySelect(result, selector, sfield1, sfield2);

Definition at line 106 of file FieldOps.C.

References Foam::abort(), Foam::constant::physicoChemical::b, Foam::FatalError, FatalErrorInFunction, forAll, and Foam::nl.

Referenced by ternarySelect().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ternarySelect() [2/6]

void ternarySelect ( Field< T > &  result,
const bitSet 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.

The meaning of the conditional is adjusted by the flip operation, which is typically Foam::noOp() or Foam::flipBoolOp()

Definition at line 133 of file FieldOps.C.

References Foam::abort(), Foam::constant::physicoChemical::b, Foam::FatalError, FatalErrorInFunction, forAll, and Foam::nl.

Here is the call graph for this function:

◆ ternarySelect() [3/6]

void Foam::FieldOps::ternarySelect ( Field< T > &  result,
const BoolListType &  cond,
const Field< T > &  a,
const Field< T > &  b 
)

Emulated ternary operation, without condition flipping.

Definition at line 168 of file FieldOps.H.

References Foam::constant::physicoChemical::b, and ternarySelect().

Here is the call graph for this function:

◆ ternarySelect() [4/6]

void Foam::FieldOps::ternarySelect ( Field< T > &  result,
const bitSet cond,
const Field< T > &  a,
const Field< T > &  b 
)

Emulated ternary operation, without condition flipping.

Definition at line 182 of file FieldOps.H.

References Foam::constant::physicoChemical::b, and ternarySelect().

Here is the call graph for this function:

◆ findMinData()

Tuple2<T1,T2> Foam::FieldOps::findMinData ( const Field< T1 > &  vals,
const Field< T2 > &  data 
)

Locate the min value in a field and return it and associated data.

This can be used, for example, to return a value/position combination.

Referenced by exprDriver::getPositionOfMinimum().

Here is the caller graph for this function:

◆ findMaxData()

Tuple2<T1,T2> Foam::FieldOps::findMaxData ( const Field< T1 > &  vals,
const Field< T2 > &  data 
)

Locate the max value in a field and return it and associated data.

This can be used, for example, to return a value/position combination.

Referenced by exprDriver::getPositionOfMaximum().

Here is the caller graph for this function:

◆ assign() [3/6]

void Foam::FieldOps::assign ( GeometricField< Tout, PatchField, GeoMesh > &  result,
const GeometricField< T1, PatchField, GeoMesh > &  a,
const UnaryOp &  op 
)

Populate a geometric field as the result of a unary operation on an input.

It is permissible for inputs/outputs to refer to the same field(s), but partially overlapping regions are ill-defined.

Definition at line 63 of file GeometricFieldOps.H.

References assign(), GeometricField< Type, PatchField, GeoMesh >::boundaryField(), GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), GeometricField< Type, PatchField, GeoMesh >::primitiveField(), and GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef().

Here is the call graph for this function:

◆ assign() [4/6]

void Foam::FieldOps::assign ( GeometricField< Tout, PatchField, GeoMesh > &  result,
const GeometricField< T1, PatchField, GeoMesh > &  a,
const GeometricField< T2, PatchField, GeoMesh > &  b,
const BinaryOp &  bop 
)

Populate a geometric field from the binary operation on two inputs.

It is permissible for inputs/outputs to refer to the same field(s), but partially overlapping regions are ill-defined.

Definition at line 101 of file GeometricFieldOps.H.

References assign(), Foam::constant::physicoChemical::b, GeometricField< Type, PatchField, GeoMesh >::boundaryField(), GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), GeometricField< Type, PatchField, GeoMesh >::primitiveField(), and GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef().

Here is the call graph for this function:

◆ ternary() [2/3]

void Foam::FieldOps::ternary ( GeometricField< T, PatchField, GeoMesh > &  result,
const GeometricField< T, PatchField, GeoMesh > &  a,
const GeometricField< T, PatchField, GeoMesh > &  b,
const BinaryOp &  bop 
)

Emulate a ternary operation, selecting values from a or b depending on the binary predicate.

Definition at line 141 of file GeometricFieldOps.H.

References Foam::constant::physicoChemical::b, GeometricField< Type, PatchField, GeoMesh >::boundaryField(), GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), GeometricField< Type, PatchField, GeoMesh >::primitiveField(), GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef(), and ternary().

Here is the call graph for this function:

◆ ternarySelect() [5/6]

void Foam::FieldOps::ternarySelect ( GeometricField< T, PatchField, GeoMesh > &  result,
const GeometricField< BoolType, PatchField, GeoMesh > &  cond,
const GeometricField< T, PatchField, GeoMesh > &  a,
const GeometricField< T, PatchField, GeoMesh > &  b,
const FlipOp &  flip 
)

Emulate a ternary operation, selecting field values from a or b depending on the conditional.

Since boolean fields are not normally used, a flip operation is a general requirement.

Definition at line 184 of file GeometricFieldOps.H.

References Foam::constant::physicoChemical::b, GeometricField< Type, PatchField, GeoMesh >::boundaryField(), GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), GeometricField< Type, PatchField, GeoMesh >::primitiveField(), GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef(), and ternarySelect().

Here is the call graph for this function:

◆ assign() [5/6]

void Foam::FieldOps::assign ( pointPatchField< Tout > &  result,
const pointPatchField< T1 > &  a,
const UnaryOp &  op 
)
inline

Definition at line 360 of file pointPatchFieldFunctions.H.

◆ assign() [6/6]

void Foam::FieldOps::assign ( pointPatchField< Tout > &  result,
const pointPatchField< T1 > &  a,
const pointPatchField< T2 > &  b,
const BinaryOp &  bop 
)
inline

Definition at line 370 of file pointPatchFieldFunctions.H.

◆ ternary() [3/3]

void Foam::FieldOps::ternary ( pointPatchField< T > &  result,
const pointPatchField< T > &  a,
const pointPatchField< T > &  b,
const BinaryOp &  bop 
)
inline

Definition at line 380 of file pointPatchFieldFunctions.H.

◆ ternarySelect() [6/6]

void Foam::FieldOps::ternarySelect ( pointPatchField< T > &  result,
const pointPatchField< BoolType > &  cond,
const pointPatchField< T > &  a,
const pointPatchField< T > &  b,
const FlipOp &  flip 
)
inline

Definition at line 390 of file pointPatchFieldFunctions.H.

Foam::FieldOps::ternary
void ternary(Field< T > &result, const Field< T > &a, const Field< T > &b, const BinaryOp &bop)
Definition: FieldOps.C:80
Foam::FieldOps::ternarySelect
void ternarySelect(Field< T > &result, const BoolListType &cond, const Field< T > &a, const Field< T > &b, const FlipOp &flip)
Definition: FieldOps.C:106
Foam::boolField
Field< bool > boolField
Specialisation of Field<T> for bool.
Definition: boolField.H:51
Foam::FieldOps::assign
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.
Definition: FieldOps.C:35