Neko 1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
wall_model::wall_model_t Type Referenceabstract

Base abstract type for wall-stress models for wall-modelled LES. More...

Inheritance diagram for wall_model::wall_model_t:
Collaboration diagram for wall_model::wall_model_t:

Public Member Functions

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

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 59 of file wall_model.f90.

Member Function/Subroutine Documentation

◆ compute()

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 virtual

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

Definition at line 119 of file wall_model.f90.

◆ finalize()

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 virtual

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

Definition at line 115 of file wall_model.f90.

◆ find_points()

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

Definition at line 137 of file wall_model.f90.

◆ free()

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

Definition at line 133 of file wall_model.f90.

◆ free_base()

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

Definition at line 117 of file wall_model.f90.

◆ init()

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 virtual

Definition at line 121 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 
)
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 111 of file wall_model.f90.

◆ partial_init()

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 virtual

Definition at line 129 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 
)
Parameters
coefSEM coefficients.
Thename of the scheme for which the wall model is used.
jsonA dictionary with parameters.

Definition at line 113 of file wall_model.f90.

Member Data Documentation

◆ coef

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

Definition at line 61 of file wall_model.f90.

◆ dof

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

Definition at line 63 of file wall_model.f90.

◆ facet

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

Definition at line 76 of file wall_model.f90.

◆ h

type(vector_t) wall_model::wall_model_t::h

Definition at line 102 of file wall_model.f90.

◆ h_index

integer wall_model::wall_model_t::h_index = 0

Definition at line 104 of file wall_model.f90.

◆ ind_e

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

Definition at line 99 of file wall_model.f90.

◆ ind_e_d

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

Definition at line 100 of file wall_model.f90.

◆ ind_r

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

Definition at line 90 of file wall_model.f90.

◆ ind_r_d

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

Definition at line 91 of file wall_model.f90.

◆ ind_s

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

Definition at line 93 of file wall_model.f90.

◆ ind_s_d

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

Definition at line 94 of file wall_model.f90.

◆ ind_t

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

Definition at line 96 of file wall_model.f90.

◆ ind_t_d

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

Definition at line 97 of file wall_model.f90.

◆ msk

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

Definition at line 73 of file wall_model.f90.

◆ msk_d

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

Definition at line 74 of file wall_model.f90.

◆ mu

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

Definition at line 65 of file wall_model.f90.

◆ n_nodes

integer wall_model::wall_model_t::n_nodes = 0

Definition at line 106 of file wall_model.f90.

◆ n_x

type(vector_t) wall_model::wall_model_t::n_x

Definition at line 84 of file wall_model.f90.

◆ n_y

type(vector_t) wall_model::wall_model_t::n_y

Definition at line 86 of file wall_model.f90.

◆ n_z

type(vector_t) wall_model::wall_model_t::n_z

Definition at line 88 of file wall_model.f90.

◆ rho

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

Definition at line 67 of file wall_model.f90.

◆ scheme_name

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

Definition at line 71 of file wall_model.f90.

◆ tau_field

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

Definition at line 108 of file wall_model.f90.

◆ tau_x

type(vector_t) wall_model::wall_model_t::tau_x

Definition at line 78 of file wall_model.f90.

◆ tau_y

type(vector_t) wall_model::wall_model_t::tau_y

Definition at line 80 of file wall_model.f90.

◆ tau_z

type(vector_t) wall_model::wall_model_t::tau_z

Definition at line 82 of file wall_model.f90.


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