apply_preconditioner_sparse_crs_bicgstab Module Subroutine

module subroutine apply_preconditioner_sparse_crs_bicgstab(self, b, x)

No preconditioner Jacobi preconditioner ILU preconditioner

Arguments

Type IntentOptional Attributes Name
class(type_solver_sparse_crs_bicgstab), intent(inout) :: self
real(kind=real64), intent(inout) :: b(:)
real(kind=real64), intent(inout) :: x(:)

Calls

proc~~apply_preconditioner_sparse_crs_bicgstab~~CallsGraph proc~apply_preconditioner_sparse_crs_bicgstab apply_preconditioner_sparse_crs_bicgstab m m proc~apply_preconditioner_sparse_crs_bicgstab->m proc~apply_preconditioner_jacobi apply_preconditioner_jacobi proc~apply_preconditioner_sparse_crs_bicgstab->proc~apply_preconditioner_jacobi

Source Code

    module subroutine apply_preconditioner_sparse_crs_bicgstab(self, b, x)
        implicit none
        class(type_solver_sparse_crs_bicgstab), intent(inout) :: self
        real(real64), intent(inout) :: b(:)
        real(real64), intent(inout) :: x(:)
        integer(int32) :: i, j

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

    end subroutine apply_preconditioner_sparse_crs_bicgstab