create_preconditioner_sparse_crs_bicgstab Module Subroutine

module subroutine create_preconditioner_sparse_crs_bicgstab(self, A)

No preconditioner Jacobi preconditioner ILU preconditioner

Arguments

Type IntentOptional Attributes Name
class(type_solver_sparse_crs_bicgstab), intent(inout) :: self
type(type_crs), intent(in) :: A

Calls

proc~~create_preconditioner_sparse_crs_bicgstab~~CallsGraph proc~create_preconditioner_sparse_crs_bicgstab create_preconditioner_sparse_crs_bicgstab m m proc~create_preconditioner_sparse_crs_bicgstab->m proc~create_preconditioner_jacobi create_preconditioner_jacobi proc~create_preconditioner_sparse_crs_bicgstab->proc~create_preconditioner_jacobi ind ind proc~create_preconditioner_jacobi->ind ptr ptr proc~create_preconditioner_jacobi->ptr val val proc~create_preconditioner_jacobi->val

Source Code

    module subroutine create_preconditioner_sparse_crs_bicgstab(self, A)
        implicit none
        class(type_solver_sparse_crs_bicgstab), intent(inout) :: self
        type(type_crs), intent(in) :: A
        integer(int32) :: i, j

        select case (self%Preconditioner)
        case (0)
            !! No preconditioner
            return
        case (1)
            !! Jacobi preconditioner
            call create_preconditioner_jacobi(self%N, A, self%M(:))
        case (2)
            !! ILU preconditioner
        end select

    end subroutine create_preconditioner_sparse_crs_bicgstab