[petsc-users] realCoords for DOFs

Yann Jobic yann.jobic at univ-amu.fr
Tue Dec 13 02:38:47 CST 2022



Le 12/13/2022 à 2:04 AM, Mark Adams a écrit :
> PETSc does not store the coordinates for high order elements (ie, the 
> "midside nodes").
> I get them by projecting a f(x) = x, function.
> Not sure if that is what you want but I can give you a code snippet if 
> there are no better ideas.

It could really help me !
If i have the node coordinates in the reference element, then it's easy 
to project them to the real space. But i couldn't find a way to have 
them, so if you could give me some guidance, it could be really helpful.
Thanks,
Yann

> 
> Mark
> 
> 
> On Mon, Dec 12, 2022 at 6:06 PM Yann Jobic <yann.jobic at univ-amu.fr 
> <mailto:yann.jobic at univ-amu.fr>> wrote:
> 
>     Hi all,
> 
>     I'm trying to get the coords of the dofs of a DMPlex for a PetscFE
>     discretization, for orders greater than 1.
> 
>     I'm struggling to run dm/impls/plex/tutorials/ex8.c
>     I've got the following error (with option -view_coord) :
> 
>     [0]PETSC ERROR: --------------------- Error Message
>     --------------------------------------------------------------
>     [0]PETSC ERROR: Object is in wrong state
>     [0]PETSC ERROR: DMGetCoordinatesLocalSetUp() has not been called
>     [0]PETSC ERROR: See https://petsc.org/release/faq/
>     <https://petsc.org/release/faq/> for trouble shooting.
>     [0]PETSC ERROR: Petsc Release Version 3.18.2, unknown
>     [0]PETSC ERROR:
>     /home/jobic/projet/fe-utils/petsc/fetools/cmake-build-debug/ex_closure_petsc
>     on a  named luke by jobic Mon Dec 12 23:34:37 2022
>     [0]PETSC ERROR: Configure options
>     --prefix=/local/lib/petsc/3.18/p3/gcc/nompi_hdf5 --with-mpi=0
>     --with-debugging=1 --with-blacs=1 --download-zlib,--download-p4est
>     --download-hdf5=1 --download-triangle=1 --with-single-library=0
>     --with-large-file-io=1 --with-shared-libraries=0 -CFLAGS=" -g -O0"
>     -CXXFLAGS=" -g -O0" -FFLAGS=" -g -O0" PETSC_ARCH=nompi_gcc_hdf5
>     [0]PETSC ERROR: #1 DMGetCoordinatesLocalNoncollective() at
>     /home/devel/src_linux/petsc-3.18.0/src/dm/interface/dmcoordinates.c:621
>     [0]PETSC ERROR: #2 DMPlexGetCellCoordinates() at
>     /home/devel/src_linux/petsc-3.18.0/src/dm/impls/plex/plexgeometry.c:1291
>     [0]PETSC ERROR: #3 main() at
>     /home/jobic/projet/fe-utils/petsc/fetools/src/ex_closure_petsc.c:86
>     [0]PETSC ERROR: PETSc Option Table entries:
>     [0]PETSC ERROR: -dm_plex_box_faces 2,2
>     [0]PETSC ERROR: -dm_plex_dim 2
>     [0]PETSC ERROR: -dm_plex_simplex 0
>     [0]PETSC ERROR: -petscspace_degree 1
>     [0]PETSC ERROR: -view_coord
>     [0]PETSC ERROR: ----------------End of Error Message -------send entire
>     error message to petsc-maint at mcs.anl.gov----------
> 
>     Maybe i've done something wrong ?
> 
> 
>     Moreover, i don't quite understand the function DMPlexGetLocalOffsets,
>     and how to use it with DMGetCoordinatesLocal. It seems that
>     DMGetCoordinatesLocal do not have the coords of the dofs, but only the
>     nodes defining the geometry.
> 
>     I've made some small modifications of ex8.c, but i still have an error :
>     [0]PETSC ERROR: --------------------- Error Message
>     --------------------------------------------------------------
>     [0]PETSC ERROR: Invalid argument
>     [0]PETSC ERROR: Wrong type of object: Parameter # 1
>     [0]PETSC ERROR: WARNING! There are option(s) set that were not used!
>     Could be the program crashed before they were used or a spelling
>     mistake, etc!
>     [0]PETSC ERROR: Option left: name:-sol value: vtk:sol.vtu
>     [0]PETSC ERROR: See https://petsc.org/release/faq/
>     <https://petsc.org/release/faq/> for trouble shooting.
>     [0]PETSC ERROR: Petsc Release Version 3.18.2, unknown
>     [0]PETSC ERROR:
>     /home/jobic/projet/fe-utils/petsc/fetools/cmake-build-debug/view_coords
>     on a  named luke by jobic Mon Dec 12 23:51:05 2022
>     [0]PETSC ERROR: Configure options
>     --prefix=/local/lib/petsc/3.18/p3/gcc/nompi_hdf5 --with-mpi=0
>     --with-debugging=1 --with-blacs=1 --download-zlib,--download-p4est
>     --download-hdf5=1 --download-triangle=1 --with-single-library=0
>     --with-large-file-io=1 --with-shared-libraries=0 -CFLAGS=" -g -O0"
>     -CXXFLAGS=" -g -O0" -FFLAGS=" -g -O0" PETSC_ARCH=nompi_gcc_hdf5
>     [0]PETSC ERROR: #1 PetscFEGetHeightSubspace() at
>     /home/devel/src_linux/petsc-3.18.0/src/dm/dt/fe/interface/fe.c:1692
>     [0]PETSC ERROR: #2 DMPlexGetLocalOffsets() at
>     /home/devel/src_linux/petsc-3.18.0/src/dm/impls/plex/plexceed.c:98
>     [0]PETSC ERROR: #3 ViewOffsets() at
>     /home/jobic/projet/fe-utils/petsc/fetools/src/view_coords.c:28
>     [0]PETSC ERROR: #4 main() at
>     /home/jobic/projet/fe-utils/petsc/fetools/src/view_coords.c:99
>     [0]PETSC ERROR: PETSc Option Table entries:
>     [0]PETSC ERROR: -heat_petscspace_degree 2
>     [0]PETSC ERROR: -sol vtk:sol.vtu
>     [0]PETSC ERROR: ----------------End of Error Message -------send entire
>     error message to petsc-maint at mcs.anl.gov----------
> 
> 
>     Is dm/impls/plex/tutorials/ex8.c a good example for viewing the coords
>     of the dofs of a DMPlex ?
> 
> 
>     Thanks,
> 
>     Yann
> 


More information about the petsc-users mailing list