Go to the source code of this file.
Functions | |
| double | ApplyLESTestFilter (LESTestFilterKernel kernel, double values[3][3][3], double weights[3][3][3]) |
| Applies a numerical "test filter" to a 3x3x3 stencil of data points. | |
| PetscErrorCode | ApplyLESTestFilterSymTensor (LESTestFilterKernel kernel, SymTensor values[3][3][3], double weights[3][3][3], SymTensor *filtered) |
| Applies the test filter to all six components of a symmetric tensor. | |
| double ApplyLESTestFilter | ( | LESTestFilterKernel | kernel, |
| double | values[3][3][3], | ||
| double | weights[3][3][3] | ||
| ) |
Applies a numerical "test filter" to a 3x3x3 stencil of data points.
EXPLANATION of "Test Filter": In the dynamic Smagorinsky LES model the model coefficient is not prescribed. It is calculated dynamically by sampling the turbulent energy cascade at two different scales. The first scale is the grid filter itself, implicit in the discretization. The second, larger scale is this explicit "test filter". By comparing how the resolved flow behaves at the two scales, the model determines how much dissipation the unresolved motions require.
The kernel is selected by the caller rather than read from the simulation context, so a filter can be exercised on 27 numbers without a live run.
| [in] | kernel | Discrete stencil to apply. |
| [in] | values | The 3x3x3 array of scalar values at the stencil points, indexed [k][j][i] in the DMDA convention. |
| [in] | weights | The 3x3x3 array of cell volume weights. Ignored by LES_TEST_FILTER_SIMPSON_IK, which assumes uniform spacing in its homogeneous plane. |
Applies a numerical "test filter" to a 3x3x3 stencil of data points.
Full API contract (arguments, ownership, side effects) is documented with the header declaration in include/Filter.h.
Definition at line 123 of file Filter.c.
| PetscErrorCode ApplyLESTestFilterSymTensor | ( | LESTestFilterKernel | kernel, |
| SymTensor | values[3][3][3], | ||
| double | weights[3][3][3], | ||
| SymTensor * | filtered | ||
| ) |
Applies the test filter to all six components of a symmetric tensor.
Filtering is linear, so applying it componentwise is exact; this wrapper exists so callers state the intent once instead of repeating six near-identical calls whose only difference is easy to mistype.
| [in] | kernel | Discrete stencil to apply. |
| [in] | values | Per-stencil-point tensors, indexed [k][j][i]. |
| [in] | weights | Cell volume weights over the same stencil. |
| [out] | filtered | Componentwise filtered tensor. |
Applies the test filter to all six components of a symmetric tensor.
Full API contract (arguments, ownership, side effects) is documented with the header declaration in include/Filter.h.
Definition at line 147 of file Filter.c.