1: #ifndef viewercgnsimpl_h
2: #define viewercgnsimpl_h
4: #include <petsc/private/viewerimpl.h>
5: #include <cgnstypes.h>
7: typedef struct {
8: char *filename_template;
9: char *filename;
10: PetscFileMode btype;
11: int file_num;
12: const PetscInt *node_l2g;
13: int base, zone;
14: PetscInt num_local_nodes, nStart, nEnd;
15: PetscScalar *nodal_field;
16: PetscSegBuffer output_steps;
17: PetscSegBuffer output_times;
18: PetscInt batch_size;
19: } PetscViewer_CGNS;
21: #define PetscCallCGNS(ierr) \
22: do { \
23: int _cgns_ier = (ierr); \
24: PetscCheck(!_cgns_ier, PETSC_COMM_SELF, PETSC_ERR_LIB, "CGNS error %d %s", _cgns_ier, cg_get_error()); \
25: } while (0)
27: PETSC_EXTERN PetscErrorCode PetscViewerCGNSCheckBatch_Internal(PetscViewer);
28: PETSC_EXTERN PetscErrorCode PetscViewerCGNSFileOpen_Internal(PetscViewer, PetscInt);
30: #endif