[petsc-users] interpolate HDF5 mesh

Yann JOBIC yann.jobic at univ-amu.fr
Thu Dec 20 11:56:10 CST 2018


Le 20/12/2018 à 16:40, Matthew Knepley a écrit :
> On Thu, Dec 20, 2018 at 9:33 AM Yann JOBIC via petsc-users 
> <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>> wrote:
>
>     Dear Petsc Users,
>
>     When i'm using DMPlexCreateBoxMesh, my code works fine. However,
>     when i
>     load the "exact" same mesh from an HDF5 file, it's not working
>     anymore
>     (Nonlinear solve did not converge due to DIVERGED_FNORM_NAN
>     iterations 0).
>
>     The mesh view when i use DMPlexCreateBoxMesh looks like (i labeled my
>     boudary nodes):
>
>     /* generated with DMPlexCreateBoxMesh */
>     DM Object: Mesh 1 MPI processes
>        type: plex
>     Mesh in 3 dimensions:
>        0-cells: 216
>        1-cells: 540
>        2-cells: 450
>        3-cells: 125
>     Labels:
>        Faces: 6 strata with value/size (2 (121), 4 (121), 3 (121), 6
>     (121),
>     5 (121), 7 (121))
>        boundary: 1 strata with value/size (1 (602))
>        depth: 4 strata with value/size (0 (216), 1 (540), 2 (450), 3
>     (125))
>        Face Sets: 6 strata with value/size (6 (25), 5 (25), 3 (25), 4
>     (25),
>     1 (25), 2 (25))
>        marker: 1 strata with value/size (1 (450))
>
>     And when i use DMPlexCreateFromFile, or DMLoad, i have :
>
>     /* generated with H5 file */
>     fin label DM
>     DM Object: Mesh 1 MPI processes
>        type: plex
>     Mesh in 3 dimensions:
>        0-cells: 216
>        1-cells: 540
>        2-cells: 450
>        3-cells: 125
>     Labels:
>        Faces: 6 strata with value/size (2 (121), 4 (121), 6 (121), 7
>     (121),
>     5 (121), 3 (121))
>        boundary: 1 strata with value/size (1 (602))
>        depth: 4 strata with value/size (0 (216), 1 (540), 2 (450), 3
>     (125))
>
>     It looks like my DM is not interpolated. Am i wrong ?
>
>
> Its interpolated (you have 4 kinds of k-cells, instead of 2). However, 
> you are missing your
> Face Sets marker, which probably means boundary conditions are not 
> getting applied.
My Face marker is label to 1, with the label  "boundary" (i used 
DMPlexMarkBoundaryFaces)
After that, i create a new label, "Faces", with the number associated to 
the boundary condition.
Faces = 0 -> ouest
Faces = 1 -> est
...

But you're right, I'm missing "Face Sets".
I couldn't find the function which adds this label.
Is there one ? or do i have to do as in DMPlexCreateCubeMesh_Internal?

Thanks,

Yann
>   Thanks,
>
>     Matt
>
>     It's strange, because when i use DMPlexCreateFromFile, i put
>     PETSC_TRUE
>     for interpolation.
>
>     Even after loading the mesh, i used DMPlexInterpolate, which return a
>     new DM (not null).
>
>     Do you know what's happening here ?
>     Maybe my DIVERGED_FNORM_NAN comes from another part of the code ?
>     (however only the mesh is changing)
>
>     Thanks,
>
>     Yann
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20181220/18c3ff58/attachment.html>


More information about the petsc-users mailing list