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

A scalar Helmholtz-like operator. Extending ax_helm_t supplies compute_vector by applying compute to each component independently. More...

Inheritance diagram for ax_helm_template::ax_helm_template_t:
Collaboration diagram for ax_helm_template::ax_helm_template_t:

Public Member Functions

procedure, pass(this) compute (this, w, u, coef, msh, xh)
 Apply the user-defined Helmholtz matrix-vector product.
 
procedure, pass(this) compute_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)
 
procedure(ax_compute), deferred, pass compute (this, w, u, coef, msh, xh)
 
procedure, pass(this) free (this)
 Release resources held by a matrix-vector product.
 

Detailed Description

Definition at line 15 of file ax_helm_template.f90.

Member Function/Subroutine Documentation

◆ compute() [1/2]

procedure, pass(this) ax_helm_template::ax_helm_template_t::compute ( class(ax_helm_template_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
wResult vector of size (lx,ly,lz,nelv).
uInput vector of size (lx,ly,lz,nelv).
coefCoefficients.
mshMesh.
XhFunction space \( X_h \).

Definition at line 17 of file ax_helm_template.f90.

Here is the call graph for this function:

◆ compute() [2/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_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::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.

◆ 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: