Shared physics for explicit eddy-viscosity LES models.
Derivatives and data movement are orchestrated here, while pointwise operations are dispatched to the selected computational backend.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(les_config_t), | intent(in) | :: | config |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=20), | public | :: | model | = | 'none' | ||
| real(kind=dp), | public | :: | smagorinsky_constant | = | 0.14_dp | ||
| logical, | public | :: | wall_damping | = | .false. | ||
| real(kind=dp), | public | :: | wall_damping_n | = | 3._dp | ||
| real(kind=dp), | public | :: | von_karman_constant | = | 0.4_dp | ||
| real(kind=dp), | public | :: | roughness_length | = | 0._dp | ||
| class(field_t), | public, | pointer | :: | nut | => | null() | |
| class(field_t), | public, | pointer | :: | mixing_length_sq | => | null() |
| private pure function les_init (config) |
| procedure, public :: mixing_length | |
| procedure, public :: nut_from_gradient | |
| procedure, public :: compute_nut | |
| procedure, public :: apply_sgs_stress | |
| procedure, public :: finalise |
Volume-equivalent grid-filter width, Delta=(dxdydz)^(1/3).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | spacing(3) |
|S|=sqrt(2 S_ij S_ij), where S_ij=(du_i/dx_j+du_j/dx_i)/2.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | velocity_gradient(3,3) |
Mason-Thomson blend used by Incompact3d's ABL Smagorinsky path.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | delta | |||
| real(kind=dp), | intent(in) | :: | wall_distance | |||
| real(kind=dp), | intent(in) | :: | smagorinsky_constant | |||
| real(kind=dp), | intent(in) | :: | von_karman_constant | |||
| real(kind=dp), | intent(in) | :: | exponent | |||
| real(kind=dp), | intent(in) | :: | roughness_length |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | velocity_gradient(3,3) | |||
| real(kind=dp), | intent(in) | :: | length |