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

Type encapsulating advection routines with no dealiasing applied. More...

Inheritance diagram for adv_lin_no_dealias::adv_lin_no_dealias_t:
Collaboration diagram for adv_lin_no_dealias::adv_lin_no_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, 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

real(kind=rp), dimension(:), allocatable temp
 
type(c_ptrtemp_d = C_NULL_PTR
 

Detailed Description

Definition at line 55 of file adv_adjoint_no_dealias.f90.

Member Function/Subroutine Documentation

◆ compute_adjoint() [1/2]

procedure, pass(this) adv_lin_no_dealias::adv_lin_no_dealias_t::compute_adjoint ( class(adv_lin_no_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 68 of file adv_adjoint_no_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_no_dealias::adv_lin_no_dealias_t::compute_linear ( class(adv_lin_no_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 62 of file adv_adjoint_no_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_no_dealias::adv_lin_no_dealias_t::free ( class(adv_lin_no_dealias_t), intent(inout this)

Definition at line 72 of file adv_adjoint_no_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_no_dealias::adv_lin_no_dealias_t::init ( class(adv_lin_no_dealias_t), intent(inout this,
type(coef_t), intent(in coef 
)
Parameters
coefThe coefficients of the (space, mesh) pair.

Definition at line 70 of file adv_adjoint_no_dealias.f90.

Member Data Documentation

◆ temp

real(kind=rp), dimension(:), allocatable adv_lin_no_dealias::adv_lin_no_dealias_t::temp

Definition at line 56 of file adv_adjoint_no_dealias.f90.

◆ temp_d

type(c_ptr) adv_lin_no_dealias::adv_lin_no_dealias_t::temp_d = C_NULL_PTR

Definition at line 57 of file adv_adjoint_no_dealias.f90.


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