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

Device matrix-vector product for a Helmholtz problem, reading the geometric factors \( G_{ij} \) from their compressed form in coef_t. More...

Inheritance diagram for ax_helm_compr_device::ax_helm_compr_device_t:
Collaboration diagram for ax_helm_compr_device::ax_helm_compr_device_t:

Public Member Functions

procedure, pass(this) compute (this, w, u, coef, msh, xh)
 
procedure, pass(this) compute_vector (this, au, av, aw, u, v, w, coef, msh, xh)
 
procedure, pass(this) compute (this, w, u, coef, msh, xh)
 
procedure(ax_compute), deferred, pass compute (this, w, u, coef, msh, xh)
 
procedure, pass(this) compute_vector (this, au, av, aw, u, v, w, coef, msh, xh)
 
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, pass(this) free (this)
 Release resources held by a matrix-vector product.
 

Detailed Description

Element e reads the copy coefcompression_inds(e) of coefG11_compr etc. Without compressed factors, see coef_t::enable_geo_compression, the product is the one of ax_helm_device_t.

Definition at line 53 of file ax_helm_compr_device.F90.

Member Function/Subroutine Documentation

◆ compute() [1/3]

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 46 of file ax.f90.

◆ compute() [2/3]

procedure, pass(this) ax_helm_compr_device::ax_helm_compr_device_t::compute ( class(ax_helm_compr_device_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 
)

Definition at line 55 of file ax_helm_compr_device.F90.

◆ compute() [3/3]

procedure, pass(this) ax_helm_device::ax_helm_device_t::compute ( class(ax_helm_device_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

Definition at line 48 of file ax_helm_device.F90.

◆ compute_vector() [1/4]

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 47 of file ax.f90.

◆ compute_vector() [2/4]

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

procedure, pass(this) ax_helm_compr_device::ax_helm_compr_device_t::compute_vector ( class(ax_helm_compr_device_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 
)

Definition at line 56 of file ax_helm_compr_device.F90.

◆ compute_vector() [4/4]

procedure, pass(this) ax_helm_device::ax_helm_device_t::compute_vector ( class(ax_helm_device_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 49 of file ax_helm_device.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 48 of file ax.f90.


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