Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
ax_helm_full_cpu::ax_helm_full_cpu_t Type Referenceabstract

CPU matrix-vector product for a Helmholtz problem with full stress tensor. More...

Inheritance diagram for ax_helm_full_cpu::ax_helm_full_cpu_t:
Collaboration diagram for ax_helm_full_cpu::ax_helm_full_cpu_t:

Public Member Functions

procedure, pass(this) compute_vector (this, au, av, aw, u, v, w, coef, msh, xh)
 Compute the product.
 
procedure, pass(this) compute (this, w, u, coef, msh, xh)
 Compute the product for 3 fields.
 
procedure(ax_compute), deferred, pass compute (this, w, u, coef, msh, xh)
 
procedure(ax_compute_vector), deferred, pass compute_vector (this, au, av, aw, u, v, w, coef, msh, xh)
 
procedure, pass(this) free (this)
 Release resources held by a matrix-vector product.
 

Detailed Description

Definition at line 43 of file ax_helm_full_cpu.f90.

Member Function/Subroutine Documentation

◆ compute() [1/2]

procedure(ax_compute), deferred, pass ax_product::ax_t::compute ( class(ax_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 
)
pure virtualinherited

Definition at line 45 of file ax.f90.

◆ compute() [2/2]

procedure, pass(this) ax_helm_full::ax_helm_full_t::compute ( class(ax_helm_full_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 
)
inherited
Parameters
wVector of size (lx,ly,lz,nelv).
uVector of size (lx,ly,lz,nelv).
coefCoefficients.
mshMesh.
XhFunction space \( X_h \).

Definition at line 48 of file ax_helm_full.f90.

◆ compute_vector() [1/2]

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/2]

procedure, pass(this) ax_helm_full_cpu::ax_helm_full_cpu_t::compute_vector ( class(ax_helm_full_cpu_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 
)
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 \).
Note
The mass term \( h_2 B u \) is applied inside the element kernels (when coefifh2 is set), while the element is still in cache.

Definition at line 46 of file ax_helm_full_cpu.f90.

◆ free()

procedure, pass(this) ax_product::ax_t::free ( class(ax_t), intent(inout)  this)
inherited

This default implementation permits resource-free operators to require no special handling. Descendants with pointer or allocatable components should override it.

Definition at line 47 of file ax.f90.


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