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