The reference function object computes a field whose values are offset to a reference value obtained by sampling the field at a user-specified location.
The field values are calculated using:
\[ \text{ref}_c = s(f_{c}(t) - f_p + f_{off}) \]
where
| \( \text{ref}_c \) | = | Field values at cell |
| \( s \) | = | Optional scale factor (default = 1) |
| \( f_{c}(t) \) | = | Current field values at cell at this time |
| \( f_p \) | = | Field value at position |
| \( f_{off} \) | = | Offset field value (default = 0) |
| Operand | Type | Location |
|---|---|---|
| input | {vol,surface}<Type>Field | $FOAM_CASE/<time>/<inpField> |
| output file | - | - |
| output field | {vol,surface}<Type>Field | $FOAM_CASE/<time>/<outField> |
where <Type>=Scalar/Vector/SphericalTensor/SymmTensor/Tensor.
Example of the reference function object by using functions sub-dictionary in system/controlDict file:
reference1
{
// Mandatory entries (unmodifiable)
type reference;
libs (fieldFunctionObjects);
// Mandatory (inherited) entries (runtime modifiable)
field <inpFfield>;
// Optional entries (runtime modifiable)
position (0 0 0);
scale 1.0;
offset 0.0;
interpolationScheme cell;
// Optional (inherited) entries
result <fieldResult>;
region region0;
enabled true;
log true;
timeStart 0;
timeEnd 1000;
executeControl timeStep;
executeInterval 1;
writeControl timeStep;
writeInterval 1;
}
where the entries mean:
| Property | Description | Type | Required | Default |
|---|---|---|---|---|
| type | Type name: reference | word | yes | - |
| libs | Library name: fieldFunctionObjects | word | yes | - |
| field | Name of the operand field | word | yes | - |
| position | Position to sample | vector | no | <not used> |
| scale | Scale value | scalar | no | 1.0 |
| offset | Offset value | scalar | no | 0.0 |
| interpolationScheme | Sampling scheme | word | no | cell |
The inherited entries are elaborated in:
Example by using the postProcess utility:
postProcess -func "reference(<field>)"
Tutorial:
Source code:
History