1e83e87a5Sjeremylt #ifndef petscutils_h 2e83e87a5Sjeremylt #define petscutils_h 3e83e87a5Sjeremylt 4e83e87a5Sjeremylt #include <ceed.h> 5e83e87a5Sjeremylt #include <petsc.h> 6e83e87a5Sjeremylt #include <petscdmplex.h> 7e83e87a5Sjeremylt #include <petscfe.h> 8e83e87a5Sjeremylt 9e83e87a5Sjeremylt CeedMemType MemTypeP2C(PetscMemType mtype); 10e83e87a5Sjeremylt PetscErrorCode ProjectToUnitSphere(DM dm); 119b072555Sjeremylt PetscErrorCode Kershaw(DM dm_orig, PetscScalar eps); 12e83e87a5Sjeremylt typedef PetscErrorCode (*BCFunction)(PetscInt dim, PetscReal time, 13e83e87a5Sjeremylt const PetscReal x[], 149b072555Sjeremylt PetscInt num_comp_u, PetscScalar *u, void *ctx); 159b072555Sjeremylt PetscErrorCode SetupDMByDegree(DM dm, PetscInt degree, PetscInt num_comp_u, 169b072555Sjeremylt PetscInt topo_dim, 179b072555Sjeremylt bool enforce_bc, BCFunction bc_func); 18*7ed3e4cdSJeremy L Thompson PetscErrorCode CreateRestrictionFromPlex(Ceed ceed, DM dm, CeedInt height, 19*7ed3e4cdSJeremy L Thompson DMLabel domain_label, CeedInt value, CeedElemRestriction *elem_restr); 20e83e87a5Sjeremylt 21e83e87a5Sjeremylt #endif // petscutils_h 22