##
Preconditioner data structure

Our base library offers support for simple well known preconditioners like Diagonal Scaling or Block Jacobi with incomplete factorization ILU(0).

A preconditioner is held in the precdata`psb_prec_type` data structure reported in figure 6. The `psb_prec_type` data type may contain a simple preconditioning matrix with the associated communication descriptor. The internal preconditioner is allocated appropriately with the dynamic type corresponding to the desired preconditioner.

Figure 6: The PSBLAS defined data type that contains a preconditioner.

      type psb_Tprec_type
        class(psb_T_base_prec_type), allocatable :: prec
      end type psb_Tprec_type