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

Reply via email to