Actual source code: glexg.c

  1: #include <petsc/private/dmpleximpl.h>
  2: #include <petscdmplextransform.h>

  4: PetscBool DMPlexGenerateRegisterAllCalled = PETSC_FALSE;

  6: #if defined(PETSC_HAVE_TRIANGLE)
  7: PETSC_EXTERN PetscErrorCode DMPlexGenerate_Triangle(DM, PetscBool, DM*);
  8: PETSC_EXTERN PetscErrorCode DMPlexRefine_Triangle(DM, double*, DM*);
  9: #endif
 10: #if defined(PETSC_HAVE_TETGEN)
 11: PETSC_EXTERN PetscErrorCode DMPlexGenerate_Tetgen(DM, PetscBool, DM*);
 12: PETSC_EXTERN PetscErrorCode DMPlexRefine_Tetgen(DM, double*, DM*);
 13: #endif
 14: #if defined(PETSC_HAVE_CTETGEN)
 15: PETSC_EXTERN PetscErrorCode DMPlexGenerate_CTetgen(DM, PetscBool, DM*);
 16: PETSC_EXTERN PetscErrorCode DMPlexRefine_CTetgen(DM, double*, DM*);
 17: #endif

 19: /*@C
 20:   DMPlexGenerateRegisterAll - Registers all of the mesh generation methods in the DMPlexGenerate package.

 22:   Not Collective

 24:   Level: advanced

 26: .seealso:  DMPlexGenerateRegisterDestroy()
 27: @*/
 28: PetscErrorCode  DMPlexGenerateRegisterAll(void)
 29: {

 33:   if (DMPlexGenerateRegisterAllCalled) return(0);
 34:   DMPlexGenerateRegisterAllCalled = PETSC_TRUE;
 35: #if defined(PETSC_HAVE_TRIANGLE)
 36:   DMPlexGenerateRegister("triangle",DMPlexGenerate_Triangle,DMPlexRefine_Triangle,NULL,1);
 37: #endif
 38: #if defined(PETSC_HAVE_CTETGEN)
 39:   DMPlexGenerateRegister("ctetgen",DMPlexGenerate_CTetgen,DMPlexRefine_CTetgen,NULL,2);
 40: #endif
 41: #if defined(PETSC_HAVE_TETGEN)
 42:   DMPlexGenerateRegister("tetgen",DMPlexGenerate_Tetgen,DMPlexRefine_Tetgen,NULL,2);
 43: #endif
 44:   DMPlexGenerateRegister("cellrefiner",NULL,NULL,DMPlexTransformAdaptLabel,-1);
 45:   return(0);
 46: }