|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
Implements numerical filtering schemes for Large Eddy Simulation (LES). More...
Go to the source code of this file.
Macros | |
| #define | __FUNCT__ "ApplyLESTestFilter" |
Functions | |
| static double | ApplySimpsonRuleHomogeneousFilter (double values[3][3][3]) |
| (Internal) Applies a 2D homogeneous test filter in the i-k plane using Simpson's rule. | |
| static double | ApplyVolumeWeightedBoxFilter (double values[3][3][3], double weights[3][3][3]) |
| (Internal) Applies a volume-weighted 3D box filter to a 3x3x3 stencil. | |
| double | ApplyLESTestFilter (const SimCtx *simCtx, double values[3][3][3], double weights[3][3][3]) |
| Public interface for applying the LES test filter. | |
Implements numerical filtering schemes for Large Eddy Simulation (LES).
This file contains the functions necessary to apply a "test filter" to the resolved velocity field, which is a core component of the dynamic Smagorinsky turbulence model. The choice of filter (e.g., a general 3D box filter or a specialized 2D homogeneous filter) is determined by the simulation's configuration.
Definition in file Filter.c.
|
static |
(Internal) Applies a 2D homogeneous test filter in the i-k plane using Simpson's rule.
This is a specialized, high-accuracy filter designed for flow cases that are statistically homogeneous in two directions (e.g., the streamwise and spanwise directions of a channel flow). It uses a fixed-weight stencil based on Simpson's rule for numerical integration, which offers better spectral properties than a simple box filter. The weights are constant and do not depend on cell volume, assuming a uniform grid in the homogeneous plane.
Morinishi, Kera, & Vasilyev, "Skew-symmetric formulation for large eddy simulation of compressible turbulent flows," Journal of Computational Physics, 2004.
| values | The 3x3x3 array of scalar values from the local stencil. For this 2D filter, only the central j-plane (j-index = 1) is utilized. |
Definition at line 34 of file Filter.c.
|
static |
(Internal) Applies a volume-weighted 3D box filter to a 3x3x3 stencil.
This is the general-purpose filter for non-uniform, curvilinear grids. To correctly average a quantity over a space with varying cell sizes, the contribution of each point must be weighted by its associated volume (or, equivalently, 1/Jacobian).
The logic calculates a weighted average over eight 2x2x2 sub-cubes (or "octants") that surround the central node of the 3x3x3 stencil. This produces a filtered value representative of the larger volume covered by the test filter.
| values | The 3x3x3 array of scalar values at the stencil points. |
| weights | The 3x3x3 array of weights, where weight = 1.0 / cell_volume (i.e., the Jacobian). |
Definition at line 62 of file Filter.c.
| double ApplyLESTestFilter | ( | const SimCtx * | simCtx, |
| double | values[3][3][3], | ||
| double | weights[3][3][3] | ||
| ) |
Public interface for applying the LES test filter.
Applies a numerical "test filter" to a 3x3x3 stencil of data points.
Definition at line 145 of file Filter.c.