1c4762a1bSJed Brown! setting up DMPlex for finite elements 2c4762a1bSJed Brown! Contributed by Pratheek Shanthraj <p.shanthraj@mpie.de> 3c4762a1bSJed Brown program main 4c4762a1bSJed Brown implicit none 5c4762a1bSJed Brown#include <petsc/finclude/petsc.h90> 6c4762a1bSJed Brown DM :: dm 7c4762a1bSJed Brown PetscDS :: prob 8c4762a1bSJed Brown PetscInt :: dim = 3 9c4762a1bSJed Brown PetscBool :: simplex = PETSC_TRUE 10c4762a1bSJed Brown PetscBool :: interpolate = PETSC_TRUE 11c4762a1bSJed Brown PetscBool :: refinementUniform = PETSC_FALSE 12c4762a1bSJed Brown PetscReal :: refinementLimit = 0.0 13c4762a1bSJed Brown PetscErrorCode :: ierr 14c4762a1bSJed Brown 15*d8606c27SBarry Smith PetscCallA(PetscInitialize(PETSC_NULL_CHARACTER, ierr)) 16*d8606c27SBarry Smith PetscCallA(DMPlexCreateDoublet(PETSC_COMM_WORLD, dim, simplex,interpolate, refinementUniform, refinementLimit, dm, ierr)) 17*d8606c27SBarry Smith PetscCallA(DMSetUp(dm,ierr)) 18*d8606c27SBarry Smith PetscCallA(PetscDSCreate(PETSC_COMM_WORLD,prob,ierr)) 19*d8606c27SBarry Smith PetscCallA(DMGetDS(dm,prob,ierr)) 20c4762a1bSJed Brown 21*d8606c27SBarry Smith PetscCallA(DMDestroy(dm, ierr)) 22*d8606c27SBarry Smith PetscCallA(PetscFinalize(ierr)) 23c4762a1bSJed Brown end program main 24