Neko 1.99.3
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 the product.
 
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
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 59 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 151 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 900 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 750 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 594 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 431 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 263 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 1884 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 1782 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 1674 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 1560 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 1440 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 1314 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 1182 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 1044 of file ax_helm_cpu.f90.

Here is the caller graph for this function: