1b7c563b6SJeremy L Thompson #ifndef libceed_petsc_examples_matops_h 2b7c563b6SJeremy 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); 11*d4d45553Srezgarshakeri PetscErrorCode ApplyLocal_Ceed(Vec X, Vec Y, OperatorApplyContext op_apply_ctx); 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); 16*d4d45553Srezgarshakeri PetscErrorCode ComputeErrorMax(OperatorApplyContext pr_restr_ctx, 17*d4d45553Srezgarshakeri CeedOperator op_error, 189b072555Sjeremylt Vec X, CeedVector target, PetscReal *max_error); 19e83e87a5Sjeremylt 20b7c563b6SJeremy L Thompson #endif // libceed_petsc_examples_matops_h 21