Neko 1.99.6
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
ax_helm_cpu::ax_helm_cpu_t Type Referenceabstract

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

Inheritance diagram for ax_helm_cpu::ax_helm_cpu_t:
Collaboration diagram for ax_helm_cpu::ax_helm_cpu_t:

Public Member Functions

procedure, pass(thiscompute_vector ax_helm_compute_vector
 Compute the product (vector version).
 
procedure, pass(thiscompute_vector (this, au, av, aw, u, v, w, coef, msh, xh)
 
procedure(ax_compute_vector), deferred, pass compute_vector (this, au, av, aw, u, v, w, coef, msh, xh)
 

Static Public Member Functions

procedure, nopass compute (w, u, coef, msh, xh)
 Compute the product.
 

Detailed Description

Definition at line 43 of file ax_helm_cpu.f90.

Member Function/Subroutine Documentation

◆ compute()

procedure, nopass ax_helm_cpu::ax_helm_cpu_t::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 
)
staticvirtual
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.

Implements ax_product::ax_t.

Definition at line 46 of file ax_helm_cpu.f90.

◆ compute_vector() [1/3]

procedure(ax_compute_vector), deferred, pass ax_product::ax_t::compute_vector ( class(ax_t), intent(in this,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(inout au,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(inout av,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(inout aw,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(in u,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(in v,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(in w,
type(coef_t), intent(in coef,
type(mesh_t), intent(in msh,
type(space_t), intent(in xh 
)
pure virtualinherited

Definition at line 46 of file ax.f90.

◆ compute_vector() [2/3]

procedure, pass(this) ax_helm::ax_helm_t::compute_vector ( class(ax_helm_t), intent(in this,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(inout au,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(inout av,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(inout aw,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(in u,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(in v,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(in w,
type(coef_t), intent(in coef,
type(mesh_t), intent(in msh,
type(space_t), intent(in xh 
)
inherited

Definition at line 47 of file ax_helm.f90.

◆ compute_vector() [3/3]

procedure, pass(this) ax_helm_cpu::ax_helm_cpu_t::compute_vector

Definition at line 48 of file ax_helm_cpu.f90.

Here is the call graph for this function:

The documentation for this type was generated from the following file: