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

Type encapsulating advection routines with dealiasing. More...

Inheritance diagram for adv_dealias::adv_dealias_t:
Collaboration diagram for adv_dealias::adv_dealias_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(thiscompute_ale (this, vx, vy, vz, wm_x, wm_y, wm_z, fx, fy, fz, xh, coef, n, dt)
 Add the advection term in ALE framework.
 
procedure, pass(thisrecompute_metrics (this, coef, moving_boundary)
 Update any metrics needed for the advection computation in ALE.
 
procedure, pass(thisinit (this, lxd, coef)
 Constructor.
 
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(compute_ale_adv), deferred, pass compute_ale (this, vx, vy, vz, wm_x, wm_y, wm_z, fx, fy, fz, xh, coef, n, dt)
 
procedure(advection_recompute_metrics), deferred, pass recompute_metrics (this, coef, moving_boundary)
 
procedure(advection_free), deferred, pass free (this)
 

Public Attributes

type(coef_tcoef_gl
 Coeffs of the higher-order space.
 
type(coef_t), pointer coef_gll
 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
 The original space used in the simulation.
 
real(kind=rp), dimension(:), allocatable temp
 
real(kind=rp), dimension(:), allocatable tbf
 
real(kind=rp), dimension(:), allocatable tx
 Temporary arrays.
 
real(kind=rp), dimension(:), allocatable ty
 
real(kind=rp), dimension(:), allocatable tz
 
real(kind=rp), dimension(:), allocatable vr
 
real(kind=rp), dimension(:), allocatable vs
 
real(kind=rp), dimension(:), allocatable vt
 
type(c_ptr) temp_d = C_NULL_PTR
 Device pointer for temp
 
type(c_ptr) tbf_d = C_NULL_PTR
 Device pointer for tbf
 
type(c_ptr) tx_d = C_NULL_PTR
 Device pointer for tx
 
type(c_ptr) ty_d = C_NULL_PTR
 Device pointer for ty
 
type(c_ptr) tz_d = C_NULL_PTR
 Device pointer for tz
 
type(c_ptr) vr_d = C_NULL_PTR
 Device pointer for vr
 
type(c_ptr) vs_d = C_NULL_PTR
 Device pointer for vs
 
type(c_ptr) vt_d = C_NULL_PTR
 Device pointer for vt
 

Detailed Description

Definition at line 53 of file adv_dealias.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_dealias::adv_dealias_t::compute ( class(adv_dealias_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, not required for this method.

Definition at line 88 of file adv_dealias.f90.

◆ compute_ale() [1/2]

procedure(compute_ale_adv), deferred, pass advection::advection_t::compute_ale ( 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 wm_x,
type(field_t), intent(inout wm_y,
type(field_t), intent(inout wm_z,
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 50 of file advection.f90.

◆ compute_ale() [2/2]

procedure, pass(this) adv_dealias::adv_dealias_t::compute_ale ( class(adv_dealias_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 wm_x,
type(field_t), intent(inout wm_y,
type(field_t), intent(inout wm_z,
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 
)

Definition at line 93 of file adv_dealias.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_dealias::adv_dealias_t::compute_scalar ( class(adv_dealias_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, not required for this method.

Definition at line 91 of file adv_dealias.f90.

◆ free() [1/2]

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

Definition at line 53 of file advection.f90.

◆ free() [2/2]

procedure, pass(this) adv_dealias::adv_dealias_t::free ( class(adv_dealias_t), intent(inout this)

Definition at line 99 of file adv_dealias.f90.

◆ init()

procedure, pass(this) adv_dealias::adv_dealias_t::init ( class(adv_dealias_t), intent(inout), target  this,
integer, intent(in lxd,
type(coef_t), intent(inout), target  coef 
)
Parameters
lxdThe polynomial order of the space used in the dealiasing.
coefThe coefficients of the (space, mesh) pair.

Definition at line 97 of file adv_dealias.f90.

◆ recompute_metrics() [1/2]

procedure(advection_recompute_metrics), deferred, pass advection::advection_t::recompute_metrics ( class(advection_t), intent(inout this,
type(coef_t), intent(in coef,
logical, intent(in moving_boundary 
)
pure virtualinherited

Definition at line 51 of file advection.f90.

◆ recompute_metrics() [2/2]

procedure, pass(this) adv_dealias::adv_dealias_t::recompute_metrics ( class(adv_dealias_t), intent(inout this,
type(coef_t), intent(in coef,
logical, intent(in moving_boundary 
)

Definition at line 95 of file adv_dealias.f90.

Member Data Documentation

◆ coef_gl

type(coef_t) adv_dealias::adv_dealias_t::coef_gl

Definition at line 55 of file adv_dealias.f90.

◆ coef_gll

type(coef_t), pointer adv_dealias::adv_dealias_t::coef_gll

Definition at line 57 of file adv_dealias.f90.

◆ gll_to_gl

type(interpolator_t) adv_dealias::adv_dealias_t::gll_to_gl

Definition at line 59 of file adv_dealias.f90.

◆ tbf

real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::tbf

Definition at line 64 of file adv_dealias.f90.

◆ tbf_d

type(c_ptr) adv_dealias::adv_dealias_t::tbf_d = C_NULL_PTR

Definition at line 71 of file adv_dealias.f90.

◆ temp

real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::temp

Definition at line 64 of file adv_dealias.f90.

◆ temp_d

type(c_ptr) adv_dealias::adv_dealias_t::temp_d = C_NULL_PTR

Definition at line 69 of file adv_dealias.f90.

◆ tx

real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::tx

Definition at line 66 of file adv_dealias.f90.

◆ tx_d

type(c_ptr) adv_dealias::adv_dealias_t::tx_d = C_NULL_PTR

Definition at line 73 of file adv_dealias.f90.

◆ ty

real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::ty

Definition at line 66 of file adv_dealias.f90.

◆ ty_d

type(c_ptr) adv_dealias::adv_dealias_t::ty_d = C_NULL_PTR

Definition at line 75 of file adv_dealias.f90.

◆ tz

real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::tz

Definition at line 66 of file adv_dealias.f90.

◆ tz_d

type(c_ptr) adv_dealias::adv_dealias_t::tz_d = C_NULL_PTR

Definition at line 77 of file adv_dealias.f90.

◆ vr

real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::vr

Definition at line 67 of file adv_dealias.f90.

◆ vr_d

type(c_ptr) adv_dealias::adv_dealias_t::vr_d = C_NULL_PTR

Definition at line 79 of file adv_dealias.f90.

◆ vs

real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::vs

Definition at line 67 of file adv_dealias.f90.

◆ vs_d

type(c_ptr) adv_dealias::adv_dealias_t::vs_d = C_NULL_PTR

Definition at line 81 of file adv_dealias.f90.

◆ vt

real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::vt

Definition at line 67 of file adv_dealias.f90.

◆ vt_d

type(c_ptr) adv_dealias::adv_dealias_t::vt_d = C_NULL_PTR

Definition at line 83 of file adv_dealias.f90.

◆ xh_gl

type(space_t) adv_dealias::adv_dealias_t::xh_gl

Definition at line 61 of file adv_dealias.f90.

◆ xh_gll

type(space_t), pointer adv_dealias::adv_dealias_t::xh_gll

Definition at line 63 of file adv_dealias.f90.


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