Le 05/01/2019 à 13:23, Matthew Knepley a écrit :
On Sat, Jan 5, 2019 at 4:04 AM Yann Jobic <yann.jo...@univ-amu.fr <mailto:yann.jo...@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@mcs.anl.gov <mailto:petsc-users@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

Reply via email to