Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
adv_lin_dealias::adv_lin_dealias_t Type Referenceabstract

Type encapsulating advection routines with dealiasing. More...

Inheritance diagram for adv_lin_dealias::adv_lin_dealias_t:
Collaboration diagram for adv_lin_dealias::adv_lin_dealias_t:

Public Member Functions

procedure, pass(thiscompute_linear (this, vx, vy, vz, vxb, vyb, vzb, fx, fy, fz, xh, coef, n)
 Add the linearized advection term for the fluid, i.e. \(u' \cdot \nabla \bar{U} + \bar{U} \cdot \nabla u' \), to the RHS.
 
procedure, pass(thiscompute_adjoint (this, vx, vy, vz, vxb, vyb, vzb, fx, fy, fz, xh, coef, n)
 Add the adjoint advection term for the fluid in weak form, i.e. \( \int_\Omega v \cdot u' (\nabla \bar{U})^T u^\dagger d\Omega + \int_\Omega \nabla v \cdot (\bar{U} \otimes u^\dagger) d \Omega \), to the RHS.
 
procedure, pass(thisinit (this, lxd, coef)
 Constructor.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure(compute_adv_lin), deferred, pass compute_linear (this, vx, vy, vz, vxb, vyb, vzb, fx, fy, fz, xh, coef, n)
 
procedure(compute_adv_lin), deferred, pass compute_adjoint (this, vx, vy, vz, vxb, vyb, vzb, fx, fy, fz, xh, coef, n)
 
procedure(advection_adjoint_free), deferred, pass free (this)
 

Public Attributes

type(coef_t) coef_gl
 Coeffs of the higher-order space.
 
type(coef_t), pointer coef_gll
 Coeffs of the original space in the simulation.
 
type(interpolator_t) gll_to_gl
 Interpolator between the original and higher-order spaces.
 
type(space_t) xh_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_ptrtemp_d = C_NULL_PTR
 Device pointer for temp
 
type(c_ptrtbf_d = C_NULL_PTR
 Device pointer for tbf
 
type(c_ptrtx_d = C_NULL_PTR
 Device pointer for u on GL.
 
type(c_ptrty_d = C_NULL_PTR
 Device pointer for v on GL.
 
type(c_ptrtz_d = C_NULL_PTR
 Device pointer for w on GL.
 
type(c_ptrvr_d = C_NULL_PTR
 Device pointer for vr
 
type(c_ptrvs_d = C_NULL_PTR
 Device pointer for vs
 
type(c_ptrvt_d = C_NULL_PTR
 Device pointer for vt
 
real(kind=rp), dimension(:), allocatable txb
 
real(kind=rp), dimension(:), allocatable tyb
 
real(kind=rp), dimension(:), allocatable tzb
 
type(c_ptrtxb_d = C_NULL_PTR
 Device pointer for Ub on GL.
 
type(c_ptrtyb_d = C_NULL_PTR
 Device pointer for Vb on GL.
 
type(c_ptrtzb_d = C_NULL_PTR
 Device pointer for Wb on GL.
 
real(kind=rp), dimension(:), allocatable duxb
 
real(kind=rp), dimension(:), allocatable duyb
 
real(kind=rp), dimension(:), allocatable duzb
 
real(kind=rp), dimension(:), allocatable dvxb
 
real(kind=rp), dimension(:), allocatable dvyb
 
real(kind=rp), dimension(:), allocatable dvzb
 
real(kind=rp), dimension(:), allocatable dwxb
 
real(kind=rp), dimension(:), allocatable dwyb
 
real(kind=rp), dimension(:), allocatable dwzb
 
type(c_ptrduxb_d = C_NULL_PTR
 Device pointer for dUb/dx
 
type(c_ptrduyb_d = C_NULL_PTR
 Device pointer for dUb/dy
 
type(c_ptrduzb_d = C_NULL_PTR
 Device pointer for dUb/dz
 
type(c_ptrdvxb_d = C_NULL_PTR
 Device pointer for dVb/dx
 
type(c_ptrdvyb_d = C_NULL_PTR
 Device pointer for dVb/dy
 
type(c_ptrdvzb_d = C_NULL_PTR
 Device pointer for dVb/dz
 
type(c_ptrdwxb_d = C_NULL_PTR
 Device pointer for dWb/dx
 
type(c_ptrdwyb_d = C_NULL_PTR
 Device pointer for dWb/dy
 
type(c_ptrdwzb_d = C_NULL_PTR
 Device pointer for dWb/dz
 

Detailed Description

Definition at line 52 of file adv_adjoint_dealias.f90.

Member Function/Subroutine Documentation

◆ compute_adjoint() [1/2]

procedure, pass(this) adv_lin_dealias::adv_lin_dealias_t::compute_adjoint ( class(adv_lin_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 vxb,
type(field_t), intent(inout vyb,
type(field_t), intent(inout vzb,
type(field_t), intent(inout fx,
type(field_t), intent(inout fy,
type(field_t), intent(inout fz,
type(space_t), intent(inout xh,
type(coef_t), intent(inout coef,
integer, intent(in n 
)
Parameters
vxThe x component of adjoint velocity.
vyThe y component of adjoint velocity.
vzThe z component of adjoint velocity.
vxbThe x component of baseflow.
vybThe y component of baseflow.
vzbThe z component of baseflow.
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.

Definition at line 124 of file adv_adjoint_dealias.f90.

◆ compute_adjoint() [2/2]

procedure(compute_adv_lin), deferred, pass advection_adjoint::advection_adjoint_t::compute_adjoint ( class(advection_adjoint_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 vxb,
type(field_t), intent(inout vyb,
type(field_t), intent(inout vzb,
type(field_t), intent(inout fx,
type(field_t), intent(inout fy,
type(field_t), intent(inout fz,
type(space_t), intent(inout xh,
type(coef_t), intent(inout coef,
integer, intent(in n 
)
pure virtualinherited

Definition at line 46 of file advection_adjoint.f90.

◆ compute_linear() [1/2]

procedure, pass(this) adv_lin_dealias::adv_lin_dealias_t::compute_linear ( class(adv_lin_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 vxb,
type(field_t), intent(inout vyb,
type(field_t), intent(inout vzb,
type(field_t), intent(inout fx,
type(field_t), intent(inout fy,
type(field_t), intent(inout fz,
type(space_t), intent(inout xh,
type(coef_t), intent(inout coef,
integer, intent(in n 
)
Parameters
vxThe x component of perturbed velocity.
vyThe y component of perturbed velocity.
vzThe z component of perturbed velocity.
vxbThe x component of baseflow.
vybThe y component of baseflow.
vzbThe z component of baseflow.
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.

Definition at line 118 of file adv_adjoint_dealias.f90.

◆ compute_linear() [2/2]

procedure(compute_adv_lin), deferred, pass advection_adjoint::advection_adjoint_t::compute_linear ( class(advection_adjoint_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 vxb,
type(field_t), intent(inout vyb,
type(field_t), intent(inout vzb,
type(field_t), intent(inout fx,
type(field_t), intent(inout fy,
type(field_t), intent(inout fz,
type(space_t), intent(inout xh,
type(coef_t), intent(inout coef,
integer, intent(in n 
)
pure virtualinherited

Definition at line 45 of file advection_adjoint.f90.

◆ free() [1/2]

procedure, pass(this) adv_lin_dealias::adv_lin_dealias_t::free ( class(adv_lin_dealias_t), intent(inout this)

Definition at line 129 of file adv_adjoint_dealias.f90.

◆ free() [2/2]

procedure(advection_adjoint_free), deferred, pass advection_adjoint::advection_adjoint_t::free ( class(advection_adjoint_t), intent(inout this)
pure virtualinherited

Definition at line 49 of file advection_adjoint.f90.

◆ init()

procedure, pass(this) adv_lin_dealias::adv_lin_dealias_t::init ( class(adv_lin_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 127 of file adv_adjoint_dealias.f90.

Member Data Documentation

◆ coef_gl

type(coef_t) adv_lin_dealias::adv_lin_dealias_t::coef_gl

Definition at line 54 of file adv_adjoint_dealias.f90.

◆ coef_gll

type(coef_t), pointer adv_lin_dealias::adv_lin_dealias_t::coef_gll

Definition at line 56 of file adv_adjoint_dealias.f90.

◆ duxb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::duxb

Definition at line 92 of file adv_adjoint_dealias.f90.

◆ duxb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::duxb_d = C_NULL_PTR

Definition at line 96 of file adv_adjoint_dealias.f90.

◆ duyb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::duyb

Definition at line 92 of file adv_adjoint_dealias.f90.

◆ duyb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::duyb_d = C_NULL_PTR

Definition at line 98 of file adv_adjoint_dealias.f90.

◆ duzb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::duzb

Definition at line 92 of file adv_adjoint_dealias.f90.

◆ duzb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::duzb_d = C_NULL_PTR

Definition at line 100 of file adv_adjoint_dealias.f90.

◆ dvxb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::dvxb

Definition at line 93 of file adv_adjoint_dealias.f90.

◆ dvxb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::dvxb_d = C_NULL_PTR

Definition at line 102 of file adv_adjoint_dealias.f90.

◆ dvyb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::dvyb

Definition at line 93 of file adv_adjoint_dealias.f90.

◆ dvyb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::dvyb_d = C_NULL_PTR

Definition at line 104 of file adv_adjoint_dealias.f90.

◆ dvzb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::dvzb

Definition at line 93 of file adv_adjoint_dealias.f90.

◆ dvzb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::dvzb_d = C_NULL_PTR

Definition at line 106 of file adv_adjoint_dealias.f90.

◆ dwxb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::dwxb

Definition at line 94 of file adv_adjoint_dealias.f90.

◆ dwxb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::dwxb_d = C_NULL_PTR

Definition at line 108 of file adv_adjoint_dealias.f90.

◆ dwyb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::dwyb

Definition at line 94 of file adv_adjoint_dealias.f90.

◆ dwyb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::dwyb_d = C_NULL_PTR

Definition at line 110 of file adv_adjoint_dealias.f90.

◆ dwzb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::dwzb

Definition at line 94 of file adv_adjoint_dealias.f90.

◆ dwzb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::dwzb_d = C_NULL_PTR

Definition at line 112 of file adv_adjoint_dealias.f90.

◆ gll_to_gl

type(interpolator_t) adv_lin_dealias::adv_lin_dealias_t::gll_to_gl

Definition at line 58 of file adv_adjoint_dealias.f90.

◆ tbf

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::tbf

Definition at line 63 of file adv_adjoint_dealias.f90.

◆ tbf_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::tbf_d = C_NULL_PTR

Definition at line 70 of file adv_adjoint_dealias.f90.

◆ temp

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::temp

Definition at line 63 of file adv_adjoint_dealias.f90.

◆ temp_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::temp_d = C_NULL_PTR

Definition at line 68 of file adv_adjoint_dealias.f90.

◆ tx

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::tx

Definition at line 65 of file adv_adjoint_dealias.f90.

◆ tx_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::tx_d = C_NULL_PTR

Definition at line 72 of file adv_adjoint_dealias.f90.

◆ txb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::txb

Definition at line 84 of file adv_adjoint_dealias.f90.

◆ txb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::txb_d = C_NULL_PTR

Definition at line 86 of file adv_adjoint_dealias.f90.

◆ ty

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::ty

Definition at line 65 of file adv_adjoint_dealias.f90.

◆ ty_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::ty_d = C_NULL_PTR

Definition at line 74 of file adv_adjoint_dealias.f90.

◆ tyb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::tyb

Definition at line 84 of file adv_adjoint_dealias.f90.

◆ tyb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::tyb_d = C_NULL_PTR

Definition at line 88 of file adv_adjoint_dealias.f90.

◆ tz

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::tz

Definition at line 65 of file adv_adjoint_dealias.f90.

◆ tz_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::tz_d = C_NULL_PTR

Definition at line 76 of file adv_adjoint_dealias.f90.

◆ tzb

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::tzb

Definition at line 84 of file adv_adjoint_dealias.f90.

◆ tzb_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::tzb_d = C_NULL_PTR

Definition at line 90 of file adv_adjoint_dealias.f90.

◆ vr

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::vr

Definition at line 66 of file adv_adjoint_dealias.f90.

◆ vr_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::vr_d = C_NULL_PTR

Definition at line 78 of file adv_adjoint_dealias.f90.

◆ vs

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::vs

Definition at line 66 of file adv_adjoint_dealias.f90.

◆ vs_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::vs_d = C_NULL_PTR

Definition at line 80 of file adv_adjoint_dealias.f90.

◆ vt

real(kind=rp), dimension(:), allocatable adv_lin_dealias::adv_lin_dealias_t::vt

Definition at line 66 of file adv_adjoint_dealias.f90.

◆ vt_d

type(c_ptr) adv_lin_dealias::adv_lin_dealias_t::vt_d = C_NULL_PTR

Definition at line 82 of file adv_adjoint_dealias.f90.

◆ xh_gl

type(space_t) adv_lin_dealias::adv_lin_dealias_t::xh_gl

Definition at line 60 of file adv_adjoint_dealias.f90.

◆ xh_gll

type(space_t), pointer adv_lin_dealias::adv_lin_dealias_t::xh_gll

Definition at line 62 of file adv_adjoint_dealias.f90.


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