xref: /petsc/src/binding/petsc4py/src/petsc4py/PETSc/petscvwr.pxi (revision 6d8694c4fbab79f9439f1ad13c0386ba7ee1ca4b)
1cdef extern from * nogil:
2
3    ctypedef const char* PetscViewerType
4    PetscViewerType PETSCVIEWERSOCKET
5    PetscViewerType PETSCVIEWERASCII
6    PetscViewerType PETSCVIEWERBINARY
7    PetscViewerType PETSCVIEWERSTRING
8    PetscViewerType PETSCVIEWERDRAW
9    PetscViewerType PETSCVIEWERVU
10    PetscViewerType PETSCVIEWERMATHEMATICA
11    PetscViewerType PETSCVIEWERHDF5
12    PetscViewerType PETSCVIEWERVTK
13    PetscViewerType PETSCVIEWERMATLAB
14    PetscViewerType PETSCVIEWERSAWS
15    PetscViewerType PETSCVIEWERGLVIS
16    PetscViewerType PETSCVIEWERADIOS
17    PetscViewerType PETSCVIEWEREXODUSII
18    PetscViewerType PETSCVIEWERPYTHON
19    PetscViewerType PETSCVIEWERPYVISTA
20
21    ctypedef enum PetscViewerFormat:
22        PETSC_VIEWER_DEFAULT
23        PETSC_VIEWER_ASCII_MATLAB
24        PETSC_VIEWER_ASCII_MATHEMATICA
25        PETSC_VIEWER_ASCII_IMPL
26        PETSC_VIEWER_ASCII_INFO
27        PETSC_VIEWER_ASCII_INFO_DETAIL
28        PETSC_VIEWER_ASCII_COMMON
29        PETSC_VIEWER_ASCII_SYMMODU
30        PETSC_VIEWER_ASCII_INDEX
31        PETSC_VIEWER_ASCII_DENSE
32        PETSC_VIEWER_ASCII_MATRIXMARKET
33        PETSC_VIEWER_ASCII_PCICE
34        PETSC_VIEWER_ASCII_PYTHON
35        PETSC_VIEWER_ASCII_FACTOR_INFO
36        PETSC_VIEWER_ASCII_LATEX
37        PETSC_VIEWER_ASCII_XML
38        PETSC_VIEWER_ASCII_GLVIS
39        PETSC_VIEWER_ASCII_CSV
40        PETSC_VIEWER_DRAW_BASIC
41        PETSC_VIEWER_DRAW_LG
42        PETSC_VIEWER_DRAW_LG_XRANGE
43        PETSC_VIEWER_DRAW_CONTOUR
44        PETSC_VIEWER_DRAW_PORTS
45        PETSC_VIEWER_VTK_VTS
46        PETSC_VIEWER_VTK_VTR
47        PETSC_VIEWER_VTK_VTU
48        PETSC_VIEWER_BINARY_MATLAB
49        PETSC_VIEWER_NATIVE
50        PETSC_VIEWER_HDF5_PETSC
51        PETSC_VIEWER_HDF5_VIZ
52        PETSC_VIEWER_HDF5_XDMF
53        PETSC_VIEWER_HDF5_MAT
54        PETSC_VIEWER_NOFORMAT
55        PETSC_VIEWER_LOAD_BALANCE
56        PETSC_VIEWER_FAILED
57
58    ctypedef enum PetscFileMode:
59        PETSC_FILE_MODE_READ           "FILE_MODE_READ"
60        PETSC_FILE_MODE_WRITE          "FILE_MODE_WRITE"
61        PETSC_FILE_MODE_APPEND         "FILE_MODE_APPEND"
62        PETSC_FILE_MODE_UPDATE         "FILE_MODE_UPDATE"
63        PETSC_FILE_MODE_APPEND_UPDATE  "FILE_MODE_APPEND_UPDATE"
64
65    enum: PETSC_DRAW_FULL_SIZE
66    enum: PETSC_DRAW_HALF_SIZE
67    enum: PETSC_DRAW_THIRD_SIZE
68    enum: PETSC_DRAW_QUARTER_SIZE
69
70    PetscErrorCode PetscViewerView(PetscViewer, PetscViewer)
71    PetscErrorCode PetscViewerDestroy(PetscViewer*)
72    PetscErrorCode PetscViewerCreate(MPI_Comm, PetscViewer*)
73    PetscErrorCode PetscViewerSetType(PetscViewer, PetscViewerType)
74    PetscErrorCode PetscViewerGetType(PetscViewer, PetscViewerType*)
75
76    PetscErrorCode PetscViewerSetOptionsPrefix(PetscViewer, char[])
77    PetscErrorCode PetscViewerAppendOptionsPrefix(PetscViewer, char[])
78    PetscErrorCode PetscViewerGetOptionsPrefix(PetscViewer, char*[])
79    PetscErrorCode PetscViewerSetFromOptions(PetscViewer)
80    PetscErrorCode PetscViewerSetUp(PetscViewer)
81
82    PetscErrorCode PetscViewerASCIIOpen(MPI_Comm, char[], PetscViewer*)
83    PetscErrorCode PetscViewerBinaryCreate(MPI_Comm comm, PetscViewer*)
84    PetscErrorCode PetscViewerBinaryOpen(MPI_Comm, char[], PetscFileMode, PetscViewer*)
85    PetscErrorCode PetscViewerDrawOpen(MPI_Comm, char[], char[], int, int, int, int, PetscViewer*)
86
87    PetscErrorCode PetscViewerBinarySetUseMPIIO(PetscViewer, PetscBool)
88
89    PetscErrorCode PetscViewerSetFormat(PetscViewer, PetscViewerFormat)
90    PetscErrorCode PetscViewerGetFormat(PetscViewer, PetscViewerFormat*)
91    PetscErrorCode PetscViewerPushFormat(PetscViewer, PetscViewerFormat)
92    PetscErrorCode PetscViewerPopFormat(PetscViewer)
93
94    PetscErrorCode PetscViewerGetSubViewer(PetscViewer, MPI_Comm, PetscViewer*)
95    PetscErrorCode PetscViewerRestoreSubViewer(PetscViewer, MPI_Comm, PetscViewer*)
96
97    PetscErrorCode PetscViewerASCIISetTab(PetscViewer, PetscInt)
98    PetscErrorCode PetscViewerASCIIGetTab(PetscViewer, PetscInt*)
99    PetscErrorCode PetscViewerASCIIAddTab(PetscViewer, PetscInt)
100    PetscErrorCode PetscViewerASCIISubtractTab(PetscViewer, PetscInt)
101    PetscErrorCode PetscViewerASCIIPushSynchronized(PetscViewer)
102    PetscErrorCode PetscViewerASCIIPopSynchronized(PetscViewer)
103    PetscErrorCode PetscViewerASCIIPushTab(PetscViewer)
104    PetscErrorCode PetscViewerASCIIPopTab(PetscViewer)
105    PetscErrorCode PetscViewerASCIIUseTabs(PetscViewer, PetscBool)
106    PetscErrorCode PetscViewerASCIIPrintf(PetscViewer, const char[], ...)
107    PetscErrorCode PetscViewerStringSPrintf(PetscViewer, char[], ...)
108    PetscErrorCode PetscViewerASCIISynchronizedPrintf(PetscViewer, const char[], ...)
109
110    PetscErrorCode PetscViewerFileGetName(PetscViewer, char*[])
111    PetscErrorCode PetscViewerFileSetName(PetscViewer, char[])
112    PetscErrorCode PetscViewerFileGetMode(PetscViewer, PetscFileMode*)
113    PetscErrorCode PetscViewerFileSetMode(PetscViewer, PetscFileMode)
114    PetscErrorCode PetscViewerFlush(PetscViewer)
115
116    PetscErrorCode PetscViewerDrawClear(PetscViewer)
117    PetscErrorCode PetscViewerDrawSetInfo(PetscViewer, char[], char[], int, int, int, int)
118
119    PetscErrorCode PetscViewerHDF5PushTimestepping(PetscViewer)
120    PetscErrorCode PetscViewerHDF5PopTimestepping(PetscViewer)
121    PetscErrorCode PetscViewerHDF5GetTimestep(PetscViewer, PetscInt*)
122    PetscErrorCode PetscViewerHDF5SetTimestep(PetscViewer, PetscInt)
123    PetscErrorCode PetscViewerHDF5IncrementTimestep(PetscViewer)
124    PetscErrorCode PetscViewerHDF5PushGroup(PetscViewer, char[])
125    PetscErrorCode PetscViewerHDF5PopGroup(PetscViewer)
126    PetscErrorCode PetscViewerHDF5GetGroup(PetscViewer, char[], char*[])
127
128    PetscErrorCode PetscViewerPythonSetType(PetscViewer, char[])
129    PetscErrorCode PetscViewerPythonGetType(PetscViewer, char*[])
130    PetscErrorCode PetscViewerPythonViewObject(PetscViewer, PetscObject)
131
132    PetscViewer PETSC_VIEWER_STDOUT_(MPI_Comm) except? NULL
133    PetscViewer PETSC_VIEWER_STDOUT_SELF
134    PetscViewer PETSC_VIEWER_STDOUT_WORLD
135
136    PetscViewer PETSC_VIEWER_STDERR_(MPI_Comm) except? NULL
137    PetscViewer PETSC_VIEWER_STDERR_SELF
138    PetscViewer PETSC_VIEWER_STDERR_WORLD
139
140    PetscViewer PETSC_VIEWER_BINARY_(MPI_Comm) except? NULL
141    PetscViewer PETSC_VIEWER_BINARY_SELF
142    PetscViewer PETSC_VIEWER_BINARY_WORLD
143
144    PetscViewer PETSC_VIEWER_DRAW_(MPI_Comm) except? NULL
145    PetscViewer PETSC_VIEWER_DRAW_SELF
146    PetscViewer PETSC_VIEWER_DRAW_WORLD
147
148# ---
149
150cdef inline PetscFileMode filemode(object mode) except <PetscFileMode>(-1):
151    if mode is None:
152        return PETSC_FILE_MODE_READ
153    if isinstance(mode, str):
154        if   mode == 'r'  : return PETSC_FILE_MODE_READ
155        elif mode == 'w'  : return PETSC_FILE_MODE_WRITE
156        elif mode == 'a'  : return PETSC_FILE_MODE_APPEND
157        elif mode == 'r+' : return PETSC_FILE_MODE_UPDATE
158        elif mode == 'w+' : return PETSC_FILE_MODE_UPDATE
159        elif mode == 'a+' : return PETSC_FILE_MODE_APPEND_UPDATE
160        elif mode == 'u'  : return PETSC_FILE_MODE_UPDATE
161        elif mode == 'au' : return PETSC_FILE_MODE_APPEND_UPDATE
162        elif mode == 'ua' : return PETSC_FILE_MODE_APPEND_UPDATE
163    return mode
164