Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
LES Struct Reference

Eddy viscosity nu_t = C^2 Delta^2 D(g) (Vreman: c Delta^2 D(g)) of the resolved velocity gradient g[i][j] = d u_i / d x_j, with turbulent Prandtl and Schmidt numbers for the SGS heat and species fluxes (see docs/design/les.md). 2D gradients are those of a 3D flow with u_z = d/dz = 0. Plain aggregate, captured by value in kernels. More...

#include <les.h>

Public Member Functions

logging::Items summary () const
 
KOKKOS_INLINE_FUNCTION rtype nu_t (const double g[3][3], const rtype delta) const
 Kinematic eddy viscosity for the gradient g[i][j] = d u_i / d x_j and filter width delta.
 

Static Public Member Functions

static LES from_input (const toml::value &input)
 The [les] table of an input (see in_input).
 
static bool in_input (const toml::value &input)
 
static double scotti_factor (double h1, double h2, double h3)
 Scotti, Meneveau & Lilly's (1993) factor cosh(sqrt(4/27 ((ln a_1)^2 - ln a_1 ln a_2 + (ln a_2)^2))) for a cell of extents h_1 <= h_2 <= h_3, a_1 = h_1 / h_3, a_2 = h_2 / h_3.
 
static rtype default_constant (SGSModel model)
 Model constant by default: Lilly's C_s, Nicoud & Ducros's C_w, Vreman's c, Nicoud et al.'s C_sigma.
 
static KOKKOS_INLINE_FUNCTION double operator_of (const SGSModel model, const double g[3][3])
 D(g) of the model, the eddy viscosity for unit constant and filter width.
 
static KOKKOS_INLINE_FUNCTION double strain_squared (const double g[3][3])
 
static KOKKOS_INLINE_FUNCTION double smagorinsky (const double g[3][3])
 sqrt(2 S:S).
 
static KOKKOS_INLINE_FUNCTION double wale (const double g[3][3])
 (S^d:S^d)^(3/2) / ((S:S)^(5/2) + (S^d:S^d)^(5/4)), S^d the traceless symmetric part of g^2.
 
static KOKKOS_INLINE_FUNCTION double vreman (const double g[3][3])
 sqrt(B / (a:a)) with a_ij = d u_j / d x_i, b = a^T a and B its second invariant.
 
static KOKKOS_INLINE_FUNCTION void singular_values (const double g[3][3], double s[3])
 Singular values s1 >= s2 >= s3 >= 0 of g, the square roots of the eigenvalues l1 >= l2 >= l3 of G = g^T g. l1 comes from the trigonometric solution of the characteristic cubic (Nicoud et al. 2011, appendix); l2 and l3 from l2 + l3 = (I2 - l2 l3) / l1 and l2 l3 = det(g)^2 / l1 with the principal minors I2 of G, so that they keep their relative accuracy when small (s3 = 0 exactly for planar gradients, s2 = s3 = 0 for pure shear).
 
static KOKKOS_INLINE_FUNCTION double sigma (const double g[3][3])
 s3 (s1 - s2)(s2 - s3) / s1^2 of the singular values s of g.
 

Public Attributes

SGSModel model = SGSModel::SIGMA
 
rtype C = 1.35_r
 
rtype Pr_t = 0.9_r
 
rtype Sc_t = 0.9_r
 
bool scotti = false
 
bool dynamic = false
 

Detailed Description

Eddy viscosity nu_t = C^2 Delta^2 D(g) (Vreman: c Delta^2 D(g)) of the resolved velocity gradient g[i][j] = d u_i / d x_j, with turbulent Prandtl and Schmidt numbers for the SGS heat and species fluxes (see docs/design/les.md). 2D gradients are those of a 3D flow with u_z = d/dz = 0. Plain aggregate, captured by value in kernels.

Member Function Documentation

◆ default_constant()

rtype LES::default_constant ( SGSModel  model)
static

Model constant by default: Lilly's C_s, Nicoud & Ducros's C_w, Vreman's c, Nicoud et al.'s C_sigma.

◆ from_input()

LES LES::from_input ( const toml::value &  input)
static

The [les] table of an input (see in_input).

◆ in_input()

static bool LES::in_input ( const toml::value &  input)
inlinestatic

◆ nu_t()

KOKKOS_INLINE_FUNCTION rtype LES::nu_t ( const double  g[3][3],
const rtype  delta 
) const
inline

Kinematic eddy viscosity for the gradient g[i][j] = d u_i / d x_j and filter width delta.

◆ operator_of()

static KOKKOS_INLINE_FUNCTION double LES::operator_of ( const SGSModel  model,
const double  g[3][3] 
)
inlinestatic

D(g) of the model, the eddy viscosity for unit constant and filter width.

◆ scotti_factor()

double LES::scotti_factor ( double  h1,
double  h2,
double  h3 
)
static

Scotti, Meneveau & Lilly's (1993) factor cosh(sqrt(4/27 ((ln a_1)^2 - ln a_1 ln a_2 + (ln a_2)^2))) for a cell of extents h_1 <= h_2 <= h_3, a_1 = h_1 / h_3, a_2 = h_2 / h_3.

◆ sigma()

static KOKKOS_INLINE_FUNCTION double LES::sigma ( const double  g[3][3])
inlinestatic

s3 (s1 - s2)(s2 - s3) / s1^2 of the singular values s of g.

◆ singular_values()

static KOKKOS_INLINE_FUNCTION void LES::singular_values ( const double  g[3][3],
double  s[3] 
)
inlinestatic

Singular values s1 >= s2 >= s3 >= 0 of g, the square roots of the eigenvalues l1 >= l2 >= l3 of G = g^T g. l1 comes from the trigonometric solution of the characteristic cubic (Nicoud et al. 2011, appendix); l2 and l3 from l2 + l3 = (I2 - l2 l3) / l1 and l2 l3 = det(g)^2 / l1 with the principal minors I2 of G, so that they keep their relative accuracy when small (s3 = 0 exactly for planar gradients, s2 = s3 = 0 for pure shear).

◆ smagorinsky()

static KOKKOS_INLINE_FUNCTION double LES::smagorinsky ( const double  g[3][3])
inlinestatic

sqrt(2 S:S).

◆ strain_squared()

static KOKKOS_INLINE_FUNCTION double LES::strain_squared ( const double  g[3][3])
inlinestatic

◆ summary()

logging::Items LES::summary ( ) const

◆ vreman()

static KOKKOS_INLINE_FUNCTION double LES::vreman ( const double  g[3][3])
inlinestatic

sqrt(B / (a:a)) with a_ij = d u_j / d x_i, b = a^T a and B its second invariant.

◆ wale()

static KOKKOS_INLINE_FUNCTION double LES::wale ( const double  g[3][3])
inlinestatic

(S^d:S^d)^(3/2) / ((S:S)^(5/2) + (S^d:S^d)^(5/4)), S^d the traceless symmetric part of g^2.

Member Data Documentation

◆ C

rtype LES::C = 1.35_r

◆ dynamic

bool LES::dynamic = false

◆ model

SGSModel LES::model = SGSModel::SIGMA

◆ Pr_t

rtype LES::Pr_t = 0.9_r

◆ Sc_t

rtype LES::Sc_t = 0.9_r

◆ scotti

bool LES::scotti = false

The documentation for this struct was generated from the following files: