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