> On 16 Feb 2023, at 8:43 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? >
This question has not a single answer. It all depends on where your A and b are coming from. > The most frequently used basic 2 preconditioners are jacobi and SOR (gauss > seidel). > They are not the most frequently used. And rightfully so, as they very often can’t handle non-trivial systems. > 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. > 1st command: it’s pointless to couple PCBJACOBI with PCJABOCI, it’s equivalent to only using PCJABOBI. 2nd command: it’s pointless to use PCHPDDM if you don’t specify in some way how to coarsen your problem (either algebraically or via an auxiliary operator). You just have a single level (equivalent to PCBJACOBI), but its options are prefixed by -pc_hpddm_coarse_ instead of -sub_ Again, both sets of options do not make sense. If you want, you could share your A and b (or tell us what you are discretizing) and we will be able to provide a better feedback. Thanks, Pierre > In this case, I wonder how to analyze the situation. > How can I monitor and see the difference between the two? > > > > > > Thanks, > > Hyung Kim
