That is a good idea to try Francois. Do you know if there is a easy way to try that in PETSc? However, in my case, I'm not using an upwind scheme, but rather a 2nd order JST scheme for the preconditioner. Also, we have observed the same behavior even for Euler systems, although both the direct/adjoint systems in this case are easier to solve and the difference between the systems is less dramatic.
I also though about using left preconditioning for the adjoint system instead of right preconditioning, but left preconditioning consistently fails even for the untransposed system. I have no idea why left preconditioning doesn't work. Gaetan On Mon, Nov 24, 2014 at 6:24 AM, francois Pacull <[email protected]> wrote: > Hello, > > This is just an idea but this might be due to the fact that the structure > of the preconditioner is severely unsymmetrical when using a first-order > upwind scheme without viscous terms: when building the overlap, the > non-zero terms in the row-wise extra-diagonal blocks yield the list of > vertices to add to each subdomain. If you use the transpose of the > preconditioner, it still uses the row-wise and not the column-wise > extra-diagonal blocks. So maybe you should build the ASM(1) preconditioner > with the untransposed matrix first, and then transpose the preconditioning > matrix? You may also change the side of the preconditioner, for the > transposed system. > > Francois. > > > ------------------------------ > Date: Sun, 23 Nov 2014 20:54:20 -0500 > From: [email protected] > To: [email protected] > Subject: [petsc-users] Convergence of transposed linear system. > > Hi everyone > > I have a question relating to preconditioning effectiveness on large > transposed systems. The linear system I'm trying to solve is jacobian > matrix of 3D RANS CFD solver. The bock matrix consists of about 3 million > block rows with a block size of 6: 5 for the inviscid part and 1 for the SA > turbulence model. > > The preconditioning matrix is different from the linear system matrix in > two ways: It uses a first order discretization (instead of second order) > and the viscous fluxes are dropped. > > The untransposed system converges about 6 orders of magnitude with > GRMES(100), ASM (overlap 1) and ILU(1) with RCM reordering. The test is run > on 128 processors. There are no convergence difficulties. > > However, when I try to solve the transpose of the same system, by either > calling KSPSolveTranspose() or by assembling the transpose of the linear > system and its preconditioner and calling KSPSolve(), GMRES stagnates after > a negligible drop in the residual and no further progress is made. > > I have successfully solved this transpose system by using a different > preconditioner that includes the complete linearization of the viscous > terms (~4 times as many non-zeros in PC matrix) and a much much stronger > preconditioner (ASM(2), ILU(2) with 200 GMRES reset. > > My question is why does the solution of the transpose system with the same > method perform so terribly? Is it normal that vastly stronger > preconditioning method is required to solve transpose systems? > > Any suggestions would be greatly appreciated > > Gaetan >
