[petsc-users] DM question.

Matthew Knepley knepley at gmail.com
Wed Oct 21 19:32:35 CDT 2015

On Wed, Oct 21, 2015 at 3:07 PM, Dave May <dave.may at erdw.ethz.ch> wrote:

> Hey Mike,
> On 21 October 2015 at 18:01, Afanasiev Michael <
> michael.afanasiev at erdw.ethz.ch> wrote:
>> Hey Dave,
>> So I’ve got a couple of days where there’s nothing pressing to work on…
>> was thinking of ripping out the parallel routines (ugly) in my wave
>> propagation code and replacing them with Petsc DM routines. I can read in
>> my exodusii mesh with DMPLEX, and partition it with chaco, which gives me a
>> nicely partitioned DM. This takes me like 5 lines of code.  That’s amazing.
>> But here I’m stuck, and am having a whale of a time with the
>> documentation. All I *think* I need is a way to modify the
>> exodus-created DM, and add to it the degrees of freedom that are introduced
>> by my quadrature rule. This would be really neat. I can just treat each
>> sub-domain as its own mesh, with its own global numbering. Then whenever
>> necessary I can scatter stuff the the *real* global degrees of freedom
>> with something like VecLocToGlob. Most of the things I like about the code
>> could stay the same (element-wise, matrix-free nature), just these parallel
>> broadcasts would be infinitely nicer.
> First off - I don't use DMPLEX.

Dave is refreshingly candid about his shortcomings ;)

But I just can’t figure out how to set this up. The main problem really
>> boils down to: what’s the best way to add my quadrature points to an
>> already-created DM, which was constructed with an exodus file? I guess I
>> could do this after the file is read, but before the partitioning. In this
>> case though, what’s stopping the partitioner from cutting an element in
>> half? It seems like it would be a lot cleaner to do this post-partitioning.
> Presumably what is read from exodus is just the vertices of the hexes, and
> what you want to do is define the function space (given by your GLL
> locations) on top of element geometry read in. Is that what you are asking
> about?

So Dave is right. We read in topology and geometry from ExodusII. Then you
define a function space on top. How
exactly are you discretizing? In order to create vectors, do local to
global, etc. Petsc really only need to know the
amount of data associated with each mesh piece. You can define this with
PetscSection. If you give me an idea
what you want I can help you write the code easily I think.



> Any hints here?
> Actually I have no experience with this object.
> I would just send an email to
>   petsc-users at mcs.anl.gov
> asking for help.
> The developer of DMPLEX (Matt Knepley) will definitely answer within in 1
> day.
> Cheers,
>   Dave
>> Best,
>> Mike.
>> --
>> Michael Afanasiev
>> Ph.D. Candidate
>> Computational Seismology
>> Institut für Geophysik
>> ETH Zürich
>> Sonneggstrasse 5, NO H 39.2
>> CH 8092 Zürich
>> michael.afanasiev at erdw.ethz.ch

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/20151021/1894023c/attachment.html>

More information about the petsc-users mailing list