Neko 1.99.3
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
richardson::richardson_t Type Referenceabstract

Wall model similar to the Monin-Obukhov Similarity Theory for atmospheric boundary layer flows, but which avoids the iterative computation of the Obukhov length, computing the Richardson number directly (Mauritsen, 2007) More...

Inheritance diagram for richardson::richardson_t:
Collaboration diagram for richardson::richardson_t:

Public Member Functions

procedure, pass(thisinit (this, scheme_name, coef, msk, facet, h_index, json)
 Constructor from JSON.
 
procedure, pass(thispartial_init (this, coef, json)
 Partial constructor from JSON, meant to work as the first stage of initialization before the finalize call.
 
procedure, pass(thisfinalize (this, msk, facet)
 Finalize the construction using the mask and facet arrays of the bc.
 
procedure, pass(thisinit_from_components (this, scheme_name, scalar_name, coef, msk, facet, h_index, kappa, g, pr, z0, z0h_in, bc_type, bc_value)
 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 and mu at the boundary.
 
procedure, pass(thisinit_base (this, scheme_name, coef, msk, facet, index)
 Constructor for the wall_model_t (base) class.
 
procedure, pass(thispartial_init_base (this, coef, json)
 Base type implementation of the deferred partial_init.
 
procedure, pass(thisfinalize_base (this, msk, facet)
 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, h_index, json)
 The common constructor.
 
procedure(wall_model_partial_init), deferred, pass partial_init (this, coef, 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. This constructor gets the scheme_name from the JSON. This is currently hacked in by the pnpn_bc_factory.
 
procedure(wall_model_finalize), deferred, pass finalize (this, msk, facet)
 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(thisfind_points (this)
 Find the sampling points based on the value of h_index.
 

Public Attributes

real(kind=rp) kappa
 The von Karman coefficient.
 
real(kind=rp) pr
 The turbulent Prandtl number.
 
real(kind=rp) z0
 The roughness height.
 
real(kind=rp) z0h_in
 The thermal roughness height.
 
real(kind=rp), dimension(3) g
 The gravity vector.
 
type(vector_tmu_w
 
type(vector_trho_w
 
character(len=:), allocatable bc_type
 The type of temperature boundary condition set in the case file.
 
real(kind=rp) bc_value
 The heat flux or temperature value set in the case file.
 
character(len=:), allocatable scalar_name
 The name of the temperature variable.
 
type(vector_tri_b
 Diagnostics.
 
type(vector_tl_ob
 
type(vector_tutau
 
type(vector_tmagu
 
type(vector_tti
 
type(vector_tts
 
type(vector_tq
 
integer, dimension(:), allocatable h_x_idx
 
integer, dimension(:), allocatable h_y_idx
 
integer, dimension(:), allocatable h_z_idx
 
type(c_ptr) h_x_idx_d = C_NULL_PTR
 
type(c_ptr) h_y_idx_d = C_NULL_PTR
 
type(c_ptr) h_z_idx_d = C_NULL_PTR
 
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.
 
integer, dimension(:), allocatable ind_r
 The r indices of the sampling points.
 
type(c_ptr) ind_r_d = C_NULL_PTR
 
integer, dimension(:), allocatable ind_s
 The s indices of the sampling points.
 
type(c_ptr) ind_s_d = C_NULL_PTR
 
integer, dimension(:), allocatable ind_t
 The t indices of the sampling points.
 
type(c_ptr) ind_t_d = C_NULL_PTR
 
integer, dimension(:), allocatable ind_e
 The element indices of the sampling points.
 
type(c_ptr) ind_e_d = C_NULL_PTR
 
type(vector_th
 The sampling height.
 
integer h_index = 0
 Sampling index.
 
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 62 of file richardson.f90.

Member Function/Subroutine Documentation

◆ compute() [1/2]

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

Definition at line 103 of file richardson.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 134 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 118 of file wall_model.f90.

◆ extract_properties()

procedure, pass(this) richardson::richardson_t::extract_properties ( class(richardson_t), intent(inout this)

Definition at line 105 of file richardson.f90.

◆ finalize() [1/2]

procedure, pass(this) richardson::richardson_t::finalize ( class(richardson_t), intent(inout this,
integer, dimension(:), intent(in msk,
integer, dimension(:), intent(in facet 
)
Parameters
mskThe boundary mask.
facetThe boundary facets.

Definition at line 96 of file richardson.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 
)
pure virtualinherited

Definition at line 130 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 
)
inherited

Definition at line 114 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 136 of file wall_model.f90.

◆ free() [1/2]

procedure, pass(this) richardson::richardson_t::free ( class(richardson_t), intent(inout this)

Definition at line 101 of file richardson.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 132 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 116 of file wall_model.f90.

◆ init() [1/2]

procedure, pass(this) richardson::richardson_t::init ( class(richardson_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,
integer, intent(in h_index,
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.
h_indexThe off-wall index of the sampling cell.
jsonA dictionary with parameters.

Definition at line 91 of file richardson.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,
integer, intent(in h_index,
type(json_file), intent(inout json 
)
pure virtualinherited

Definition at line 120 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,
integer, intent(in index 
)
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.
indexThe off-wall index of the sampling point.

Definition at line 110 of file wall_model.f90.

◆ init_from_components()

procedure, pass(this) richardson::richardson_t::init_from_components ( class(richardson_t), intent(inout this,
character(len=*), intent(in scheme_name,
character(len=*), intent(in scalar_name,
type(coef_t), intent(in coef,
integer, dimension(:), intent(in msk,
integer, dimension(:), intent(in facet,
integer, intent(in h_index,
real(kind=rp), intent(in kappa,
real(kind=rp), dimension(3), intent(in g,
real(kind=rp), intent(in pr,
real(kind=rp), intent(in z0,
real(kind=rp), intent(in z0h_in,
character(len=*), intent(in bc_type,
real(kind=rp), intent(in bc_value 
)
Parameters
scheme_nameThe name of the scheme for which the wall model is used.
coefSEM coefficients.
mskThe boundary mask.
facetThe boundary facets.
h_indexThe off-wall index of the sampling cell.
kappaThe von Karman coefficient.
gThe gravity vector.
z0The roughness height.
z0h_inThe thermal roughness height. If negative, set automatically from Zilitinkevich, 1995.
bc_typeThe type of bc set for temperature in the case file.
scalar_nameThe name of the scalar field (temperature) for Richardson WM.
bc_valueThe heat flux at the surface boundary condition.

Definition at line 98 of file richardson.f90.

◆ partial_init() [1/2]

procedure, pass(this) richardson::richardson_t::partial_init ( class(richardson_t), intent(inout this,
type(coef_t), intent(in coef,
type(json_file), intent(inout json 
)
Parameters
coefSEM coefficients.
jsonA dictionary with parameters.

Definition at line 94 of file richardson.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,
type(json_file), intent(inout json 
)
pure virtualinherited

Definition at line 128 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,
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 112 of file wall_model.f90.

Member Data Documentation

◆ bc_type

character(len=:), allocatable richardson::richardson_t::bc_type

Definition at line 78 of file richardson.f90.

◆ bc_value

real(kind=rp) richardson::richardson_t::bc_value

Definition at line 80 of file richardson.f90.

◆ coef

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

Definition at line 60 of file wall_model.f90.

◆ dof

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

Definition at line 62 of file wall_model.f90.

◆ facet

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

Definition at line 75 of file wall_model.f90.

◆ g

real(kind=rp), dimension(3) richardson::richardson_t::g

Definition at line 72 of file richardson.f90.

◆ h

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

Definition at line 101 of file wall_model.f90.

◆ h_index

integer wall_model::wall_model_t::h_index = 0
inherited

Definition at line 103 of file wall_model.f90.

◆ h_x_idx

integer, dimension(:), allocatable richardson::richardson_t::h_x_idx

Definition at line 85 of file richardson.f90.

◆ h_x_idx_d

type(c_ptr) richardson::richardson_t::h_x_idx_d = C_NULL_PTR

Definition at line 86 of file richardson.f90.

◆ h_y_idx

integer, dimension(:), allocatable richardson::richardson_t::h_y_idx

Definition at line 85 of file richardson.f90.

◆ h_y_idx_d

type(c_ptr) richardson::richardson_t::h_y_idx_d = C_NULL_PTR

Definition at line 87 of file richardson.f90.

◆ h_z_idx

integer, dimension(:), allocatable richardson::richardson_t::h_z_idx

Definition at line 85 of file richardson.f90.

◆ h_z_idx_d

type(c_ptr) richardson::richardson_t::h_z_idx_d = C_NULL_PTR

Definition at line 88 of file richardson.f90.

◆ ind_e

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

Definition at line 98 of file wall_model.f90.

◆ ind_e_d

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

Definition at line 99 of file wall_model.f90.

◆ ind_r

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

Definition at line 89 of file wall_model.f90.

◆ ind_r_d

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

Definition at line 90 of file wall_model.f90.

◆ ind_s

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

Definition at line 92 of file wall_model.f90.

◆ ind_s_d

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

Definition at line 93 of file wall_model.f90.

◆ ind_t

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

Definition at line 95 of file wall_model.f90.

◆ ind_t_d

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

Definition at line 96 of file wall_model.f90.

◆ kappa

real(kind=rp) richardson::richardson_t::kappa

Definition at line 64 of file richardson.f90.

◆ l_ob

type(vector_t) richardson::richardson_t::l_ob

Definition at line 84 of file richardson.f90.

◆ magu

type(vector_t) richardson::richardson_t::magu

Definition at line 84 of file richardson.f90.

◆ msk

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

Definition at line 72 of file wall_model.f90.

◆ msk_d

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

Definition at line 73 of file wall_model.f90.

◆ mu

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

Definition at line 64 of file wall_model.f90.

◆ mu_w

type(vector_t) richardson::richardson_t::mu_w

Definition at line 74 of file richardson.f90.

◆ n_nodes

integer wall_model::wall_model_t::n_nodes = 0
inherited

Definition at line 105 of file wall_model.f90.

◆ n_x

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

Definition at line 83 of file wall_model.f90.

◆ n_y

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

Definition at line 85 of file wall_model.f90.

◆ n_z

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

Definition at line 87 of file wall_model.f90.

◆ pr

real(kind=rp) richardson::richardson_t::pr

Definition at line 66 of file richardson.f90.

◆ q

type(vector_t) richardson::richardson_t::q

Definition at line 84 of file richardson.f90.

◆ rho

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

Definition at line 66 of file wall_model.f90.

◆ rho_w

type(vector_t) richardson::richardson_t::rho_w

Definition at line 76 of file richardson.f90.

◆ ri_b

type(vector_t) richardson::richardson_t::ri_b

Definition at line 84 of file richardson.f90.

◆ scalar_name

character(len=:), allocatable richardson::richardson_t::scalar_name

Definition at line 82 of file richardson.f90.

◆ scheme_name

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

Definition at line 70 of file wall_model.f90.

◆ tau_field

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

Definition at line 107 of file wall_model.f90.

◆ tau_x

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

Definition at line 77 of file wall_model.f90.

◆ tau_y

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

Definition at line 79 of file wall_model.f90.

◆ tau_z

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

Definition at line 81 of file wall_model.f90.

◆ ti

type(vector_t) richardson::richardson_t::ti

Definition at line 84 of file richardson.f90.

◆ ts

type(vector_t) richardson::richardson_t::ts

Definition at line 84 of file richardson.f90.

◆ utau

type(vector_t) richardson::richardson_t::utau

Definition at line 84 of file richardson.f90.

◆ z0

real(kind=rp) richardson::richardson_t::z0

Definition at line 68 of file richardson.f90.

◆ z0h_in

real(kind=rp) richardson::richardson_t::z0h_in

Definition at line 70 of file richardson.f90.


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