[petsc-users] Unstructured meshes in PETSC using Sieve

Chris Eldred chris.eldred at gmail.com
Tue Jul 24 12:31:26 CDT 2012


Hey PETSC/Sieve Developers,

I am building a nonlinear shallow water testbed model (along with an
associated eigensolver for the linear equations) intended to work on
unstructured Voronoi meshes and cubed-sphere grids (with arbitrary
block-structured refinement)- it will be a 2-D code. There will NOT be any
adaptive mesh refinement- the mesh is defined once at the start of the
application. It will support finite difference, finite volume and finite
element-type (spectral elements and Discontinuous Galerkin) schemes- so
variables will be defined on edges, cells and vertexes. I would like to use
PETSC/SLEPC (currently limited to v3.2 for both since that is the latest
version of SLEPC) for the spare linear algebra and eigenvalue solvers. This
is intended as a useful tool for researchers in atmospheric model
development- it will allow easy inter-comparison of different grids and
schemes under a common framework.

Right now I have a serial version (written in Fortran 90) that implements a
few different finite-difference schemes (along with a multigrid solver for
square and hexagonal meshes) on unstructured Voronoi meshes and I would
like to move to a parallel version (also using Fortran 90). The Sieve
framework seems like an excellent fit for defining the unstructured mesh,
managing variables defined on edges/faces/vertices and handling
scatter/gather options between processes. I was planning on doing parallel
partitioning using ParMetis.

My understanding is that DMMesh handles mesh topology (interconnections,
etc) while Sections define variables and mesh geometry (edge lengths,
areas, etc.). Sections can be created over different depths/heights (chains
of points in Sieve) in order to define variables on vertices/edges/cells.

I am looking for documentation and examples of code use. I found:
http://www.mcs.anl.gov/petsc/petsc-dev/src/snes/examples/tutorials/ex62.c.html
http://www.mcs.anl.gov/petsc/petsc-current/src/snes/examples/tutorials/ex12.c.html

Are there other examples/documentation available?

Also, I was wondering what the difference is between DMMesh and DMComplex-
it appears that they both implement the Sieve framework?

Thanks,
Chris Eldred

-- 
Chris Eldred
DOE Computational Science Graduate Fellow
Graduate Student, Atmospheric Science, Colorado State University
B.S. Applied Computational Physics, Carnegie Mellon University, 2009
chris.eldred at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120724/26f15aa2/attachment.html>


More information about the petsc-users mailing list