Neko  0.9.0
A portable framework for high-order spectral element flow simulations
ax_helm_cpu Module Reference

Data Types

type  ax_helm_cpu_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 Helmholz 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_cpu::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 
)
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_cpu.f90.

Here is the call graph for this function:

◆ ax_helm_lx()

subroutine ax_helm_cpu::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
Parameters
wResult.
uVelocity field.
DxDerivative operator in first dimension.
DyDerivative operator in second dimension.
DzDerivative operator in third dimension.
DxtDerivative operator transpose in first dimension.
DytDerivative operator transpose in second dimension.
DztDerivative operator transpose in third dimension.
G11Geometric factor.
nNumber of elements.
lxPolynomial order.

Definition at line 144 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx10()

subroutine ax_helm_cpu::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 883 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx11()

subroutine ax_helm_cpu::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 735 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx12()

subroutine ax_helm_cpu::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 581 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx13()

subroutine ax_helm_cpu::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 420 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx14()

subroutine ax_helm_cpu::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 254 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx2()

subroutine ax_helm_cpu::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 1851 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx3()

subroutine ax_helm_cpu::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 1751 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx4()

subroutine ax_helm_cpu::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 1645 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx5()

subroutine ax_helm_cpu::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 1533 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx6()

subroutine ax_helm_cpu::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 1415 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx7()

subroutine ax_helm_cpu::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 1291 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx8()

subroutine ax_helm_cpu::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 1161 of file ax_helm_cpu.f90.

Here is the caller graph for this function:

◆ ax_helm_lx9()

subroutine ax_helm_cpu::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 1025 of file ax_helm_cpu.f90.

Here is the caller graph for this function: