create_PIM Interface

interface
public module subroutine create_PIM(self, comm, krylov_method, ndim_loc, resmax, matvec, precondl, precondr, maxiter, nrestart, dbgout)

Arguments

Type IntentOptional Attributes Name
class(solver3d_PIM_t), intent(inout) :: self

PIM solver

integer, intent(in) :: comm

MPI communicator

character(len=*), intent(in) :: krylov_method

Krylov method to be used, available options are (see PIM manual): - CG - RGMRES - BICGSTAB - RBICGSTAB

integer, intent(in) :: ndim_loc

Local dimension (on rank) of matrix

real(kind=FP), intent(in) :: resmax

Maximum allowed tolerance of solution x on normalised residual

procedure(matvec_interface) :: matvec

Routine performing matrix vector multiplication

procedure(precond_interface), optional :: precondl

Routine performing left preconditioning

procedure(precond_interface), optional :: precondr

Routine performing right preconditioning

integer, intent(in), optional :: maxiter

Maximum number of outer iterations (default=10)

integer, intent(in), optional :: nrestart

Number of iterations before restart (default=10)

integer, intent(in), optional :: dbgout

Debug output level

Description

Initialisation of 3d solver