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 | ||
| logical, | public | :: | wall_supplied | = | .false. |
Wall the Mason-Thomson damping measures from, supplied by the case through configure_wall_damping (the ABL case uses its kappa and z0) |
|
| real(kind=dp), | public | :: | von_karman_constant | = | 0._dp | ||
| real(kind=dp), | public | :: | roughness_length | = | 0._dp | ||
| logical, | public | :: | abl_wall_boundary_enabled | = | .false. | ||
| real(kind=dp), | public | :: | abl_wall_sampling_height | = | 0._dp |
y-vertex the wall model samples the velocity at (1 is the wall). |
|
| integer, | public | :: | abl_wall_sample_plane | = | 2 | ||
| 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 :: configure_wall_damping | |
| procedure, public :: configure_abl_wall_boundary | |
| 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 |
Neutral rough-wall drag coefficient, (kappa/ln(h/z0))2, so that the wall stress is drag_coeffu|u| at the sampling height h.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | kappa | |||
| real(kind=dp), | intent(in) | :: | roughness_length | |||
| real(kind=dp), | intent(in) | :: | sampling_height |
Neutral rough-wall drag law. Returns the wall value of the SGS stress tau_xy (and tau_yz), signed so that a positive sample gives a positive stress and hence a momentum sink once differentiated.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | u_sample | |||
| real(kind=dp), | intent(in) | :: | w_sample | |||
| real(kind=dp), | intent(in) | :: | kappa | |||
| real(kind=dp), | intent(in) | :: | roughness_length | |||
| real(kind=dp), | intent(in) | :: | sampling_height | |||
| real(kind=dp), | intent(out) | :: | tau_x | |||
| real(kind=dp), | intent(out) | :: | tau_z |