xref: /petsc/src/dm/impls/plex/tests/ex37.c (revision 1e1ea65d8de51fde77ce8a787efbef25e407badc)
1c4762a1bSJed Brown static const char help[] = "Test of EGADSLite CAD functionality";
2c4762a1bSJed Brown 
3c4762a1bSJed Brown #include <petscdmplex.h>
4c4762a1bSJed Brown 
5c4762a1bSJed Brown typedef struct {
6c4762a1bSJed Brown   char filename[PETSC_MAX_PATH_LEN];
7c4762a1bSJed Brown } AppCtx;
8c4762a1bSJed Brown 
9c4762a1bSJed Brown static PetscErrorCode ProcessOptions(MPI_Comm comm, AppCtx *options)
10c4762a1bSJed Brown {
11c4762a1bSJed Brown   PetscErrorCode ierr;
12c4762a1bSJed Brown 
13c4762a1bSJed Brown   PetscFunctionBeginUser;
14c4762a1bSJed Brown   options->filename[0] = '\0';
15c4762a1bSJed Brown 
16c4762a1bSJed Brown   ierr = PetscOptionsBegin(comm, "", "EGADSPlex Problem Options", "EGADSLite");CHKERRQ(ierr);
17589a23caSBarry Smith   ierr = PetscOptionsString("-filename", "The EGADSLite file", "ex9.c", options->filename, options->filename, sizeof(options->filename), NULL);CHKERRQ(ierr);
18*1e1ea65dSPierre Jolivet   ierr = PetscOptionsEnd();CHKERRQ(ierr);
19c4762a1bSJed Brown   PetscFunctionReturn(0);
20c4762a1bSJed Brown }
21c4762a1bSJed Brown 
226f4f5c14SMatthew G. Knepley int main(int argc, char *argv[])
236f4f5c14SMatthew G. Knepley {
246f4f5c14SMatthew G. Knepley   DM             dm;
257bee2925SMatthew Knepley   DMLabel        bodyLabel, faceLabel, edgeLabel;
266f4f5c14SMatthew G. Knepley   AppCtx         ctx;
277bee2925SMatthew Knepley   MPI_Comm       comm;
286f4f5c14SMatthew G. Knepley   PetscErrorCode ierr;
296f4f5c14SMatthew G. Knepley 
306f4f5c14SMatthew G. Knepley   ierr = PetscInitialize(&argc, &argv, NULL, help); if (ierr) return ierr;
316f4f5c14SMatthew G. Knepley   comm = PETSC_COMM_WORLD;
326f4f5c14SMatthew G. Knepley   ierr = ProcessOptions(comm, &ctx);CHKERRQ(ierr);
337bee2925SMatthew Knepley   ierr = DMPlexCreateFromFile(comm, ctx.filename, PETSC_TRUE, &dm);CHKERRQ(ierr);
346f4f5c14SMatthew G. Knepley 
35c4762a1bSJed Brown   ierr = DMGetLabel(dm, "EGADS Body ID", &bodyLabel);CHKERRQ(ierr);
36c4762a1bSJed Brown   ierr = DMGetLabel(dm, "EGADS Face ID", &faceLabel);CHKERRQ(ierr);
37c4762a1bSJed Brown   ierr = DMGetLabel(dm, "EGADS Edge ID", &edgeLabel);CHKERRQ(ierr);
38c4762a1bSJed Brown   ierr = DMLabelView(bodyLabel, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
39c4762a1bSJed Brown   ierr = DMLabelView(faceLabel, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
40c4762a1bSJed Brown   ierr = DMLabelView(edgeLabel, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
41c4762a1bSJed Brown 
427bee2925SMatthew Knepley   ierr = DMSetFromOptions(dm);CHKERRQ(ierr);
43c4762a1bSJed Brown   ierr = DMViewFromOptions(dm, NULL, "-dm_view");CHKERRQ(ierr);
44c4762a1bSJed Brown   ierr = DMDestroy(&dm);CHKERRQ(ierr);
45c4762a1bSJed Brown   ierr = PetscFinalize();
46c4762a1bSJed Brown   return ierr;
47c4762a1bSJed Brown }
48c4762a1bSJed Brown 
49c4762a1bSJed Brown /*TEST
50c4762a1bSJed Brown 
51c4762a1bSJed Brown   build:
52c4762a1bSJed Brown     requires: egads
53c4762a1bSJed Brown 
54c4762a1bSJed Brown   test:
55c4762a1bSJed Brown     suffix: sphere_0
565b72a2ceSPierre Jolivet     filter: sed "s/DM_[0-9a-zA-Z]*_0/DM__0/g"
577bee2925SMatthew Knepley     args: -filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/unit_sphere.egadslite -dm_refine 1 -dm_view -dm_plex_check_all -dm_plex_egads_print_model
586f4f5c14SMatthew G. Knepley 
596f4f5c14SMatthew G. Knepley   test:
606f4f5c14SMatthew G. Knepley     suffix: nozzle_0
61ad7e3cddSSatish Balay     filter: sed "s/DM_[0-9a-zA-Z]*_0/DM__0/g"
627bee2925SMatthew Knepley     args: -filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/nozzle.egadslite -dm_refine 1 -dm_view -dm_plex_check_all -dm_plex_egads_print_model
63c4762a1bSJed Brown 
64c4762a1bSJed Brown TEST*/
65