Neko 1.99.6
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
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 \( Ax \) product, taking three components of a vector field in an uncoupled manner.
 
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.
 
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(in u,
type(coef_t), intent(in coef,
type(mesh_t), intent(in msh,
type(space_t), intent(in xh 
)
Parameters
auResult for the first component of the vector.
avResult for the first component of the vector.
awResult for the first component of the vector.
uThe first component of the vector.
vThe second component of the vector.
wThe third component of the vector.
coefCoefficients.
mshMesh.
XhFunction space \( X_h \). Compute the product.
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 88 of file ax_helm_cpu.f90.

◆ 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 180 of file ax_helm_cpu.f90.

◆ 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 929 of file ax_helm_cpu.f90.

◆ 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 779 of file ax_helm_cpu.f90.

◆ 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 623 of file ax_helm_cpu.f90.

◆ 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 460 of file ax_helm_cpu.f90.

◆ 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 292 of file ax_helm_cpu.f90.

◆ 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 1913 of file ax_helm_cpu.f90.

◆ 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 1811 of file ax_helm_cpu.f90.

◆ 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 1703 of file ax_helm_cpu.f90.

◆ 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 1589 of file ax_helm_cpu.f90.

◆ 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 1469 of file ax_helm_cpu.f90.

◆ 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 1343 of file ax_helm_cpu.f90.

◆ 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 1211 of file ax_helm_cpu.f90.

◆ 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 1073 of file ax_helm_cpu.f90.