33submodule(
krylov) krylov_fctry
 
   58  character(len=20) :: KSP_KNOWN_TYPES(9) = [character(len=20) :: &
 
   79  module subroutine krylov_solver_factory(object, n, type_name, &
 
   80       max_iter, abstol, m, monitor)
 
   81    class(ksp_t), 
allocatable, 
intent(inout) :: object
 
   82    integer, 
intent(in), 
value :: n
 
   83    character(len=*), 
intent(in) :: type_name
 
   84    integer, 
intent(in) :: max_iter
 
   85    real(kind=
rp), 
optional :: abstol
 
   86    class(pc_t), 
optional, 
intent(in), 
target :: M
 
   87    logical, 
optional, 
intent(in) :: monitor
 
   89    if (
allocated(object)) 
then 
   94    select case (trim(type_name))
 
  101          allocate(
cg_t::object)
 
  116             call neko_error(
'PipeCG not supported for OpenCL')
 
  126             call neko_error(
'FusedCG not supported for OpenCL')
 
  130          call neko_error(
'FusedCG only supported for CUDA/HIP')
 
  133    case (
'fused_coupled_cg')
 
  136             call neko_error(
'Coupled FusedCG not supported for OpenCL')
 
  140          call neko_error(
'Coupled FusedCG only supported for CUDA/HIP')
 
  169    call object%init(n, max_iter, m = m, abs_tol = abstol, monitor = monitor)
 
  171  end subroutine krylov_solver_factory
 
  173end submodule krylov_fctry
 
Defines various Bi-Conjugate Gradient Stabilized methods.
 
Defines a communication avoiding Conjugate Gradient method.
 
Defines a coupled Conjugate Gradient methods for accelerators.
 
Defines a coupled Conjugate Gradient methods.
 
Defines various Conjugate Gradient methods for accelerators.
 
Defines various Conjugate Gradient methods.
 
Defines various Conjugate Gradient methods.
 
Chebyshev preconditioner.
 
Chebyshev preconditioner.
 
Defines a fused Conjugate Gradient method for accelerators.
 
Defines a fused Conjugate Gradient method for accelerators.
 
Defines various GMRES methods.
 
Defines various GMRES methods.
 
Defines various GMRES methods.
 
Implements the base abstract type for Krylov solvers plus helper types.
 
integer, parameter neko_bcknd_sx
 
integer, parameter neko_bcknd_device
 
integer, parameter neko_bcknd_opencl
 
integer, parameter, public rp
Global precision used in computations.
 
Defines a pipelined Conjugate Gradient methods.
 
Defines a pipelined Conjugate Gradient methods SX-Aurora backend.
 
Defines a pipelined Conjugate Gradient methods.
 
subroutine, public neko_type_error(base_type, wrong_type, known_types)
Reports an error allocating a type for a particular base pointer class.
 
Standard preconditioned Bi-Conjugate Gradient Stabilized method.
 
S-step communication avoiding preconditioned conjugate gradient method.
 
Standard preconditioned conjugate gradient method.
 
Coupled preconditioned conjugate gradient method.
 
Device based coupled preconditioned conjugate gradient method.
 
Device based preconditioned conjugate gradient method.
 
Standard preconditioned conjugate gradient method (SX version)
 
Defines a Chebyshev preconditioner.
 
Defines a Chebyshev preconditioner.
 
Fused preconditioned conjugate gradient method.
 
Fused preconditioned conjugate gradient method.
 
Standard preconditioned generalized minimal residual method.
 
Standard preconditioned generalized minimal residual method.
 
Standard preconditioned generalized minimal residual method (SX version)
 
Pipelined preconditioned conjugate gradient method.
 
Pipelined preconditioned conjugate gradient method.
 
Pipelined preconditioned conjugate gradient method for SX-Aurora.
 
Defines a canonical Krylov preconditioner.