Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
rough_log_law::rough_log_law_t Type Referenceabstract

Wall model based on the log-law for a rough wall. The formula defining the law is \( u^+ = log(z/z_0)/\kappa + B \). Here, \( z \) is the wall-normal distance, as per tradition in atmospheric sciences, where this law is often used. More...

Inheritance diagram for rough_log_law::rough_log_law_t:
Collaboration diagram for rough_log_law::rough_log_law_t:

Public Member Functions

procedure, pass(thisinit (this, scheme_name, coef, msk, facet, json)
 Constructor from JSON.
 
procedure, pass(thispartial_init (this, coef, scheme_name, json)
 Partial constructor from JSON, meant to work as the first stage of initialization before the finalize call.
 
procedure, pass(thisfinalize (this, msk, facet, bc_name, user)
 Finalize the construction using the mask and facet arrays of the bc.
 
procedure, pass(thisinit_from_components (this, scheme_name, coef, msk, facet, sampler, kappa, b, z0)
 Constructor from components.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thiscompute (this, t, tstep)
 Compute the wall shear stress.
 
procedure, pass(thisextract_properties (this)
 Extract the values of rho at the boundary.
 
procedure, pass(thisinit_base (this, scheme_name, coef, msk, facet, sampler)
 Constructor for the wall_model_t (base) class.
 
procedure, pass(thispartial_init_base (this, coef, scheme_name, json)
 Base type implementation of the deferred partial_init.
 
procedure, pass(thisfinalize_base (this, msk, facet, bc_name, user)
 Base type implementation of the deferred finilize.
 
procedure, pass(thisfree_base (this)
 Destructor for the wall_model_t (base) class.
 
procedure, pass(thiscompute_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(thissetup_geometry (this)
 Build geometry shared by wall models and samplers.
 
procedure, pass(thisvalidate_single_sample (this)
 Check that n_samples is one.
 

Public Attributes

real(kind=rp) kappa
 The von Karman coefficient.
 
real(kind=rp) b
 The log-law intercept.
 
real(kind=rp) z0
 The roughness height.
 
type(vector_trho_w
 
type(vector_tu_s
 The sampled velocity.
 
type(vector_tv_s
 
type(vector_tw_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_ttau_x
 The x component of the shear stress.
 
type(vector_ttau_y
 The y component of the shear stress.
 
type(vector_ttau_z
 The z component of the shear stress.
 
type(vector_tn_x
 The x component of the normal.
 
type(vector_tn_y
 The y component of the normal.
 
type(vector_tn_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.
 

Detailed Description

Definition at line 63 of file rough_log_law.f90.

Member Function/Subroutine Documentation

◆ compute() [1/2]

procedure, pass(this) rough_log_law::rough_log_law_t::compute ( class(rough_log_law_t), intent(inout this,
real(kind=rp), intent(in t,
integer, intent(in tstep 
)
Parameters
tThe time value.
tstepThe time iteration.

Definition at line 89 of file rough_log_law.f90.

◆ compute() [2/2]

procedure(wall_model_compute), deferred, pass wall_model::wall_model_t::compute ( class(wall_model_t), intent(inout this,
real(kind=rp), intent(in t,
integer, intent(in tstep 
)
pure virtualinherited

Definition at line 117 of file wall_model.f90.

◆ compute_mag_field()

procedure, pass(this) wall_model::wall_model_t::compute_mag_field ( class(wall_model_t), intent(inout this)
inherited

Definition at line 103 of file wall_model.f90.

◆ extract_properties()

procedure, pass(this) rough_log_law::rough_log_law_t::extract_properties ( class(rough_log_law_t), intent(inout this)

Definition at line 91 of file rough_log_law.f90.

◆ finalize() [1/2]

procedure, pass(this) rough_log_law::rough_log_law_t::finalize ( class(rough_log_law_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 
)
Parameters
mskThe boundary mask.
facetThe boundary facets.

Definition at line 82 of file rough_log_law.f90.

◆ finalize() [2/2]

procedure(wall_model_finalize), deferred, pass wall_model::wall_model_t::finalize ( class(wall_model_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 
)
pure virtualinherited

Definition at line 113 of file wall_model.f90.

◆ finalize_base()

procedure, pass(this) wall_model::wall_model_t::finalize_base ( class(wall_model_t), intent(inout this,
integer, dimension(0:), intent(in), target  msk,
integer, dimension(:), intent(in), target  facet,
character(len=*), intent(in), optional  bc_name,
type(user_t), intent(in), optional, target  user 
)
inherited

Definition at line 99 of file wall_model.f90.

◆ free() [1/2]

procedure, pass(this) rough_log_law::rough_log_law_t::free ( class(rough_log_law_t), intent(inout this)

Definition at line 87 of file rough_log_law.f90.

◆ free() [2/2]

procedure(wall_model_free), deferred, pass wall_model::wall_model_t::free ( class(wall_model_t), intent(inout this)
pure virtualinherited

Definition at line 115 of file wall_model.f90.

◆ free_base()

procedure, pass(this) wall_model::wall_model_t::free_base ( class(wall_model_t), intent(inout this)
inherited

Definition at line 101 of file wall_model.f90.

◆ init() [1/2]

procedure, pass(this) rough_log_law::rough_log_law_t::init ( class(rough_log_law_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 
)
Parameters
scheme_nameThe name of the scheme for which the wall model is used.
coefSEM coefficients.
mskThe boundary mask.
facetThe boundary facets.
jsonA dictionary with parameters.

Definition at line 77 of file rough_log_law.f90.

◆ init() [2/2]

procedure(wall_model_init), deferred, pass wall_model::wall_model_t::init ( class(wall_model_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 
)
pure virtualinherited

Definition at line 105 of file wall_model.f90.

◆ init_base()

procedure, pass(this) wall_model::wall_model_t::init_base ( class(wall_model_t), intent(inout this,
character(len=*)  scheme_name,
type(coef_t), intent(in), target  coef,
integer, dimension(0:), intent(in), target  msk,
integer, dimension(0:), intent(in), target  facet,
class(wall_sampler_t), intent(inout), allocatable  sampler 
)
inherited
Parameters
coefSEM coefficients.
mskThe underlying mask of the boundary condition.
facet,Theunderlying facet index list of the boundary condition.
scheme_nameThe name of the scheme for which the wall model is used.
samplerConfigured sampling strategy; ownership is transferred.

Definition at line 95 of file wall_model.f90.

◆ init_from_components()

procedure, pass(this) rough_log_law::rough_log_law_t::init_from_components ( class(rough_log_law_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 z0 
)
Parameters
scheme_nameThe name of the scheme for which the wall model is used.
coefSEM coefficients.
mskThe boundary mask.
facetThe boundary facets.
samplerThe sampling strategy. Ownership is transferred.
kappaThe von Karman coefficient.
BThe log-law intercept.
z0The roughness height.

Definition at line 84 of file rough_log_law.f90.

◆ partial_init() [1/2]

procedure, pass(this) rough_log_law::rough_log_law_t::partial_init ( class(rough_log_law_t), intent(inout this,
type(coef_t), intent(in coef,
character(len=*), intent(in scheme_name,
type(json_file), intent(inout json 
)
Parameters
coefSEM coefficients.
jsonA dictionary with parameters.

Definition at line 80 of file rough_log_law.f90.

◆ partial_init() [2/2]

procedure(wall_model_partial_init), deferred, pass wall_model::wall_model_t::partial_init ( class(wall_model_t), intent(inout this,
type(coef_t), intent(in coef,
character(len=*), intent(in scheme_name,
type(json_file), intent(inout json 
)
pure virtualinherited

Definition at line 111 of file wall_model.f90.

◆ partial_init_base()

procedure, pass(this) wall_model::wall_model_t::partial_init_base ( class(wall_model_t), intent(inout this,
type(coef_t), intent(in), target  coef,
character(len=*), intent(in scheme_name,
type(json_file), intent(inout json 
)
inherited
Parameters
coefSEM coefficients.
Thename of the scheme for which the wall model is used.
jsonA dictionary with parameters.

Definition at line 97 of file wall_model.f90.

◆ setup_geometry()

procedure, pass(this) wall_model::wall_model_t::setup_geometry ( class(wall_model_t), intent(inout this)
inherited

Definition at line 119 of file wall_model.f90.

◆ validate_single_sample()

procedure, pass(this) wall_model::wall_model_t::validate_single_sample ( class(wall_model_t), intent(inout this)
inherited

Definition at line 121 of file wall_model.f90.

Member Data Documentation

◆ b

real(kind=rp) rough_log_law::rough_log_law_t::b

Definition at line 68 of file rough_log_law.f90.

◆ coef

type(coef_t), pointer wall_model::wall_model_t::coef => null()
inherited

Definition at line 59 of file wall_model.f90.

◆ dof

type(dofmap_t), pointer wall_model::wall_model_t::dof => null()
inherited

Definition at line 61 of file wall_model.f90.

◆ facet

integer, dimension(:), pointer wall_model::wall_model_t::facet => null()
inherited

Definition at line 74 of file wall_model.f90.

◆ kappa

real(kind=rp) rough_log_law::rough_log_law_t::kappa

Definition at line 66 of file rough_log_law.f90.

◆ msk

integer, dimension(:), pointer wall_model::wall_model_t::msk => null()
inherited

Definition at line 71 of file wall_model.f90.

◆ msk_d

type(c_ptr) wall_model::wall_model_t::msk_d = C_NULL_PTR
inherited

Definition at line 72 of file wall_model.f90.

◆ mu

type(field_t), pointer wall_model::wall_model_t::mu => null()
inherited

Definition at line 63 of file wall_model.f90.

◆ n_nodes

integer wall_model::wall_model_t::n_nodes = 0
inherited

Definition at line 90 of file wall_model.f90.

◆ n_x

type(vector_t) wall_model::wall_model_t::n_x
inherited

Definition at line 82 of file wall_model.f90.

◆ n_y

type(vector_t) wall_model::wall_model_t::n_y
inherited

Definition at line 84 of file wall_model.f90.

◆ n_z

type(vector_t) wall_model::wall_model_t::n_z
inherited

Definition at line 86 of file wall_model.f90.

◆ rho

type(field_t), pointer wall_model::wall_model_t::rho => null()
inherited

Definition at line 65 of file wall_model.f90.

◆ rho_w

type(vector_t) rough_log_law::rough_log_law_t::rho_w

Definition at line 72 of file rough_log_law.f90.

◆ sampler

class(wall_sampler_t), allocatable wall_model::wall_model_t::sampler
inherited

Definition at line 88 of file wall_model.f90.

◆ scheme_name

character(len=:), allocatable wall_model::wall_model_t::scheme_name
inherited

Definition at line 69 of file wall_model.f90.

◆ tau_field

type(field_t), pointer wall_model::wall_model_t::tau_field => null()
inherited

Definition at line 92 of file wall_model.f90.

◆ tau_x

type(vector_t) wall_model::wall_model_t::tau_x
inherited

Definition at line 76 of file wall_model.f90.

◆ tau_y

type(vector_t) wall_model::wall_model_t::tau_y
inherited

Definition at line 78 of file wall_model.f90.

◆ tau_z

type(vector_t) wall_model::wall_model_t::tau_z
inherited

Definition at line 80 of file wall_model.f90.

◆ u_s

type(vector_t) rough_log_law::rough_log_law_t::u_s

Definition at line 74 of file rough_log_law.f90.

◆ v_s

type(vector_t) rough_log_law::rough_log_law_t::v_s

Definition at line 74 of file rough_log_law.f90.

◆ w_s

type(vector_t) rough_log_law::rough_log_law_t::w_s

Definition at line 74 of file rough_log_law.f90.

◆ z0

real(kind=rp) rough_log_law::rough_log_law_t::z0

Definition at line 70 of file rough_log_law.f90.


The documentation for this type was generated from the following file: