[petsc-users] DMPlex H27 elements

Yann Jobic yann.jobic at univ-amu.fr
Mon Jan 7 04:09:25 CST 2019


Le 05/01/2019 à 13:23, Matthew Knepley a écrit :
> On Sat, Jan 5, 2019 at 4:04 AM Yann Jobic <yann.jobic at univ-amu.fr 
> <mailto:yann.jobic at univ-amu.fr>> wrote:
>
>
>     On 05/01/2019 02:36, Matthew Knepley wrote:
>>     On Fri, Jan 4, 2019 at 10:04 AM Yann Jobic via petsc-users
>>     <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>> wrote:
>>
>>         Dear Petsc Users,
>>
>>         I'm using DMPlexCreateFromCellList to create my DM. I would
>>         like to have
>>         an order 2 geometry.
>>
>>         It's working fine in 2D for elements of type Q9.
>>
>>
>>     I do not see how that is possible. The topology does not work
>>     that way, and there
>>     is no way a 9 vertex quad was interpolated, so something else is
>>     happening.
>>
>>     Moreover, anything you input still has affine geometry. Toby has
>>     been working on
>>     non-affine geometry, and all the code is there, but right now you
>>     have to build and
>>     populate the coordinate space by hand. What this means is that
>>     you create a
>>     quadratic space for the coordinate DM (rather than the default
>>     linear), get the
>>     global coordinate vector out, and stick in the Q9 coordinates.
>>     The topology is still
>>     the same no matter what coordinates you read in.
>
>     I get the idea. So at the beginning i start with the Q4/H8 dmplex,
>     then i fill from the global coordinate vector the missing
>     coordinates, and attach this new coordinate vector to the DM.
>
> Yes.
In order to set up a quadratic space for my DM, i should use 
PetscDualSpaceSetOrder no ?

And then attach this space to my DM ?

When i add the missing vertex coordinates, the order should not matter 
no ? (it should at the next step with the DMPlexVecSetClosure)

I'll try to build a laplacian test case, with analytical solution in FEM 
in order to test it.

Thanks,

Yann

>     Then the interpolation will be correct ?
>
> This is the tricky part. What you likely have to do is:
>
>   1) Build the topology
>   2) Run over the cells
>   3) For each cell, put in the coordinates using 
> DMPlexVecSetClosure(). This is redundant, but the only way
>       you can connect with the Q9 format.
>
>     Can i use DMproject and all the petsc functions ?
>
> This is the idea. The amount of testing is so far almost nothing.
>
>     In order to output the results, i've got to write my own vtk
>     interface no ? (by splitting the Q9/H27 in 4xQ4 or 8xH8).
>
> That is a good question. Right now, it will just output Q4. However, 
> compared to everything else, writing Q9 should
> be comparatively easy.
>
>     Or is it working with the hdf5 one ?
>
> I would probably write code to to Xdmf through HDF5 rather than 
> straight VTK, but we will end up having both.
>
>     Does the p4est interface work with this setup ?
>
> It will. I do not know if it currently does. We have to check.
>
>   Thanks,
>
>     Matt
>
>>
>>     We will get around to making an interface for this soon.
>
>     Great !
>
>     Thanks,
>
>     Yann
>
>>
>>       Thanks,
>>
>>          Matt
>>
>>         I checked that it's working correctly by using
>>         DMPlexComputeCellGeometryFEM, and compute the value of the
>>         determinant
>>         (CheckMeshGeometry of dm/impls/plex/examples/tutorials/ex2.c)
>>
>>         I can import H8 elements, it's working fine.
>>
>>         But for H27 element, it's not working. I really don't know
>>         how to order
>>         my vertex in the cells array. So far, the determinant is zero...
>>
>>         I don't know where to look in order to find this information.
>>         I tried
>>         the function DMPlexGetRawFaces_Internal of the file
>>
>>         https://www.mcs.anl.gov/petsc/petsc-current/src/dm/impls/plex/plexinterpolate.c.html#DMPlexGetRawFaces_Internal
>>
>>         but it didn't help me.
>>
>>         Could you please point me where to look ?
>>
>>         Thanks, and happy new year !
>>
>>         Yann
>>
>>
>>
>>     -- 
>>     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
>>
>>     https://www.cse.buffalo.edu/~knepley/
>>     <http://www.cse.buffalo.edu/~knepley/>
>
>
>
> -- 
> 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
>
> https://www.cse.buffalo.edu/~knepley/ 
> <http://www.cse.buffalo.edu/~knepley/>

-- 
___________________________

Yann JOBIC
HPC engineer
IUSTI-CNRS UMR 7343 - Polytech Marseille
Technopôle de Château Gombert
5 rue Enrico Fermi
13453 Marseille cedex 13
Tel : (33) 4 91 10 69 43
Fax : (33) 4 91 10 69 69

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190107/47c5257a/attachment-0001.html>


More information about the petsc-users mailing list