|
Neko 1.99.9
A portable framework for high-order spectral element flow simulations
|
Explicit wall model based on Model-II from Cai and Sagaut (2021). More...


Public Member Functions | |
| procedure, pass(this) | init (this, scheme_name, coef, msk, facet, json) |
| Initialise the wall model from the case file. | |
| procedure, pass(this) | partial_init (this, coef, scheme_name, json) |
| Partially initialise the wall model from the case file. | |
| procedure, pass(this) | finalize (this, msk, facet, bc_name, user) |
| Finalise allocation of derived data structures. | |
| procedure, pass(this) | init_from_components (this, scheme_name, coef, msk, facet, sampler, kappa, b, p, s) |
| Initialise the wall model from explicit components. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure, pass(this) | compute_nu_and_rho (this) |
| Compute wall-node viscosity and density samples. | |
| procedure, pass(this) | compute (this, t, tstep) |
| Evaluate wall shear stresses. | |
| procedure, pass(this) | init_base (this, scheme_name, coef, msk, facet, sampler) |
| Constructor for the wall_model_t (base) class. | |
| procedure, pass(this) | partial_init_base (this, coef, scheme_name, json) |
Base type implementation of the deferred partial_init. | |
| procedure, pass(this) | finalize_base (this, msk, facet, bc_name, user) |
Base type implementation of the deferred finilize. | |
| procedure, pass(this) | free_base (this) |
| Destructor for the wall_model_t (base) class. | |
| procedure, pass(this) | compute_mag_field (this) |
| Compute the wall shear stress's magnitude. | |
| procedure(wall_model_init), deferred, pass | init (this, scheme_name, coef, msk, facet, json) |
| The common constructor. | |
| procedure(wall_model_partial_init), deferred, pass | partial_init (this, coef, scheme_name, json) |
A part of the constructor that parses the JSON without initializing the base wall_model_t type. Used in wall_model_bc_t during the init stage of the bc construction. So, in this routine you cannot use the bc mask and facets. The construction can be finished by calling finalize_base. This generally follows the same pattern as in bc_t. | |
| procedure(wall_model_finalize), deferred, pass | finalize (this, msk, facet, bc_name, user) |
Finalization of the partial construction, similar to bc_t. | |
| procedure(wall_model_free), deferred, pass | free (this) |
| Destructor. | |
| procedure(wall_model_compute), deferred, pass | compute (this, t, tstep) |
| Compute the wall shear stress. | |
| procedure, pass(this) | setup_geometry (this) |
| Build geometry shared by wall models and samplers. | |
| procedure, pass(this) | validate_single_sample (this) |
| Check that n_samples is one. | |
Public Attributes | |
| real(kind=rp) | kappa = 0.41_rp |
| The von Karman coefficient. | |
| real(kind=rp) | b = 5.2_rp |
| The log-law intercept. | |
| real(kind=rp) | p = 1.138_rp |
| Blending exponent. | |
| real(kind=rp) | s = 217.8_rp |
| Blending scale. | |
| type(vector_t) | nu |
| The kinematic viscosity. | |
| type(vector_t) | rho_w |
| The fluid density at the boundary. | |
| type(vector_t) | u_s |
| type(vector_t) | v_s |
| type(vector_t) | w_s |
| type(coef_t), pointer | coef => null() |
| SEM coefficients. | |
| type(dofmap_t), pointer | dof => null() |
| Map of degrees of freedom. | |
| type(field_t), pointer | mu => null() |
| The dynamic viscosity of the fluid. | |
| type(field_t), pointer | rho => null() |
| The density of the fluid. | |
| character(len=:), allocatable | scheme_name |
| The name of the scheme for which the wall model is used. This is used to identify the name of the mu an rho fields in the registry. | |
| integer, dimension(:), pointer | msk => null() |
| The boundary condition mask. Stores the array size at index zero! | |
| type(c_ptr) | msk_d = C_NULL_PTR |
| integer, dimension(:), pointer | facet => null() |
| The boundary condition facet ids. Stores the array size at index zero! | |
| type(vector_t) | tau_x |
| The x component of the shear stress. | |
| type(vector_t) | tau_y |
| The y component of the shear stress. | |
| type(vector_t) | tau_z |
| The z component of the shear stress. | |
| type(vector_t) | n_x |
| The x component of the normal. | |
| type(vector_t) | n_y |
| The y component of the normal. | |
| type(vector_t) | n_z |
| The z component of the normal. | |
| class(wall_sampler_t), allocatable | sampler |
| Strategy used to sample solution fields away from the wall. | |
| integer | n_nodes = 0 |
| Number of nodes in the boundary. | |
| type(field_t), pointer | tau_field => null() |
| The 3D field with the computed stress magnitude at the boundary. | |
Reference: https://doi.org/10.1063/5.0048563
Definition at line 60 of file cai_sagaut_model_ii.f90.
| procedure, pass(this) cai_sagaut_model_ii::cai_sagaut_model_ii_t::compute | ( | class(cai_sagaut_model_ii_t), intent(inout) | this, |
| real(kind=rp), intent(in) | t, | ||
| integer, intent(in) | tstep | ||
| ) |
| t | The current physical time. |
| tstep | The current time-step number. |
Definition at line 90 of file cai_sagaut_model_ii.f90.
|
pure virtualinherited |
Definition at line 117 of file wall_model.f90.
|
inherited |
Definition at line 103 of file wall_model.f90.
| procedure, pass(this) cai_sagaut_model_ii::cai_sagaut_model_ii_t::compute_nu_and_rho | ( | class(cai_sagaut_model_ii_t), intent(inout) | this | ) |
Definition at line 87 of file cai_sagaut_model_ii.f90.
| procedure, pass(this) cai_sagaut_model_ii::cai_sagaut_model_ii_t::finalize | ( | class(cai_sagaut_model_ii_t), intent(inout) | this, |
| integer, dimension(:), intent(in) | msk, | ||
| integer, dimension(:), intent(in) | facet, | ||
| character(len=*), intent(in), optional | bc_name, | ||
| type(user_t), intent(in), optional, target | user | ||
| ) |
| msk | The wall-point mask. |
| facet | The wall-point facet indices. |
Definition at line 80 of file cai_sagaut_model_ii.f90.
|
pure virtualinherited |
Definition at line 113 of file wall_model.f90.
|
inherited |
Definition at line 99 of file wall_model.f90.
| procedure, pass(this) cai_sagaut_model_ii::cai_sagaut_model_ii_t::free | ( | class(cai_sagaut_model_ii_t), intent(inout) | this | ) |
Definition at line 85 of file cai_sagaut_model_ii.f90.
|
pure virtualinherited |
Definition at line 115 of file wall_model.f90.
|
inherited |
Definition at line 101 of file wall_model.f90.
| procedure, pass(this) cai_sagaut_model_ii::cai_sagaut_model_ii_t::init | ( | class(cai_sagaut_model_ii_t), intent(inout) | this, |
| character(len=*), intent(in) | scheme_name, | ||
| type(coef_t), intent(in) | coef, | ||
| integer, dimension(:), intent(in) | msk, | ||
| integer, dimension(:), intent(in) | facet, | ||
| type(json_file), intent(inout) | json | ||
| ) |
| scheme_name | The solver scheme name. |
| coef | The SEM coefficients. |
| msk | The wall-point mask. |
| facet | The wall-point facet indices. |
| json | The case-file parameters for this wall model. |
Definition at line 76 of file cai_sagaut_model_ii.f90.
|
pure virtualinherited |
Definition at line 105 of file wall_model.f90.
|
inherited |
| coef | SEM coefficients. |
| msk | The underlying mask of the boundary condition. |
| facet,The | underlying facet index list of the boundary condition. |
| scheme_name | The name of the scheme for which the wall model is used. |
| sampler | Configured sampling strategy; ownership is transferred. |
Definition at line 95 of file wall_model.f90.
| procedure, pass(this) cai_sagaut_model_ii::cai_sagaut_model_ii_t::init_from_components | ( | class(cai_sagaut_model_ii_t), intent(inout) | this, |
| character(len=*), intent(in) | scheme_name, | ||
| type(coef_t), intent(in) | coef, | ||
| integer, dimension(:), intent(in) | msk, | ||
| integer, dimension(:), intent(in) | facet, | ||
| class(wall_sampler_t), intent(inout), allocatable | sampler, | ||
| real(kind=rp), intent(in) | kappa, | ||
| real(kind=rp), intent(in) | b, | ||
| real(kind=rp), intent(in) | p, | ||
| real(kind=rp), intent(in) | s | ||
| ) |
| scheme_name | The solver scheme name. |
| coef | The SEM coefficients. |
| msk | The wall-point mask. |
| facet | The wall-point facet indices. |
| sampler | The sampling strategy. Ownership is transferred. |
| kappa | The von Karman coefficient. |
| B | The log-law intercept. |
| p | The blending exponent. |
| s | The blending scale. |
Definition at line 82 of file cai_sagaut_model_ii.f90.
| procedure, pass(this) cai_sagaut_model_ii::cai_sagaut_model_ii_t::partial_init | ( | class(cai_sagaut_model_ii_t), intent(inout) | this, |
| type(coef_t), intent(in) | coef, | ||
| character(len=*), intent(in) | scheme_name, | ||
| type(json_file), intent(inout) | json | ||
| ) |
| coef | The SEM coefficients. |
| json | The case-file parameters for this wall model. |
Definition at line 78 of file cai_sagaut_model_ii.f90.
|
pure virtualinherited |
Definition at line 111 of file wall_model.f90.
|
inherited |
| coef | SEM coefficients. |
| The | name of the scheme for which the wall model is used. |
| json | A dictionary with parameters. |
Definition at line 97 of file wall_model.f90.
|
inherited |
Definition at line 119 of file wall_model.f90.
|
inherited |
Definition at line 121 of file wall_model.f90.
Definition at line 64 of file cai_sagaut_model_ii.f90.
Definition at line 59 of file wall_model.f90.
Definition at line 61 of file wall_model.f90.
Definition at line 74 of file wall_model.f90.
Definition at line 62 of file cai_sagaut_model_ii.f90.
Definition at line 71 of file wall_model.f90.
|
inherited |
Definition at line 72 of file wall_model.f90.
Definition at line 63 of file wall_model.f90.
|
inherited |
Definition at line 90 of file wall_model.f90.
|
inherited |
Definition at line 82 of file wall_model.f90.
|
inherited |
Definition at line 84 of file wall_model.f90.
|
inherited |
Definition at line 86 of file wall_model.f90.
| type(vector_t) cai_sagaut_model_ii::cai_sagaut_model_ii_t::nu |
Definition at line 70 of file cai_sagaut_model_ii.f90.
Definition at line 66 of file cai_sagaut_model_ii.f90.
Definition at line 65 of file wall_model.f90.
| type(vector_t) cai_sagaut_model_ii::cai_sagaut_model_ii_t::rho_w |
Definition at line 72 of file cai_sagaut_model_ii.f90.
Definition at line 68 of file cai_sagaut_model_ii.f90.
|
inherited |
Definition at line 88 of file wall_model.f90.
|
inherited |
Definition at line 69 of file wall_model.f90.
Definition at line 92 of file wall_model.f90.
|
inherited |
Definition at line 76 of file wall_model.f90.
|
inherited |
Definition at line 78 of file wall_model.f90.
|
inherited |
Definition at line 80 of file wall_model.f90.
| type(vector_t) cai_sagaut_model_ii::cai_sagaut_model_ii_t::u_s |
Definition at line 73 of file cai_sagaut_model_ii.f90.
| type(vector_t) cai_sagaut_model_ii::cai_sagaut_model_ii_t::v_s |
Definition at line 73 of file cai_sagaut_model_ii.f90.
| type(vector_t) cai_sagaut_model_ii::cai_sagaut_model_ii_t::w_s |
Definition at line 73 of file cai_sagaut_model_ii.f90.