[petsc-users] Question on DMPlexCreateSection for Fortran

Danyang Su danyang.su at gmail.com
Tue Feb 20 11:30:15 CST 2018


Hi All,

I tried to compile the DMPlexCreateSection code but got error 
information as shown below.

Error: Symbol 'petsc_null_is' at (1) has no IMPLICIT type

I tried to use PETSC_NULL_OBJECT instead of PETSC_NULL_IS, then the code 
can be compiled but run into Segmentation Violation error in 
DMPlexCreateSection.

dmda_flow%da is distributed dm object that works fine.

The fortran example I follow is 
http://www.mcs.anl.gov/petsc/petsc-dev/src/dm/impls/plex/examples/tutorials/ex1f90.F90. 


What parameters should I use if passing null to bcField, bcComps, 
bcPoints and perm.

PetscErrorCode 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/Vec/PetscErrorCode.html#PetscErrorCode>  DMPlexCreateSection 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/DMPLEX/DMPlexCreateSection.html#DMPlexCreateSection>(DM 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/DM/DM.html#DM>  dm,PetscInt 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/Vec/PetscInt.html#PetscInt>  dim,PetscInt 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/Vec/PetscInt.html#PetscInt>  numFields,constPetscInt 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/Vec/PetscInt.html#PetscInt>  numComp[],constPetscInt 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/Vec/PetscInt.html#PetscInt>  numDof[],PetscInt 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/Vec/PetscInt.html#PetscInt>  numBC,constPetscInt 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/Vec/PetscInt.html#PetscInt>  bcField[],
constIS 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/IS/IS.html#IS>  bcComps[], constIS 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/IS/IS.html#IS>  bcPoints[],IS 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/IS/IS.html#IS>  perm,PetscSection 
<https://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/IS/PetscSection.html#PetscSection>  *section)

#include <petsc/finclude/petscis.h>
#include <petsc/finclude/petscis.h90>
#include <petsc/finclude/petscdmplex.h>

...

#ifdef USG
         numFields = 1
         numComp(1) = 1
         pNumComp => numComp

         do i = 1, numFields*(dmda_flow%dim+1)
           numDof(i) = 0
         end do
         numDof(0*(dmda_flow%dim+1)+1) = dmda_flow%dof
         pNumDof => numDof

         numBC = 0

         call DMPlexCreateSection(dmda_flow%da,dmda_flow%dim,          &
numFields,pNumComp,pNumDof,                           &
numBC,PETSC_NULL_INTEGER,                               &
PETSC_NULL_IS,PETSC_NULL_IS, &             !Error here
                                  PETSC_NULL_IS,section,ierr)
         CHKERRQ(ierr)

         call PetscSectionSetFieldName(section,0,'flow',ierr)
         CHKERRQ(ierr)

         call DMSetDefaultSection(dmda_flow%da,section,ierr)
         CHKERRQ(ierr)

         call PetscSectionDestroy(section,ierr)
         CHKERRQ(ierr)
#endif

Thanks,

Danyang

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180220/6763c5b5/attachment.html>


More information about the petsc-users mailing list