On 18-02-20 09:52 AM, Matthew Knepley wrote:
On Tue, Feb 20, 2018 at 12:30 PM, Danyang Su <[email protected]
<mailto:[email protected]>> wrote:
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.
From the webpage
http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/DMPlexCreateSection.html
The F90 version is DMPlexCreateSectionF90. Doing this with F77 arrays
would have been too painful.
Hi Matt,
Sorry, I still cannot compile the code if use DMPlexCreateSectionF90
instead of DMPlexCreateSection. Would you please tell me in more details?
undefined reference to `dmplexcreatesectionf90_'
then I #include <petsc/finclude/petscdmplex.h90>, but this throws more
error during compilation.
Included at
/home/dsu/Soft/PETSc/petsc-3.7.5/include/petsc/finclude/petscdmplex.h90:6:
Included at ../../solver/solver_ddmethod.F90:62:
PETSCSECTION_HIDE section
1
Error: Unclassifiable statement at (1)
/home/dsu/Soft/PETSc/petsc-3.7.5/include/petsc/finclude/ftn-custom/petscdmplex.h90:167.10:
Included at
/home/dsu/Soft/PETSc/petsc-3.7.5/include/petsc/finclude/petscdmplex.h90:6:
Included at ../../solver/solver_ddmethod.F90:62:
PETSCSECTION_HIDE section
1
Error: Unclassifiable statement at (1)
/home/dsu/Soft/PETSc/petsc-3.7.5/include/petsc/finclude/ftn-custom/petscdmplex.h90:179.10:
Included at
/home/dsu/Soft/PETSc/petsc-3.7.5/include/petsc/finclude/petscdmplex.h90:6:
Included at ../../solver/solver_ddmethod.F90:62:
Thanks,
Matt
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
<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
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which
their experiments lead.
-- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/%7Emk51/>