Neko 1.99.9
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 (this, 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 ( class(ax_helm_cpu_t), intent(in)  this,
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 181 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 930 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 780 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 624 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 461 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 293 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 1914 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 1812 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 1704 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 1590 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 1470 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 1344 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 1212 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 1074 of file ax_helm_cpu.f90.