1 #ifndef libceed_petsc_examples_matops_h 2 #define libceed_petsc_examples_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, OperatorApplyContext op_apply_ctx); 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(OperatorApplyContext pr_restr_ctx, 17 CeedOperator op_error, 18 Vec X, CeedVector target, PetscReal *max_error); 19 20 #endif // libceed_petsc_examples_matops_h 21