[petsc-users] DMPlexInterpolate error nonconforming object sizes

Prateek Gupta prateekgupta1709 at gmail.com
Sat Jul 2 02:10:44 CDT 2022


Hi,
I am trying to create a minimal example of reading nodes and elements from
a text file and creating dmplex mesh. So far I am following the procedure
as in plexfluent.c. However, while trying to interpolate the mesh, I get
the error,

[0]PETSC ERROR: Nonconforming object sizes
[0]PETSC ERROR: The number of vertices in first DM 20 != 0 in the second DM

The call trace looks like this,
[0]PETSC ERROR: #1 DMPlexCopyCoordinates() line 1448 in
/build/petsc-zg3KH7/petsc-3.12.4+dfsg1/src/dm/impls/plex/plexinterpolate.c
[0]PETSC ERROR: #2 DMPlexInterpolate() line 1394 in
/build/petsc-zg3KH7/petsc-3.12.4+dfsg1/src/dm/impls/plex/plexinterpolate.c

The code snippet for interpolation is exactly same as in plexfluent.c
except for the petscCall function,

--------------------------------------------------
  if (interpolate) {
    DM idm;
    PetscCall(DMPlexInterpolate(*dm, &idm));
    PetscCall(DMDestroy(dm));
    dm  = idm;
  }
--------------------------------------------------

dm is the DM object declared within main only. Any help will be
appreciated. I can guess that the idm object doesn't have memory allocated
for copying the vertices, but my question is how come it works off-the-bat
for fluent/gmsh files using functions in plexfluent.c and plexgmsh.c. Is
there a way to allocate just the vertices? Or do I need to use
DMPlexSetChart for idm object before interpolating?

Thank you.
Sincerely,
Prateek Gupta, PhD
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20220702/58c8056d/attachment.html>


More information about the petsc-users mailing list