Hi, I had the idea to try and renumber my mesh cells, as I've heard it's
better: "neighbouring cells are stored next to one another, and memory
access are faster".
Right now, I load the mesh then I distribute it over the processes. I
thought I'd try to permute the numbering between those two steps :
DMPlexCreateFromFile
DMPlexGetOrdering
DMPlexPermute
DMPlexDistribute
but that gives me an error when it runs on more than one process:
[0]PETSC ERROR: --------------------- Error Message
--------------------------------------------------------------
[0]PETSC ERROR: No support for this operation for this object type
[0]PETSC ERROR: Number of dofs for point 0 in the local section should
be positive
[0]PETSC ERROR: See https://petsc.org/release/faq/ for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.16.0, unknown
[0]PETSC ERROR: ./build/bin/yanss on a named ldmpe202z.onera by pseize
Tue Oct 26 16:03:33 2021
[0]PETSC ERROR: Configure options --PETSC_ARCH=arch-ld-gcc
--download-metis --download-parmetis --prefix=~/.local --with-cgns
[0]PETSC ERROR: #1 PetscPartitionerDMPlexPartition() at
/stck/pseize/softwares/petsc/src/dm/impls/plex/plexpartition.c:720
[0]PETSC ERROR: #2 DMPlexDistribute() at
/stck/pseize/softwares/petsc/src/dm/impls/plex/plexdistribute.c:1630
[0]PETSC ERROR: #3 MeshLoadFromFile() at src/spatial.c:689
[0]PETSC ERROR: #4 main() at src/main.c:22
[0]PETSC ERROR: PETSc Option Table entries:
[0]PETSC ERROR: -draw_comp 0
[0]PETSC ERROR: -mesh data/box.msh
[0]PETSC ERROR: -mesh_view draw
[0]PETSC ERROR: -riemann anrs
[0]PETSC ERROR: -ts_max_steps 100
[0]PETSC ERROR: -vec_view_partition
[0]PETSC ERROR: ----------------End of Error Message -------send entire
error message to petsc-ma...@mcs.anl.gov----------
I checked and before I tried to reorder the mesh, the dm->localSection
was NULL before entering DMPlexDistribute, and I was able to fix the
error with DMSetLocalSection(dm, NULL) after DMPlexPermute, but it
doesn't seems it's the right way to do what I want. Does someone have
any advice ?
Thanks in advance
Pierre Seize