[petsc-users] discontinuous viscosity stokes equation 3D staggered grid

Bishesh Khanal bisheshkh at gmail.com
Mon Aug 5 07:54:48 CDT 2013


On Wed, Jul 17, 2013 at 9:48 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> Bishesh Khanal <bisheshkh at gmail.com> writes:
>
> > Now, I implemented two different approaches, each for both 2D and 3D, in
> > MATLAB. It works for the smaller sizes but I have problems solving it for
> > the problem size I need (250^3 grid size).
> > I use staggered grid with p on cell centers, and components of v on cell
> > faces. Similar split up of K to cell center and faces to account for the
> > variable viscosity case)
>
> Okay, you're using a staggered-grid finite difference discretization of
> variable-viscosity Stokes.  This is a common problem and I recommend
> starting with PCFieldSplit with Schur complement reduction (make that
> work first, then switch to block preconditioner).  You can use PCLSC or
> (probably better for you), assemble a preconditioning matrix containing
> the inverse viscosity in the pressure-pressure block.  This diagonal
> matrix is a spectrally equivalent (or nearly so, depending on
> discretization) approximation of the Schur complement.  The velocity
> block can be solved with algebraic multigrid.  Read the PCFieldSplit
> docs (follow papers as appropriate) and let us know if you get stuck.
>

I was trying to assemble the inverse viscosity diagonal matrix to use as
the preconditioner for the Schur complement solve step as you suggested.
I've few questions about the ways to implement this in Petsc:
A naive approach that I can think of would be to create a vector with its
components as reciprocal viscosities of the cell centers corresponding to
the pressure variables, and then create a diagonal matrix from this vector.
However I'm not sure about:
How can I make this matrix, (say S_p) compatible to the Petsc distribution
of the different rows of the main system matrix over different processors ?
The main matrix was created using the DMDA structure with 4 dof as
explained before.
The main matrix correspond to the DMDA with 4 dofs but for the S_p matrix
would correspond to only pressure space. Should the distribution of the
rows of S_p among different processor not correspond to the distribution of
the rhs vector, say h' if it is solving for p with Sp = h' where S = A11
inv(A00) A01 ?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130805/57c008b5/attachment.html>


More information about the petsc-users mailing list