--petsc
        !ksp_view                       ! activate to view internal krylov solver iterations
        !ksp_monitor_true_residual      ! activate to monitor true (unpreconditioned) residual
        -ksp_norm_type unpreconditioned ! select type of norm used to determine convergence of krylov solver <none,preconditioned,unpreconditioned,natural>
        -ksp_max_it 100                  ! maximum number of krylov solver iterations
        -ksp_rtol 2e-2                  ! relative tolerance threshold for convergence (reduction in orders of magnitude)
        -ksp_atol 1e-30                 ! absolute tolerance threshold for convergence (absolute size of residual, use when residuals approach machine accuracy)

        -ksp_type fgmres                ! select krylov solver (https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/index.html)
                                        ! available options: cg groppcg pipecg pipecgrr pipelcg pipeprcg pipecg2 cgne nash stcg gltr richardson chebyshev gmres tcqmr fcg pipefcg bcgs ibcgs fbcgs pipebcgs fbcgsr bcgsl cgs tfqmr cr pipecr lsqr preonly qcg bicg fgmres pipefgmres minres symmlq lgmres lcd gcr pipegcr pgmres dgmres tsirm cgls fetidp
        
        !ksp_gmres_restart 30           ! select gmres restart length (increase to improve convergence on account of memory and cpu time, default: 30)

        -pc_type asm                    ! select preconditioner (https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PC/index.html)
                                        ! available options: none jacobi pbjacobi vpbjacobi bjacobi sor lu shell mg eisenstat ilu icc cholesky asm gasm ksp composite redundant nn mat fieldsplit galerkin exotic cp lsc redistribute svd gamg kaczmarz telescope patch hmg hypre pfmg syspfmg tfs bddc lmvm deflation
                                        ! 
        -sub_pc_type ilu                ! select method used to invert the sub-domains created by the additive schwartz preconditioner
        -sub_pc_factor_levels 1         ! ILU (2)
        -sub_pc_factor_fill 1
        -sub_ksp_type preonly           ! disable krylov solver in computing inverse of asm sub-domains


        !sys_trb_ksp_view                       ! activate to view internal krylov solver iterations
        !sys_trb_ksp_monitor_true_residual      ! activate to monitor true (unpreconditioned) residual
        -sys_trb_ksp_norm_type unpreconditioned ! select type of norm used to determine convergence of krylov solver <none,preconditioned,unpreconditioned,natural>
        -sys_trb_ksp_max_it 100                  ! maximum number of krylov solver iterations
        -sys_trb_ksp_rtol 1e-3                  ! relative tolerance threshold for convergence (reduction in orders of magnitude)
        -sys_trb_ksp_atol 1e-30                 ! absolute tolerance threshold for convergence (absolute size of residual, use when residuals approach machine accuracy)

        -sys_trb_ksp_type fgmres                ! select krylov solver (https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/index.html)
                                        ! available options: cg groppcg pipecg pipecgrr pipelcg pipeprcg pipecg2 cgne nash stcg gltr richardson chebyshev gmres tcqmr fcg pipefcg bcgs ibcgs fbcgs pipebcgs fbcgsr bcgsl cgs tfqmr cr pipecr lsqr preonly qcg bicg fgmres pipefgmres minres symmlq lgmres lcd gcr pipegcr pgmres dgmres tsirm cgls fetidp
        
        !sys_trb_ksp_gmres_restart 30           ! select gmres restart length (increase to improve convergence on account of memory and cpu time, default: 30)

        -sys_trb_pc_type asm                    ! select preconditioner (https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PC/index.html)
                                        ! available options: none jacobi pbjacobi vpbjacobi bjacobi sor lu shell mg eisenstat ilu icc cholesky asm gasm ksp composite redundant nn mat fieldsplit galerkin exotic cp lsc redistribute svd gamg kaczmarz telescope patch hmg hypre pfmg syspfmg tfs bddc lmvm deflation
                                        ! 
        -sys_trb_sub_pc_type ilu                ! select method used to invert the sub-domains created by the additive schwartz preconditioner
        -sys_trb_sub_pc_factor_levels 1         ! ILU (2)
        -sys_trb_sub_pc_factor_fill 1
        -sys_trb_sub_ksp_type preonly           ! disable krylov solver in computing inverse of asm sub-domains

