If your matrix has the form ( A B ) ( C 0 )
then often PCFIELDSPLIT can be a useful preconditioner with the option -pc_fieldsplit_detect_saddle_point > On Feb 16, 2023, at 2:42 AM, user_gong Kim <[email protected]> wrote: > > > Hello, > > > There are some questions about some preconditioners. > > The questions are from problem Au=b. The global matrix A has zero value > diagonal terms. > > 1. Which preconditioner is preferred for matrix A which has zero value in > diagonal terms? > The most frequently used basic 2 preconditioners are jacobi and SOR (gauss > seidel). As people knows both methods should have non zero diagonal terms. > Although the improved method is applied in PETSc, jacobi can also solve the > case with zero diagonal term, but I ask because I know that it is not > recommended. > > 2. Second question is about running code with the two command options > below in a single process. > 1st command : -ksp_type gmres -pc_type bjacobi -sub_pc_type jacobi > 2nd command : -ksp_type gmres -pc_type hpddm -sub_pc_type jacobi > When domain decomposition methods such as bjacobi or hpddm are parallel, the > global matrix is divided for each process. As far as I know, running it in a > single process should eventually produce the same result if the sub pc type > is the same. However, in the second option, ksp did not converge. > In this case, I wonder how to analyze the situation. > How can I monitor and see the difference between the two? > > > > Thanks, > > Hyung Kim >
