On 05/01/2019 02:36, Matthew Knepley wrote:
On Fri, Jan 4, 2019 at 10:04 AM Yann Jobic via petsc-users
<[email protected] <mailto:[email protected]>> 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. Then the interpolation will
be correct ? Can i use DMproject and all the petsc functions ?
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).
Or is it working with the hdf5 one ?
Does the p4est interface work with this setup ?
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/>