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