xref: /petsc/include/petscdmceed.h (revision 7ce467fce31f25e225373fadec9318b793af96d4)
1a4963045SJacob Faibussowitsch #pragma once
2f918ec44SMatthew G. Knepley 
3f918ec44SMatthew G. Knepley #include <petscdm.h>
4f918ec44SMatthew G. Knepley 
5f918ec44SMatthew G. Knepley #if defined(PETSC_HAVE_LIBCEED)
6f918ec44SMatthew G. Knepley   #include <ceed.h>
7f918ec44SMatthew G. Knepley 
85f80ce2aSJacob Faibussowitsch   #if defined(PETSC_CLANG_STATIC_ANALYZER)
93ba16761SJacob Faibussowitsch void PetscCallCEED(CeedErrorType);
105f80ce2aSJacob Faibussowitsch   #else
119566063dSJacob Faibussowitsch     #define PetscCallCEED(...) \
12a2c9b50fSJeremy L Thompson       do { \
133ba16761SJacob Faibussowitsch         CeedErrorType ierr_ceed_ = __VA_ARGS__; \
145f80ce2aSJacob Faibussowitsch         PetscCheck(ierr_ceed_ == CEED_ERROR_SUCCESS, PETSC_COMM_SELF, PETSC_ERR_LIB, "libCEED error: %s", CeedErrorTypes[ierr_ceed_]); \
15a2c9b50fSJeremy L Thompson       } while (0)
165f80ce2aSJacob Faibussowitsch   #endif /* PETSC_CLANG_STATIC_ANALYZER */
179566063dSJacob Faibussowitsch   #define CHKERRQ_CEED(...) PetscCallCEED(__VA_ARGS__)
18a2c9b50fSJeremy L Thompson 
19f918ec44SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMGetCeed(DM, Ceed *);
20a2c9b50fSJeremy L Thompson 
21*7ce467fcSMatthew G. Knepley PETSC_EXTERN PetscErrorCode VecGetCeedVector(Vec, Ceed, CeedVector *);
22*7ce467fcSMatthew G. Knepley PETSC_EXTERN PetscErrorCode VecGetCeedVectorRead(Vec, Ceed, CeedVector *);
23*7ce467fcSMatthew G. Knepley PETSC_EXTERN PetscErrorCode VecRestoreCeedVector(Vec, CeedVector *);
24*7ce467fcSMatthew G. Knepley PETSC_EXTERN PetscErrorCode VecRestoreCeedVectorRead(Vec, CeedVector *);
25f918ec44SMatthew G. Knepley #endif
26