sieve-dev Unstructured meshes in PETSC using Sieve

Matthew Knepley knepley at gmail.com
Wed Jul 25 12:34:43 CDT 2012


On Tue, Jul 24, 2012 at 12:31 PM, Chris Eldred <chris.eldred at gmail.com>wrote:

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

Cool. Use slepc-dev.


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

That is definitely what it is for.


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

Yes.


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

Here is my simple tutorial:

Building and Running ex62
--------------------------------------

First, configure with FEM stuff turned on:

    '--download-triangle',
    '--download-ctetgen',
    '--download-fiat',
    '--download-generator',
    '--download-chaco',
    '--download-metis',
    '--download-parmetis',
    '--download-scientificpython',

I also use

    '--with-dynamic-loading',
    '--with-shared-libraries',
    '--download-mpich',
    '--download-ml',

and if you want to try GPU stuff

    '--with-cuda',
    '--with-cuda-arch=sm_10',
    '--with-cuda-only',
    '--with-cudac=nvcc -m64',

Then build PETSc with the Python make:

   python2.7 ./config/builder2.py clean
   python2.7 ./config/builder2.py build    <This rebuilds only changed
things correctly as well>

  python2.7 ./config/builder2.py --help <This is useful>
  python2.7 ./config/builder2.py build --help <This is too>
  python2.7 ./config/builder2.py check --help <And this>

Once you have this, you should be able to build and run ex62

   python2.7 ./config/builder2.py check src/snes/examples/tutorials/ex62.c
--testnum=0

which runs the first test. You can run them all with no argument. All the
options are listed
at the top of ./config/builder.py.



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

DMMesh is the old DMComplex. I decided that C++ is a blight upon mankind
and templates are its Furies, so
I rewrite all of DMMesh in C, used Jed's new communication stuff, got rid
of iterators, and made things integrate
with the solvers much better.

   Thanks,

      Matt


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



-- 
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/sieve-dev/attachments/20120725/ecee0e94/attachment.html>


More information about the sieve-dev mailing list