Hi all, I have several lines of code to read a mesh and uniformly refine it. DMPlex can not uniformly refine it. I am using PETSc-3.5.3. The code is very simple like follows:
#undef __FUNCT__ #define __FUNCT__ "main" int main(int argc, char **argv) { DM dm,pdm, refinedMesh; /* Problem specification */ AppCtx user; /* user-defined work context */ PetscErrorCode ierr; ierr = PetscInitialize(&argc, &argv, NULL, help);CHKERRQ(ierr); /*ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr);*/ ierr = DMPlexCreateExodusFromFile(PETSC_COMM_WORLD, "./Tet4.exo", PETSC_FALSE, &dm);CHKERRQ(ierr); ierr = DMPlexDistribute(dm, "metis", 0, NULL, &pdm);CHKERRQ(ierr); ierr = DMDestroy(&dm);CHKERRQ(ierr); ierr = DMPlexSetRefinementUniform(pdm, PETSC_TRUE);CHKERRQ(ierr); ierr = DMRefine(pdm, PETSC_COMM_WORLD, &refinedMesh);CHKERRQ(ierr); ierr = DMDestroy(&pdm);CHKERRQ(ierr); ierr = DMDestroy(&refinedMesh);CHKERRQ(ierr); ierr = PetscFinalize(); return 0; } The mesh file is also attached. Fande,
Tet4.exo
Description: Binary data