1*b7c563b6SJeremy L Thompson #ifndef libceed_petsc_examples_matops_h 2*b7c563b6SJeremy L Thompson #define libceed_petsc_examples_matops_h 3e83e87a5Sjeremylt 4e83e87a5Sjeremylt #include <ceed.h> 5e83e87a5Sjeremylt #include <petsc.h> 6e83e87a5Sjeremylt #include <petscdmplex.h> 7e83e87a5Sjeremylt 8e83e87a5Sjeremylt #include "structs.h" 9e83e87a5Sjeremylt 10e83e87a5Sjeremylt PetscErrorCode MatGetDiag(Mat A, Vec D); 11e83e87a5Sjeremylt PetscErrorCode ApplyLocal_Ceed(Vec X, Vec Y, UserO user); 12e83e87a5Sjeremylt PetscErrorCode MatMult_Ceed(Mat A, Vec X, Vec Y); 13e83e87a5Sjeremylt PetscErrorCode FormResidual_Ceed(SNES snes, Vec X, Vec Y, void *ctx); 14e83e87a5Sjeremylt PetscErrorCode MatMult_Prolong(Mat A, Vec X, Vec Y); 15e83e87a5Sjeremylt PetscErrorCode MatMult_Restrict(Mat A, Vec X, Vec Y); 169b072555Sjeremylt PetscErrorCode ComputeErrorMax(UserO user, CeedOperator op_error, 179b072555Sjeremylt Vec X, CeedVector target, PetscReal *max_error); 18e83e87a5Sjeremylt 19*b7c563b6SJeremy L Thompson #endif // libceed_petsc_examples_matops_h 20