Neko 0.9.99
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, coef, msk, facet, nu, h_index, json)
 Constructor from JSON.
 
procedure, pass(thisinit_from_components (this, coef, msk, facet, nu, h_index, kappa, b, z0)
 Constructor from components.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thiscompute (this, t, tstep)
 Compute the wall shear stress.
 
procedure, pass(thisinit_base (this, coef, msk, facet, nu, index)
 Constructor for the wall_model_t (base) class.
 
procedure, pass(thisfree_base (this)
 Destructor for the wall_model_t (base) class.
 
procedure(wall_model_init), deferred, pass init (this, coef, msk, facet, nu, h_index, json)
 The common constructor.
 
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(thisfind_points (this)
 Find the sampling points based on the value of h_index.
 

Public Attributes

real(kind=rp) kappa = 0.41_rp
 The von Karman coefficient.
 
real(kind=rp) b = 0.0_rp
 The log-law intercept.
 
real(kind=rp) z0 = 0.0_rp
 The roughness height.
 
type(coef_t), pointer coef => null()
 SEM coefficients.
 
type(dofmap_t), pointer dof => null()
 Map of degrees of freedom.
 
integer, dimension(:), pointer msk => null()
 The boundary condition mask. Stores the array size at index zero!
 
integer, dimension(:), pointer facet => null()
 The boundary condition facet ids. Stores the array size at index zero!
 
real(kind=rp), dimension(:), allocatable tau_x
 The x component of the shear stress.
 
real(kind=rp), dimension(:), allocatable tau_y
 The y component of the shear stress.
 
real(kind=rp), dimension(:), allocatable 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.
 
integer, dimension(:), allocatable ind_r
 The r indices of the sampling points.
 
integer, dimension(:), allocatable ind_s
 The s indices of the sampling points.
 
integer, dimension(:), allocatable ind_t
 The t indices of the sampling points.
 
integer, dimension(:), allocatable ind_e
 The element indices of the sampling points.
 
type(vector_t) h
 The sampling height.
 
integer h_index = 0
 Sampling index.
 
integer n_nodes = 0
 Number of nodes in the boundary.
 
real(kind=rp) nu = 0_rp
 Kinematic viscosity value.
 
type(field_t), pointer tau_field => null()
 The 3D field with the computed stress magnitude at the boundary.
 

Detailed Description

Definition at line 53 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 70 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 103 of file wall_model.f90.

◆ find_points()

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

Definition at line 105 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 68 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 101 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 97 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,
type(coef_t), intent(in coef,
integer, dimension(:), intent(in msk,
integer, dimension(:), intent(in facet,
real(kind=rp), intent(in nu,
integer, intent(in h_index,
type(json_file), intent(inout json 
)
Parameters
coefSEM coefficients.
mskThe boundary mask.
facetThe boundary facets.
nuThe molecular kinematic viscosity.
h_indexThe off-wall index of the sampling cell.
jsonA dictionary with parameters.

Definition at line 63 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,
type(coef_t), intent(in coef,
integer, dimension(:), intent(in msk,
integer, dimension(:), intent(in facet,
real(kind=rp), intent(in nu,
integer, intent(in h_index,
type(json_file), intent(inout json 
)
pure virtualinherited

Definition at line 99 of file wall_model.f90.

◆ init_base()

procedure, pass(this) wall_model::wall_model_t::init_base ( class(wall_model_t), intent(inout this,
type(coef_t), intent(in), target  coef,
integer, dimension(0:), intent(in), target  msk,
integer, dimension(0:), intent(in), target  facet,
real(kind=rp), intent(in nu,
integer, intent(in index 
)
inherited
Parameters
objectThe object to be allocated.
coefSEM coefficients.
mskThe boundary mask.
facetThe boundary facets.
nuThe molecular kinematic viscosity.
h_indexThe off-wall index of the sampling cell.
jsonA dictionary with parameters. Constructor for the wall_model_t (base) class.
coefSEM coefficients.
mskThe underlying mask of the boundary condition.
facet,Theunderlying facet index list of the boundary condition.
nuThe kinematic viscosity.
indexThe off-wall index of the sampling point.

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,
type(coef_t), intent(in coef,
integer, dimension(:), intent(in msk,
integer, dimension(:), intent(in facet,
real(kind=rp), intent(in nu,
integer, intent(in h_index,
real(kind=rp), intent(in kappa,
real(kind=rp), intent(in b,
real(kind=rp), intent(in z0 
)
Parameters
coefSEM coefficients.
mskThe boundary mask.
facetThe boundary facets.
nuThe molecular kinematic viscosity.
h_indexThe off-wall index of the sampling cell.
kappaThe von Karman coefficient.
BThe log-law intercept.
z0The roughness height.

Definition at line 65 of file rough_log_law.f90.

Member Data Documentation

◆ b

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

Definition at line 58 of file rough_log_law.f90.

◆ coef

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

Definition at line 56 of file wall_model.f90.

◆ dof

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

Definition at line 58 of file wall_model.f90.

◆ facet

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

Definition at line 62 of file wall_model.f90.

◆ h

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

Definition at line 84 of file wall_model.f90.

◆ h_index

integer wall_model::wall_model_t::h_index = 0
inherited

Definition at line 86 of file wall_model.f90.

◆ ind_e

integer, dimension(:), allocatable wall_model::wall_model_t::ind_e
inherited

Definition at line 82 of file wall_model.f90.

◆ ind_r

integer, dimension(:), allocatable wall_model::wall_model_t::ind_r
inherited

Definition at line 76 of file wall_model.f90.

◆ ind_s

integer, dimension(:), allocatable wall_model::wall_model_t::ind_s
inherited

Definition at line 78 of file wall_model.f90.

◆ ind_t

integer, dimension(:), allocatable wall_model::wall_model_t::ind_t
inherited

Definition at line 80 of file wall_model.f90.

◆ kappa

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

Definition at line 56 of file rough_log_law.f90.

◆ msk

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

Definition at line 60 of file wall_model.f90.

◆ n_nodes

integer wall_model::wall_model_t::n_nodes = 0
inherited

Definition at line 88 of file wall_model.f90.

◆ n_x

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

Definition at line 70 of file wall_model.f90.

◆ n_y

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

Definition at line 72 of file wall_model.f90.

◆ n_z

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

Definition at line 74 of file wall_model.f90.

◆ nu

real(kind=rp) wall_model::wall_model_t::nu = 0_rp
inherited

Definition at line 90 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

real(kind=rp), dimension(:), allocatable wall_model::wall_model_t::tau_x
inherited

Definition at line 64 of file wall_model.f90.

◆ tau_y

real(kind=rp), dimension(:), allocatable wall_model::wall_model_t::tau_y
inherited

Definition at line 66 of file wall_model.f90.

◆ tau_z

real(kind=rp), dimension(:), allocatable wall_model::wall_model_t::tau_z
inherited

Definition at line 68 of file wall_model.f90.

◆ z0

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

Definition at line 60 of file rough_log_law.f90.


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