Dear Matthew, Thanks for the last Email. For the LSC preconditioner in Petsc, it allows to do inv(S)= inv(A10 A01) A10 A00 A01 inv(A10 A01). Is it also possible to do inv(S)= inv(Mp) Fp inv(Ap), where Mp and Ap are built by ourselves and not the same matrices. Thanks a lot.
Best, Guoyi Date: Mon, 12 Oct 2015 08:46:35 -0500 Subject: Re: [petsc-users] How to implement pressure convection�Cdiffusion preconditioner in petsz From: [email protected] To: [email protected] CC: [email protected] On Mon, Oct 12, 2015 at 1:49 AM, keguoyi <[email protected]> wrote: Dear Petsc developers and users, This is Guoyi ke, a graduate student in Texas Tech University. I have a 2D Navier Stokes problem that has block matrices: J=[F B^T; B 0]. I want to build a pressure convection�Cdiffusion preconditioner (PCD) P=[F B^T; 0 Sp]. Here, we let Sp=-Ap(Fp)^(-1)Mp approximate schur complement S=-BF^(-1)B^T, where Ap is pressure Laplacian matrix, Mp is pressure mass matrix, and Fp is convection-diffusion operators on pressure space. We use right preconditioner J*P^(-1)=[F B^T; B 0] * [F B^T; 0 Sp]^(-1), and is it possible for Petsz to build and implement this precondioner P? Since (Sp)^(-1)=-(Mp)^(-1) Fp(Ap)^(-1), is it possible that we can solve (Mp)^(-1) and (Ap)^(-1) by CG method separately inside preconditioner P. Take a look at the PCFIELDSPLIT preconditioner. I think you want the LSC option for that (http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PC/PCLSC.html)if I am reading your mail correctly. Thanks, Matt Any suggestion will be highly appreciated. Thank you so much! Best, Guoyi -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
