[petsc-users] Apply operator to linearised system before solving?

Matthew Knepley knepley at gmail.com
Wed Jun 10 18:54:10 CDT 2015


On Wed, Jun 10, 2015 at 6:30 PM, Asbjørn Nilsen Riseth <
riseth at maths.ox.ac.uk> wrote:

> Dear PETSc community,
>
> I'm trying to implement a preconditioner used in reservoir modelling,
> called Constrained Pressure Residual.
> They apply a transformation to the linearised system we get from each
> Newton step, before solving it. Then a 2-stage multiplicative
> preconditioner on the transformed system.
>

1) What is K?

2) Do you care about the 2-stage thing, or would any Stokes solver do?

  Thanks,

    Matt


> The main problem is implementing step 1 below.
>
> Let A be the Jacobian, b the residual and K my transformation.
> A = [A00 A01; A10 A11].
> The process is roughly like this:
> 1) Set Atilde = KA,  btilde = Kb.
>  - We want to solve Atilde x =  btilde
>
> 2) Create a 2-stage multiplicative preconditioner using Atilde, btilde
> pc0: This is only applied to the "fieldsplit 1" block of my system.
> B_1 = [0 0; 0 S^-1]
> Where S is a selfp Schur approximation from Atilde
> S =  Atilde11 - Atilde10 * inv(diag(Atilde00))* Atilde01
> pc1: This is a standard ILU on the whole system Atilde
>
> Currently I'm doing something like this
> Step 1:
> -ksp_type richardson -ksp_max_it 1
> -pc_type python
> Then I create Atilde from KA in PCSetup, and a FGMRES ksp to take care of
> step 2 with PCApply
>
> Step 2:
> pc_type composite
> pc_composite_type multiplicative
> pc_composite_pcs python,ilu,
>
> Are there better ways of dealing with this transformation?
> To me it looks similar to a 2-step right preconditioner on top of a left
> preconditioner.
>
> Regards,
> Ozzy
>



-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150610/13f2e02a/attachment.html>


More information about the petsc-users mailing list