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: }