PCFieldSplit and Schur

Jed Brown jed at 59A2.org
Tue Nov 24 13:30:38 CST 2009

On Tue, 24 Nov 2009 19:24:48 +0100, francois pacull <fpacull at fluorem.com> wrote:
> Thank you for your email Jed, this is very helpfull.
> Just in case you would know some specific references:
> the physics we are working with are very common:  turbulent low-Mach gas 
> dynamics; since part of the systems stiffness is created by the 
> turbulent variables,

So this depends somewhat on the turbulence model, but it is normally
some sort of advection-diffusion system.

> i am trying to couple a first system with 5 fields (density, momentum,
> energy) and a second one with 2 fields (turbulence), within the
> preconditioner.

Ah, if you split the turbulence variables then you still have to deal
with acoustics in the bs=5 split.

As an experimental heuristic (one I'm trying to formulate) for how to
split a stiff wave system (at least with a conservative formulation) try
this.  Identify the characteristic of your largest eigenvector.  If this
involves a single subsystem, say it is

  [0, 0, 0, 1, -1]

then you should be able to do one multiplicative split ([a,b,c], [d,e])
as long as you can find a good preconditioner for the [d,e] part.  In
this last part, the fastest wave has inter-field coupling, so you could
split this with factorization.  Note that you could also have done just
one split ([a,b,c,d],[e]), and this would have little impact on the
Schur complement in the [e] block.

If instead the characteristic looked like

  [0.3, 0.4, 0.8, 0.4, -1]

then all the fields participate in the fastest wave, and the natural
(and I hypothesize, mandatory) split would be ([a,b,c,d],[e]).

So in light of this framework, let's consider your system.  Since the
velocity is much slower than acoustics, you should be able to split off
the turbulence model using relaxation (the advection is only as fast as
the velocity, if the turbulence model is as stiff as acoustics then the
diffusive part must be the culprit, but that is self-coupling).

Here is one recent paper on JFNK applied to low-mach compressible flow

  title={{Jacobian-free Newton Krylov discontinuous Galerkin method and
    physics-based preconditioning for nuclear reactor simulations}},
  author={Park, H.K. and Nourgaliev, R.R. and Martineau, R.C. and Knoll, D.A.},
  publisher={INL/CON-08-14243, Idaho National Laboratory (INL)},

> The motivation is the diminution of the factorization memory
> requirement, compare to when the fields are not split.

Incomplete or full factorization?  Does ASM actually work?  If so, then
I'm skeptical that PCFieldSplit-Schur will gain you anything, you should
be fine to split off the turbelence variables (multigrid might even work
fine for them), and use a cheaper preconditioner on the rest of the

Finally, I would be interested to know how you fare.  In particular,
whether you find that the heuristic arguments above actually correlate
with efficient algorithms.


More information about the petsc-users mailing list