Neko 1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
adv_oifs::adv_oifs_t Type Referenceabstract
Inheritance diagram for adv_oifs::adv_oifs_t:
Collaboration diagram for adv_oifs::adv_oifs_t:

Public Member Functions

procedure, pass(thiscompute (this, vx, vy, vz, fx, fy, fz, xh, coef, n, dt)
 Add the advection term for the fluid, i.e. \(u \cdot \nabla u \), to the RHS.
 
procedure, pass(thiscompute_scalar (this, vx, vy, vz, s, fs, xh, coef, n, dt)
 Add the advection term for a scalar, i.e. \(u \cdot \nabla s \), to the RHS.
 
procedure, pass(thisinit (this, lxd, coef, ctarget, ulag, vlag, wlag, dtlag, tlag, time_scheme, slag)
 Constructor.
 
procedure, pass(thisset_conv_velocity_fst (this, u, v, w)
 setting characteristic convecting field
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure(compute_adv), deferred, pass compute (this, vx, vy, vz, fx, fy, fz, xh, coef, n, dt)
 
procedure(compute_scalar_adv), deferred, pass compute_scalar (this, vx, vy, vz, s, fs, xh, coef, n, dt)
 
procedure(advection_free), deferred, pass free (this)
 

Public Attributes

integer ntaubd
 Number of RK4 sub-steps.
 
type(coef_tcoef_gl
 Coeffs of the higher-order space.
 
type(coef_t), pointer coef_gll => null()
 Coeffs of the original space in the simulation.
 
type(interpolator_tgll_to_gl
 Interpolator between the original and higher-order spaces.
 
type(space_txh_gl
 The additional higher-order space used in dealiasing.
 
type(space_t), pointer xh_gll => null()
 The original space used in the simulation.
 
type(time_interpolator_tdtime
 The time interpolator scheme.
 
type(field_series_t), pointer ulag
 The lagged velocity and scalar fields.
 
type(field_series_t), pointer vlag
 
type(field_series_t), pointer wlag
 
type(field_series_t), pointer slag => null()
 
real(kind=rp), dimension(:), pointer ctlag => null()
 The times corresponding to the lagged fields.
 
real(kind=rp), dimension(:), pointer dctlag => null()
 The time-steps corresponding to the lagged fields.
 
type(time_scheme_controller_t), pointer oifs_scheme => null()
 The time scheme controller for the oifs scheme.
 
type(field_tcr_gl
 The current convecting field in GL space and rst format.
 
type(field_tcs_gl
 
type(field_tct_gl
 
type(field_series_tconvr_gl
 The convecting field series in GL space and rst format.
 
type(field_series_tconvs_gl
 
type(field_series_tconvt_gl
 
type(field_t), pointer cr_k1
 The time interpolated convecting field used in Runge_Kutta method.
 
type(field_t), pointer cs_k1
 
type(field_t), pointer ct_k1
 
type(field_t), pointer cr_k23
 
type(field_t), pointer cs_k23
 
type(field_t), pointer ct_k23
 
type(field_t), pointer cr_k4
 
type(field_t), pointer cs_k4
 
type(field_t), pointer ct_k4
 
type(field_list_tconv_k1
 The field_list containing the time interpolated convecting field.
 
type(field_list_tconv_k23
 
type(field_list_tconv_k4
 
real(kind=rp), dimension(:), allocatable cx
 The convecting velocity field in GL space.
 
real(kind=rp), dimension(:), allocatable cy
 
real(kind=rp), dimension(:), allocatable cz
 
type(c_ptr) cx_d = C_NULL_PTR
 Device pointers for cx, cy, cz.
 
type(c_ptr) cy_d = C_NULL_PTR
 
type(c_ptr) cz_d = C_NULL_PTR
 

Detailed Description

Definition at line 60 of file adv_oifs.f90.

Member Function/Subroutine Documentation

◆ compute() [1/2]

procedure(compute_adv), deferred, pass advection::advection_t::compute ( class(advection_t), intent(inout this,
type(field_t), intent(inout vx,
type(field_t), intent(inout vy,
type(field_t), intent(inout vz,
type(field_t), intent(inout fx,
type(field_t), intent(inout fy,
type(field_t), intent(inout fz,
type(space_t), intent(in xh,
type(coef_t), intent(in coef,
integer, intent(in n,
real(kind=rp), intent(in), optional  dt 
)
pure virtualinherited

Definition at line 48 of file advection.f90.

◆ compute() [2/2]

procedure, pass(this) adv_oifs::adv_oifs_t::compute ( class(adv_oifs_t), intent(inout this,
type(field_t), intent(inout vx,
type(field_t), intent(inout vy,
type(field_t), intent(inout vz,
type(field_t), intent(inout fx,
type(field_t), intent(inout fy,
type(field_t), intent(inout fz,
type(space_t), intent(in xh,
type(coef_t), intent(in coef,
integer, intent(in n,
real(kind=rp), intent(in), optional  dt 
)
Parameters
vxThe x component of velocity.
vyThe y component of velocity.
vzThe z component of velocity.
fxThe x component of source term.
fyThe y component of source term.
fzThe z component of source term.
XhThe function space.
coefThe coefficients of the (Xh, mesh) pair.
nTypically the size of the mesh.
dtCurrent time-step.

Definition at line 101 of file adv_oifs.f90.

◆ compute_scalar() [1/2]

procedure(compute_scalar_adv), deferred, pass advection::advection_t::compute_scalar ( class(advection_t), intent(inout this,
type(field_t), intent(inout vx,
type(field_t), intent(inout vy,
type(field_t), intent(inout vz,
type(field_t), intent(inout s,
type(field_t), intent(inout fs,
type(space_t), intent(in xh,
type(coef_t), intent(in coef,
integer, intent(in n,
real(kind=rp), intent(in), optional  dt 
)
pure virtualinherited

Definition at line 49 of file advection.f90.

◆ compute_scalar() [2/2]

procedure, pass(this) adv_oifs::adv_oifs_t::compute_scalar ( class(adv_oifs_t), intent(inout this,
type(field_t), intent(inout vx,
type(field_t), intent(inout vy,
type(field_t), intent(inout vz,
type(field_t), intent(inout s,
type(field_t), intent(inout fs,
type(space_t), intent(in xh,
type(coef_t), intent(in coef,
integer, intent(in n,
real(kind=rp), intent(in), optional  dt 
)
Parameters
thisThe object.
vxThe x component of velocity.
vyThe y component of velocity.
vzThe z component of velocity.
sThe scalar.
fsThe source term.
XhThe function space.
coefThe coefficients of the (Xh, mesh) pair.
nTypically the size of the mesh.
dtCurrent time-step.

Definition at line 104 of file adv_oifs.f90.

◆ free() [1/2]

procedure(advection_free), deferred, pass advection::advection_t::free ( class(advection_t), intent(inout this)
pure virtualinherited

Definition at line 50 of file advection.f90.

◆ free() [2/2]

procedure, pass(this) adv_oifs::adv_oifs_t::free ( class(adv_oifs_t), intent(inout this)

Definition at line 110 of file adv_oifs.f90.

◆ init()

procedure, pass(this) adv_oifs::adv_oifs_t::init ( class(adv_oifs_t this,
integer, intent(in lxd,
type(coef_t), target  coef,
real(kind=rp), intent(in ctarget,
type(field_series_t), intent(in), target  ulag,
type(field_series_t), intent(in), target  vlag,
type(field_series_t), intent(in), target  wlag,
real(kind=rp), dimension(10), intent(in), target  dtlag,
real(kind=rp), dimension(10), intent(in), target  tlag,
type(time_scheme_controller_t), intent(in), target  time_scheme,
type(field_series_t), optional, target  slag 
)
Parameters
lxdThe polynomial order of the space used in the dealiasing.
coefThe coefficients of the (space, mesh) pair.
ctargetTarget CFL number.
ulagThe x component of lagged velocity.
vlagThe y component of lagged velocity.
wlagThe z component of lagged velocity.
dtlagLagged time steps.
tlagLagged simulation times.
time_schemeThe bdf-ext time scheme used in the method.
slagThe lagged scalar field.

Definition at line 106 of file adv_oifs.f90.

◆ set_conv_velocity_fst()

procedure, pass(this) adv_oifs::adv_oifs_t::set_conv_velocity_fst ( class(adv_oifs_t), intent(inout this,
type(field_t), intent(inout u,
type(field_t), intent(inout v,
type(field_t), intent(inout w 
)
Parameters
uVelocity component in x-direction
vVelocity component in y-direction
wVelocity component in z-direction
Note
similar to set_ct_cvx in NEK5000

Definition at line 108 of file adv_oifs.f90.

Member Data Documentation

◆ coef_gl

type(coef_t) adv_oifs::adv_oifs_t::coef_gl

Definition at line 64 of file adv_oifs.f90.

◆ coef_gll

type(coef_t), pointer adv_oifs::adv_oifs_t::coef_gll => null()

Definition at line 66 of file adv_oifs.f90.

◆ conv_k1

type(field_list_t) adv_oifs::adv_oifs_t::conv_k1

Definition at line 92 of file adv_oifs.f90.

◆ conv_k23

type(field_list_t) adv_oifs::adv_oifs_t::conv_k23

Definition at line 92 of file adv_oifs.f90.

◆ conv_k4

type(field_list_t) adv_oifs::adv_oifs_t::conv_k4

Definition at line 92 of file adv_oifs.f90.

◆ convr_gl

type(field_series_t) adv_oifs::adv_oifs_t::convr_gl

Definition at line 86 of file adv_oifs.f90.

◆ convs_gl

type(field_series_t) adv_oifs::adv_oifs_t::convs_gl

Definition at line 86 of file adv_oifs.f90.

◆ convt_gl

type(field_series_t) adv_oifs::adv_oifs_t::convt_gl

Definition at line 86 of file adv_oifs.f90.

◆ cr_gl

type(field_t) adv_oifs::adv_oifs_t::cr_gl

Definition at line 84 of file adv_oifs.f90.

◆ cr_k1

type(field_t), pointer adv_oifs::adv_oifs_t::cr_k1

Definition at line 88 of file adv_oifs.f90.

◆ cr_k23

type(field_t), pointer adv_oifs::adv_oifs_t::cr_k23

Definition at line 89 of file adv_oifs.f90.

◆ cr_k4

type(field_t), pointer adv_oifs::adv_oifs_t::cr_k4

Definition at line 90 of file adv_oifs.f90.

◆ cs_gl

type(field_t) adv_oifs::adv_oifs_t::cs_gl

Definition at line 84 of file adv_oifs.f90.

◆ cs_k1

type(field_t), pointer adv_oifs::adv_oifs_t::cs_k1

Definition at line 88 of file adv_oifs.f90.

◆ cs_k23

type(field_t), pointer adv_oifs::adv_oifs_t::cs_k23

Definition at line 89 of file adv_oifs.f90.

◆ cs_k4

type(field_t), pointer adv_oifs::adv_oifs_t::cs_k4

Definition at line 90 of file adv_oifs.f90.

◆ ct_gl

type(field_t) adv_oifs::adv_oifs_t::ct_gl

Definition at line 84 of file adv_oifs.f90.

◆ ct_k1

type(field_t), pointer adv_oifs::adv_oifs_t::ct_k1

Definition at line 88 of file adv_oifs.f90.

◆ ct_k23

type(field_t), pointer adv_oifs::adv_oifs_t::ct_k23

Definition at line 89 of file adv_oifs.f90.

◆ ct_k4

type(field_t), pointer adv_oifs::adv_oifs_t::ct_k4

Definition at line 90 of file adv_oifs.f90.

◆ ctlag

real(kind=rp), dimension(:), pointer adv_oifs::adv_oifs_t::ctlag => null()

Definition at line 78 of file adv_oifs.f90.

◆ cx

real(kind=rp), dimension(:), allocatable adv_oifs::adv_oifs_t::cx

Definition at line 94 of file adv_oifs.f90.

◆ cx_d

type(c_ptr) adv_oifs::adv_oifs_t::cx_d = C_NULL_PTR

Definition at line 96 of file adv_oifs.f90.

◆ cy

real(kind=rp), dimension(:), allocatable adv_oifs::adv_oifs_t::cy

Definition at line 94 of file adv_oifs.f90.

◆ cy_d

type(c_ptr) adv_oifs::adv_oifs_t::cy_d = C_NULL_PTR

Definition at line 96 of file adv_oifs.f90.

◆ cz

real(kind=rp), dimension(:), allocatable adv_oifs::adv_oifs_t::cz

Definition at line 94 of file adv_oifs.f90.

◆ cz_d

type(c_ptr) adv_oifs::adv_oifs_t::cz_d = C_NULL_PTR

Definition at line 96 of file adv_oifs.f90.

◆ dctlag

real(kind=rp), dimension(:), pointer adv_oifs::adv_oifs_t::dctlag => null()

Definition at line 80 of file adv_oifs.f90.

◆ dtime

type(time_interpolator_t) adv_oifs::adv_oifs_t::dtime

Definition at line 74 of file adv_oifs.f90.

◆ gll_to_gl

type(interpolator_t) adv_oifs::adv_oifs_t::gll_to_gl

Definition at line 68 of file adv_oifs.f90.

◆ ntaubd

integer adv_oifs::adv_oifs_t::ntaubd

Definition at line 62 of file adv_oifs.f90.

◆ oifs_scheme

type(time_scheme_controller_t), pointer adv_oifs::adv_oifs_t::oifs_scheme => null()

Definition at line 82 of file adv_oifs.f90.

◆ slag

type(field_series_t), pointer adv_oifs::adv_oifs_t::slag => null()

Definition at line 76 of file adv_oifs.f90.

◆ ulag

type(field_series_t), pointer adv_oifs::adv_oifs_t::ulag

Definition at line 76 of file adv_oifs.f90.

◆ vlag

type(field_series_t), pointer adv_oifs::adv_oifs_t::vlag

Definition at line 76 of file adv_oifs.f90.

◆ wlag

type(field_series_t), pointer adv_oifs::adv_oifs_t::wlag

Definition at line 76 of file adv_oifs.f90.

◆ xh_gl

type(space_t) adv_oifs::adv_oifs_t::xh_gl

Definition at line 70 of file adv_oifs.f90.

◆ xh_gll

type(space_t), pointer adv_oifs::adv_oifs_t::xh_gll => null()

Definition at line 72 of file adv_oifs.f90.


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