43 type,
public,
abstract ::
ax_t
54 module subroutine ax_helm_allocator(object, type_name)
55 class(ax_t),
allocatable,
intent(inout) :: object
56 character(len=*),
intent(in) :: type_name
57 end subroutine ax_helm_allocator
68 subroutine ax_helm_allocate(obj)
70 class(ax_t),
allocatable,
intent(inout) :: obj
71 end subroutine ax_helm_allocate
76 module subroutine register_ax_helm(type_name, allocator)
77 character(len=*),
intent(in) :: type_name
78 procedure(ax_helm_allocate),
pointer,
intent(in) :: allocator
79 end subroutine register_ax_helm
83 type ax_helm_allocator_entry
84 character(len=20) :: type_name
85 procedure(ax_helm_allocate),
pointer,
nopass :: allocator
86 end type ax_helm_allocator_entry
89 type(ax_helm_allocator_entry),
allocatable :: ax_helm_registry(:)
92 integer :: ax_helm_registry_size = 0
94 public :: ax_helm_allocator, register_ax_helm, ax_helm_allocate
104 subroutine ax_compute(w, u, coef, msh, Xh)
111 type(
space_t),
intent(in) :: Xh
112 type(
mesh_t),
intent(in) :: msh
113 type(
coef_t),
intent(in) :: coef
114 real(kind=
rp),
intent(inout) :: w(xh%lx, xh%ly, xh%lz, msh%nelv)
115 real(kind=
rp),
intent(in) :: u(xh%lx, xh%ly, xh%lz, msh%nelv)
116 end subroutine ax_compute
131 subroutine ax_compute_vector(this, au, av, aw, u, v, w, coef, msh, Xh)
138 class(ax_t),
intent(in) :: this
139 type(
space_t),
intent(in) :: Xh
140 type(
mesh_t),
intent(in) :: msh
141 type(
coef_t),
intent(in) :: coef
142 real(kind=
rp),
intent(inout) :: au(xh%lx, xh%ly, xh%lz, msh%nelv)
143 real(kind=
rp),
intent(inout) :: av(xh%lx, xh%ly, xh%lz, msh%nelv)
144 real(kind=
rp),
intent(inout) :: aw(xh%lx, xh%ly, xh%lz, msh%nelv)
145 real(kind=
rp),
intent(in) :: u(xh%lx, xh%ly, xh%lz, msh%nelv)
146 real(kind=
rp),
intent(in) :: v(xh%lx, xh%ly, xh%lz, msh%nelv)
147 real(kind=
rp),
intent(in) :: w(xh%lx, xh%ly, xh%lz, msh%nelv)
148 end subroutine ax_compute_vector
Abstract interface for computing inside a Krylov method, taking 3 components of a vector field in a ...
Abstract interface for computing inside a Krylov method.
Defines a Matrix-vector product.
integer, parameter, public rp
Global precision used in computations.
Defines a function space.
Base type for a matrix-vector product providing .
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
The function space for the SEM solution fields.