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
