Neko  0.8.1
A portable framework for high-order spectral element flow simulations
ax_helm Module Reference

Data Types

type  ax_helm_t
 CPU matrix-vector product for a Helmholtz problem. More...
 

Functions/Subroutines

subroutine ax_helm_compute (w, u, coef, msh, Xh)
 Compute the product. More...
 
subroutine ax_helm_lx (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n, lx)
 Generic CPU kernel for the Helmholtz matrix-vector product. More...
 
subroutine ax_helm_lx14 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx13 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx12 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx11 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx10 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx9 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx8 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx7 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx6 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx5 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx4 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx3 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 
subroutine ax_helm_lx2 (w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, h1, G11, G22, G33, G12, G13, G23, n)
 

Function/Subroutine Documentation

◆ ax_helm_compute()

subroutine ax_helm::ax_helm_compute ( real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(inout)  w,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(inout)  u,
type(coef_t), intent(inout)  coef,
type(mesh_t), intent(inout)  msh,
type(space_t), intent(inout)  Xh 
)

Compute the product.

Parameters
wVector of size (lx,ly,lz,nelv).
uVector of size (lx,ly,lz,nelv).
coefCoefficients.
mshMesh.
XhFunction space \( X_h \).
Note
Since this is a performance-crtical routine, it is implemented in several kernels corresponding to different polynmial orders.

Definition at line 60 of file ax_helm.f90.

Here is the call graph for this function:

◆ ax_helm_lx()

subroutine ax_helm::ax_helm_lx ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n,
integer, intent(in)  lx 
)
private

Generic CPU kernel for the Helmholtz matrix-vector product.

Definition at line 119 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx10()

subroutine ax_helm::ax_helm_lx10 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 858 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx11()

subroutine ax_helm::ax_helm_lx11 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 710 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx12()

subroutine ax_helm::ax_helm_lx12 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 556 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx13()

subroutine ax_helm::ax_helm_lx13 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 395 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx14()

subroutine ax_helm::ax_helm_lx14 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 229 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx2()

subroutine ax_helm::ax_helm_lx2 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 1826 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx3()

subroutine ax_helm::ax_helm_lx3 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 1726 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx4()

subroutine ax_helm::ax_helm_lx4 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 1620 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx5()

subroutine ax_helm::ax_helm_lx5 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 1508 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx6()

subroutine ax_helm::ax_helm_lx6 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 1390 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx7()

subroutine ax_helm::ax_helm_lx7 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 1266 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx8()

subroutine ax_helm::ax_helm_lx8 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 1136 of file ax_helm.f90.

Here is the caller graph for this function:

◆ ax_helm_lx9()

subroutine ax_helm::ax_helm_lx9 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  w,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  u,
real(kind=rp), dimension(lx,lx), intent(in)  Dx,
real(kind=rp), dimension(lx,lx), intent(in)  Dy,
real(kind=rp), dimension(lx,lx), intent(in)  Dz,
real(kind=rp), dimension(lx,lx), intent(in)  Dxt,
real(kind=rp), dimension(lx,lx), intent(in)  Dyt,
real(kind=rp), dimension(lx,lx), intent(in)  Dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  h1,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
integer, intent(in)  n 
)
private

Definition at line 1000 of file ax_helm.f90.

Here is the caller graph for this function: