[petsc-users] dmplex extruded layers

Mark Adams mfadams at lbl.gov
Mon Nov 22 12:31:00 CST 2021

This is a Matt question but if ex10 does what you want, and works, then I
would copy the construction sequence carefully. You are probably doing
something slightly different.

* I don't think DMPlexFindVertices will work for you. It looks like you
need the exact points that you are looking for.
I have a branch (adams/snes-ex56-update) that creates a label for simple
vertical faces that looks at the coordinates of a face and sees if they all
have the same x or y coordinate.
You might want to modify that to look for all vertices with the same radius.

*  I visualize subdomains by giving each cell one dof and putting the
processor ID in that dof. You get a global view but the subdomains are
different colors.


On Mon, Nov 22, 2021 at 12:10 PM Bhargav Subramanya <
bhargav.subramanya at kaust.edu.sa> wrote:

> Dear All,
> I have a prismatic mesh generated by extruding a base icosahedron
> spherical surface mesh. The mesh is distributed on 2 processes after
> extrusion. The dof for my problem are defined only on the simplices of the
> spherical layers.
> 1. For a given spherical layer, I want to get points, which are basically
> simplices, lying on that layer only. DMPlexGetHeightStratum returns the
> points on all the spherical Layers. I can probably use DMPlexFindVertices
> (based on the radius of the spherical layer) and
> DMPlexGetSimplexOrBoxCells. Could you suggest if there is a better way to
> retrieve the points (which are simplices) on a given spherical layer in the
> extruded mesh?
> 2. I am able to visualize the entire mesh using dm_view. Is there a way to
> get the mesh file for the local dm from a specific process?
> 3. One of my previous emails might have got lost as I mistakenly attached
> a large mesh file and sent it. So I am repeating the question here.
> DMPlexExtrude gives the following error after distributing the base 2D
> spherical mesh. Both refinement or/and extrusion after dm distribution does
> not work for me. In fact, I tried with src/dm/impls/plex/tutorials/ex10.c
> also. Although the mesh is distributed after the extrusion in ex10.c (which
> is working fine for me), I tried to distribute before extrusion, and I get
> the following error. Could you please suggest where I might be making a
> mistake?
> [0]PETSC ERROR: --------------------- Error Message
> --------------------------------------------------------------
> [0]PETSC ERROR: Object is in wrong state
> [0]PETSC ERROR: This DMPlex is distributed but its PointSF has no graph set
> [0]PETSC ERROR: See https://petsc.org/release/faq/ for trouble shooting.
> [0]PETSC ERROR: Petsc Release Version 3.16.1, unknown
> [0]PETSC ERROR: ./cavity_flow.out on a arch-darwin-c-debug named kl-21859
> by subrambm Mon Nov 22 19:47:14 2021
> [0]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++
> --with-fc=gfortran --download-mpich --download-fblaslapack
> --download-superlu_dist --download-hypre --download-fiat
> --download-generator --download-triangle --download-tetgen --download-chaco
> --download-make -download-boost --download-cmake --download-ml
> --download-mumps=https://bitbucket.org/petsc/pkg-mumps.git
> --download-mumps-commit=v5.4.1-p1 --download-scalapack --download-ptscotch
> --download-hdf5 --force
> [0]PETSC ERROR: #1 DMPlexCheckPointSF() at
> /Users/subrambm/petsc/src/dm/impls/plex/plex.c:8554
> [0]PETSC ERROR: #2 DMPlexOrientInterface_Internal() at
> /Users/subrambm/petsc/src/dm/impls/plex/plexinterpolate.c:595
> [0]PETSC ERROR: #3 DMPlexInterpolate() at
> /Users/subrambm/petsc/src/dm/impls/plex/plexinterpolate.c:1357
> [0]PETSC ERROR: #4 DMPlexExtrude() at
> /Users/subrambm/petsc/src/dm/impls/plex/plexcreate.c:1543
> [0]PETSC ERROR: #5 CreateMesh() at ex10.c:161
> [0]PETSC ERROR: #6 main() at ex10.c:180
> [0]PETSC ERROR: PETSc Option Table entries:
> [0]PETSC ERROR: -dm_plex_extrude_layers 3
> [0]PETSC ERROR: -dm_view vtk:mesh.vtk
> [0]PETSC ERROR: -init_dm_plex_dim 2
> [0]PETSC ERROR: -petscpartitioner_type simple
> [0]PETSC ERROR: -srf_dm_distribute
> [0]PETSC ERROR: -srf_dm_refine 0
> [0]PETSC ERROR: ----------------End of Error Message -------send entire
> error message to petsc-maint at mcs.anl.gov----------
> Thanks,
> Bhargav
> ------------------------------
> This message and its contents, including attachments are intended solely
> for the original recipient. If you are not the intended recipient or have
> received this message in error, please notify me immediately and delete
> this message from your computer system. Any unauthorized use or
> distribution is prohibited. Please consider the environment before printing
> this email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20211122/ccf25fd2/attachment.html>

More information about the petsc-users mailing list