40 type,
public,
abstract ::
pc_t
42 procedure(
pc_solve), pass(this),
deferred :: solve
43 procedure(
pc_update), pass(this),
deferred :: update
55 integer,
intent(in) :: n
56 class(
pc_t),
intent(inout) :: this
57 real(kind=
rp),
dimension(n),
intent(inout) :: z
58 real(kind=
rp),
dimension(n),
intent(inout) :: r
64 class(
pc_t),
intent(inout) :: this
70 module subroutine precon_factory(pc, type_name)
71 class(pc_t),
target,
allocatable,
intent(inout) :: pc
72 character(len=*),
intent(in) :: type_name
73 end subroutine precon_factory
76 module subroutine precon_destroy(pc)
77 class(pc_t),
allocatable,
intent(inout) :: pc
78 end subroutine precon_destroy
81 public :: precon_factory, precon_destroy
Abstract interface for solving .
integer, parameter, public rp
Global precision used in computations.
Defines a canonical Krylov preconditioner.