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

Matthew Knepley knepley at gmail.com
Mon Aug 5 08:17:52 CDT 2013


On Mon, Aug 5, 2013 at 7:54 AM, Bishesh Khanal <bisheshkh at gmail.com> wrote:

>
>
>
> 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 ?
>

PETSc distributed vertices, not dofs, so it never breaks blocks. The P
distribution is the same as the entire problem divided by 4.

   Matt

-- 
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/20130805/7cf7713e/attachment.html>


More information about the petsc-users mailing list