Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
adv_lin_no_dealias Module Reference

Subroutines to add perturbed advection terms to the RHS of a transport equation.

Data Types

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

Functions/Subroutines

subroutine init_no_dealias (this, coef)
 Constructor.
 
subroutine free_no_dealias (this)
 Destructor.
 
subroutine adjoint_advection_no_dealias (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.
 
subroutine adjoint_weak_no_dealias_device (f_d, u_i_d, ub, vb, wb, coef, xh, n, work1, work2, work3, w1, w2, w3)
 Compute a single component of \( \int_\Omega \nabla v \cdot (\bar{U} \otimes u^\dagger) d \Omega |_i \) , to the RHS on device.
 
subroutine adjoint_weak_no_dealias_cpu (f, u_i, ub, vb, wb, e, coef, xh, n, work1, work2, work3, w1, w2, w3)
 Compute a single component of \( \int_\Omega \nabla v \cdot (\bar{U} \otimes u^\dagger) d \Omega |_i \) , to the RHS on CPU.
 
subroutine linear_advection_no_dealias (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.
 

Function/Subroutine Documentation

◆ adjoint_advection_no_dealias()

subroutine adv_lin_no_dealias::adjoint_advection_no_dealias ( 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 
)
private
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 119 of file adv_adjoint_no_dealias.f90.

Here is the call graph for this function:

◆ adjoint_weak_no_dealias_cpu()

subroutine adv_lin_no_dealias::adjoint_weak_no_dealias_cpu ( real(kind=rp), dimension(n), intent(inout f,
real(kind=rp), dimension(n), intent(inout u_i,
real(kind=rp), dimension(n), intent(inout ub,
real(kind=rp), dimension(n), intent(inout vb,
real(kind=rp), dimension(n), intent(inout wb,
integer, intent(in e,
type(coef_t), intent(inout coef,
type(space_t), intent(inout xh,
integer, intent(in n,
real(kind=rp), dimension(n), intent(inout work1,
real(kind=rp), dimension(n), intent(inout work2,
real(kind=rp), dimension(n), intent(inout work3,
real(kind=rp), dimension(n), intent(inout w1,
real(kind=rp), dimension(n), intent(inout w2,
real(kind=rp), dimension(n), intent(inout w3 
)
private
Parameters
fThe i'th component of this term.
u_iThe i'th component of adjoint velocity.
ubThe x component of baseflow.
vbThe y component of baseflow.
wbThe z component of baseflow.
XhThe function space.
coefThe coefficients of the (Xh, mesh) pair.
nTypically the size of the mesh.

Definition at line 317 of file adv_adjoint_no_dealias.f90.

Here is the caller graph for this function:

◆ adjoint_weak_no_dealias_device()

subroutine adv_lin_no_dealias::adjoint_weak_no_dealias_device ( type(c_ptr), intent(inout f_d,
type(c_ptr), intent(in u_i_d,
real(kind=rp), dimension(n), intent(inout ub,
real(kind=rp), dimension(n), intent(inout vb,
real(kind=rp), dimension(n), intent(inout wb,
type(coef_t), intent(inout coef,
type(space_t), intent(inout xh,
integer, intent(in n,
type(field_t), intent(inout work1,
type(field_t), intent(inout work2,
type(field_t), intent(inout work3,
type(field_t), intent(inout w1,
type(field_t), intent(inout w2,
type(field_t), intent(inout w3 
)
private
Parameters
f_dThe i'th component of this term.
u_i_dThe i'th component of adjoint velocity.
ubThe x component of baseflow.
vbThe y component of baseflow.
wbThe z component of baseflow.
XhThe function space.
coefThe coefficients of the (Xh, mesh) pair.
nTypically the size of the mesh.

Definition at line 269 of file adv_adjoint_no_dealias.f90.

Here is the caller graph for this function:

◆ free_no_dealias()

subroutine adv_lin_no_dealias::free_no_dealias ( class(adv_lin_no_dealias_t), intent(inout this)
private

Definition at line 92 of file adv_adjoint_no_dealias.f90.

◆ init_no_dealias()

subroutine adv_lin_no_dealias::init_no_dealias ( 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 79 of file adv_adjoint_no_dealias.f90.

◆ linear_advection_no_dealias()

subroutine adv_lin_no_dealias::linear_advection_no_dealias ( 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 
)
private
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 365 of file adv_adjoint_no_dealias.f90.