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