Large Eddy Simulation models. More...
Namespaces | |
| module | enum_les |
| Enumeration for Large Eddy Simulation models. | |
| module | variables_turbulence_les |
| Define variables associated to the Large Eddy Simulation models. | |
Functions | |
| subroutine, public | mod_compute_filtered_fields::compute_filtered_scalar_field (filtered_field, field, filter_ratio) |
| Apply an explicit filter to a scalar field using 1D mask. | |
| subroutine | mod_compute_les_subgrid_viscosity::compute_les_subgrid_viscosity (velocity) |
| Compute (dynamic) turbulent viscosity thanks to Large-Eddy Simulations models. | |
| double precision function | mod_wale_functions::compute_g_square (velocity_gradient, ii, jj) |
| Compute the variables necessary to calculate the turbulent viscosity in the WALE model. | |
Large Eddy Simulation models.
| subroutine, public mod_compute_filtered_fields::compute_filtered_scalar_field | ( | double precision, dimension(:,:,:), intent(out) | filtered_field, |
| double precision, dimension(:,:,:), intent(in) | field, | ||
| integer, intent(in) | filter_ratio ) |
Apply an explicit filter to a scalar field using 1D mask.
The multidimensional filter is constructed as the tensor product of a 1D discrete mask mask_filter given in module private variable. Available filter-to-grid ratio are Δ/Δx=1,2,4,8,16. Composite Simpson is using as quadrature rule with the following number of intervall used for each filter-to-grid ratioi (Δ/Δx), respectivelly (1,1,2,4,8). The filtering is performed successively along each spatial direction, resulting in an efficient implementation compared to full stencil naive implementation (avoiding cache misses).
For a 1D mask \( w \) of size \( N \), the 2D kernel is:
\[ W(i,j) = \frac{w_i \, w_j}{n} \,. \]
with \( n \) the norm of the kernel
\[ {\left(\sum_i w_i\right)^2} \,. \]
For a single 2Δ interval, the 1D Simpson weights are: \( w = \{1,4,1\} / 6. \) In 2D or 3D, the weights become the tensor product of the 1D Simpson weights. For instance, in 2D:
This produces the classical 3×3 kernel:
!! / 1 4 1 \ !! | 4 16 4 | / 36 !! \ 1 4 1 / !!
| [in,out] | filtered_field | Filtered field. |
| [in] | field | Input vector field to be filtered. |
| [in] | filter_ratio | Filter-to-grid ratio. |
| double precision function mod_wale_functions::compute_g_square | ( | double precision, dimension(:,:), intent(in) | velocity_gradient, |
| integer, intent(in) | ii, | ||
| integer, intent(in) | jj ) |
Compute the variables necessary to calculate the turbulent viscosity in the WALE model.
| subroutine mod_compute_les_subgrid_viscosity::compute_les_subgrid_viscosity | ( | type(t_face_field), intent(in) | velocity | ) |
Compute (dynamic) turbulent viscosity thanks to Large-Eddy Simulations models.