[petsc-users] using petsc tools to solve isolated irregular domains with finite difference

Matthew Knepley knepley at gmail.com
Fri Oct 25 13:18:05 CDT 2013

On Fri, Oct 25, 2013 at 12:09 PM, Bishesh Khanal <bisheshkh at gmail.com>wrote:

> Dear all,
> I would like to know if some of the petsc objects that I have not used so
> far (IS, DMPlex, PetscSection) could be useful in the following case (of
> irregular domains):
> Let's say that I have a 3D binary image (a cube).
> The binary information of the image partitions the cube into a
> computational domain and non-computational domain.
> I must solve a pde (say a Poisson equation) only on the computational
> domains (e.g: two isolated spheres within the cube). I'm using finite
> difference and say a dirichlet boundary condition
> I know that I can create a dmda that will let me access the information
> from this 3D binary image, get all the coefficients, rhs values etc using
> the natural indexing (i,j,k).
> Now, I would like to create a matrix corresponding to the laplace operator
> (e.g. with standard 7 pt. stencil), and the corresponding RHS that takes
> care of the dirchlet values too.
> But in this matrix it should have the rows corresponding to the nodes only
> on the computational domain. It would be nice if I can easily (using
> (i,j,k) indexing) put on the rhs dirichlet values corresponding to the
> boundary points.
> Then, once the system is solved, put the values of the solution back to
> the corresponding positions in the binary image.
> Later, I might have to extend this for the staggered grid case too.
> So is petscsection or dmplex suitable for this so that I can set up the
> matrix with something like DMCreateMatrix ? Or what would you suggest as a
> suitable approach to this problem ?
> I have looked at the manual and that led me to search for a simpler
> examples in petsc src directories. But most of the ones I encountered are
> with FEM (and I'm not familiar at all with FEM, so these examples serve
> more as a distraction with FEM jargon!)

It sounds like the right solution for this is to use PetscSection on top of
DMDA. I am working on this, but it is really
alpha code. If you feel comfortable with that level of development, we can
help you. If not, just put the identity into
the rows you do not use on the full cube. It will not hurt scalability or


> Thanks,
> Bishesh

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/20131025/dd431835/attachment.html>

More information about the petsc-users mailing list