1
1
cimport petsc4py.PETSc as PETSc
2
+ from petsc4py.PETSc cimport CHKERR, CHKERRMPI
2
3
cimport mpi4py.MPI as MPI
3
4
cimport numpy as np
4
5
@@ -21,13 +22,16 @@ cdef extern from "petsc.h":
21
22
PETSC_SCALAR,
22
23
PETSC_COMPLEX,
23
24
PETSC_DATATYPE_UNKNOWN
25
+ ctypedef enum PetscErrorCode:
26
+ PETSC_SUCCESS
27
+ PETSC_ERR_LIB
24
28
25
29
cdef extern from " petscsys.h" nogil:
26
- int PetscMalloc1(PetscInt,void * )
27
- int PetscMalloc2(PetscInt,void * ,PetscInt,void * )
28
- int PetscFree(void * )
29
- int PetscFree2(void * ,void * )
30
- int PetscSortIntWithArray(PetscInt,PetscInt[],PetscInt[])
30
+ PetscErrorCode PetscMalloc1(PetscInt,void * )
31
+ PetscErrorCode PetscMalloc2(PetscInt,void * ,PetscInt,void * )
32
+ PetscErrorCode PetscFree(void * )
33
+ PetscErrorCode PetscFree2(void * ,void * )
34
+ PetscErrorCode PetscSortIntWithArray(PetscInt,PetscInt[],PetscInt[])
31
35
32
36
cdef extern from " petscdmtypes.h" nogil:
33
37
ctypedef enum PetscDMPolytopeType " DMPolytopeType" :
@@ -51,105 +55,105 @@ cdef extern from "petscdmtypes.h" nogil:
51
55
DM_NUM_POLYTOPES
52
56
53
57
cdef extern from " petscdmplex.h" nogil:
54
- int DMPlexGetHeightStratum(PETSc.PetscDM,PetscInt,PetscInt* ,PetscInt* )
55
- int DMPlexGetDepthStratum(PETSc.PetscDM,PetscInt,PetscInt* ,PetscInt* )
56
- int DMPlexGetPointHeight(PETSc.PetscDM,PetscInt,PetscInt* )
57
- int DMPlexGetPointDepth(PETSc.PetscDM,PetscInt,PetscInt* )
58
-
59
- int DMPlexGetChart(PETSc.PetscDM,PetscInt* ,PetscInt* )
60
- int DMPlexGetConeSize(PETSc.PetscDM,PetscInt,PetscInt* )
61
- int DMPlexGetCone(PETSc.PetscDM,PetscInt,PetscInt* [])
62
- int DMPlexGetConeOrientation(PETSc.PetscDM,PetscInt,PetscInt* [])
63
- int DMPlexGetSupportSize(PETSc.PetscDM,PetscInt,PetscInt* )
64
- int DMPlexGetSupport(PETSc.PetscDM,PetscInt,PetscInt* [])
65
- int DMPlexGetMaxSizes(PETSc.PetscDM,PetscInt* ,PetscInt* )
66
-
67
- int DMPlexGetTransitiveClosure(PETSc.PetscDM,PetscInt,PetscBool,PetscInt * ,PetscInt * [])
68
- int DMPlexRestoreTransitiveClosure(PETSc.PetscDM,PetscInt,PetscBool,PetscInt * ,PetscInt * [])
69
- int DMPlexDistributeData(PETSc.PetscDM,PETSc.PetscSF,PETSc.PetscSection,MPI.MPI_Datatype,void * ,PETSc.PetscSection,void ** )
70
- int DMPlexSetAdjacencyUser(PETSc.PetscDM,int (* )(PETSc.PetscDM,PetscInt,PetscInt* ,PetscInt[],void * ),void * )
71
- int DMPlexCreatePointNumbering(PETSc.PetscDM,PETSc.PetscIS* )
72
- int DMPlexLabelComplete(PETSc.PetscDM, PETSc.PetscDMLabel)
73
- int DMPlexDistributeOverlap(PETSc.PetscDM,PetscInt,PETSc.PetscSF* ,PETSc.PetscDM* )
74
-
75
- int DMPlexFilter(PETSc.PetscDM,PETSc.PetscDMLabel,PetscInt,PetscBool,PetscBool,PETSc.PetscSF* ,PETSc.PetscDM* )
76
- int DMPlexGetSubpointIS(PETSc.PetscDM,PETSc.PetscIS* )
77
- int DMPlexGetSubpointMap(PETSc.PetscDM,PETSc.PetscDMLabel* )
78
- int DMPlexSetSubpointMap(PETSc.PetscDM,PETSc.PetscDMLabel)
79
-
80
- int DMPlexSetCellType(PETSc.PetscDM,PetscInt,PetscDMPolytopeType)
81
- int DMPlexGetCellType(PETSc.PetscDM,PetscInt,PetscDMPolytopeType* )
58
+ PetscErrorCode DMPlexGetHeightStratum(PETSc.PetscDM,PetscInt,PetscInt* ,PetscInt* )
59
+ PetscErrorCode DMPlexGetDepthStratum(PETSc.PetscDM,PetscInt,PetscInt* ,PetscInt* )
60
+ PetscErrorCode DMPlexGetPointHeight(PETSc.PetscDM,PetscInt,PetscInt* )
61
+ PetscErrorCode DMPlexGetPointDepth(PETSc.PetscDM,PetscInt,PetscInt* )
62
+
63
+ PetscErrorCode DMPlexGetChart(PETSc.PetscDM,PetscInt* ,PetscInt* )
64
+ PetscErrorCode DMPlexGetConeSize(PETSc.PetscDM,PetscInt,PetscInt* )
65
+ PetscErrorCode DMPlexGetCone(PETSc.PetscDM,PetscInt,PetscInt* [])
66
+ PetscErrorCode DMPlexGetConeOrientation(PETSc.PetscDM,PetscInt,PetscInt* [])
67
+ PetscErrorCode DMPlexGetSupportSize(PETSc.PetscDM,PetscInt,PetscInt* )
68
+ PetscErrorCode DMPlexGetSupport(PETSc.PetscDM,PetscInt,PetscInt* [])
69
+ PetscErrorCode DMPlexGetMaxSizes(PETSc.PetscDM,PetscInt* ,PetscInt* )
70
+
71
+ PetscErrorCode DMPlexGetTransitiveClosure(PETSc.PetscDM,PetscInt,PetscBool,PetscInt * ,PetscInt * [])
72
+ PetscErrorCode DMPlexRestoreTransitiveClosure(PETSc.PetscDM,PetscInt,PetscBool,PetscInt * ,PetscInt * [])
73
+ PetscErrorCode DMPlexDistributeData(PETSc.PetscDM,PETSc.PetscSF,PETSc.PetscSection,MPI.MPI_Datatype,void * ,PETSc.PetscSection,void ** )
74
+ PetscErrorCode DMPlexSetAdjacencyUser(PETSc.PetscDM,int (* )(PETSc.PetscDM,PetscInt,PetscInt* ,PetscInt[],void * ),void * )
75
+ PetscErrorCode DMPlexCreatePointNumbering(PETSc.PetscDM,PETSc.PetscIS* )
76
+ PetscErrorCode DMPlexLabelComplete(PETSc.PetscDM, PETSc.PetscDMLabel)
77
+ PetscErrorCode DMPlexDistributeOverlap(PETSc.PetscDM,PetscInt,PETSc.PetscSF* ,PETSc.PetscDM* )
78
+
79
+ PetscErrorCode DMPlexFilter(PETSc.PetscDM,PETSc.PetscDMLabel,PetscInt,PetscBool,PetscBool,PETSc.PetscSF* ,PETSc.PetscDM* )
80
+ PetscErrorCode DMPlexGetSubpointIS(PETSc.PetscDM,PETSc.PetscIS* )
81
+ PetscErrorCode DMPlexGetSubpointMap(PETSc.PetscDM,PETSc.PetscDMLabel* )
82
+ PetscErrorCode DMPlexSetSubpointMap(PETSc.PetscDM,PETSc.PetscDMLabel)
83
+
84
+ PetscErrorCode DMPlexSetCellType(PETSc.PetscDM,PetscInt,PetscDMPolytopeType)
85
+ PetscErrorCode DMPlexGetCellType(PETSc.PetscDM,PetscInt,PetscDMPolytopeType* )
82
86
83
87
cdef extern from " petscdmlabel.h" nogil:
84
88
struct _n_DMLabel
85
89
ctypedef _n_DMLabel* DMLabel " DMLabel"
86
- int DMLabelCreateIndex(DMLabel, PetscInt, PetscInt)
87
- int DMLabelDestroyIndex(DMLabel)
88
- int DMLabelDestroy(DMLabel* )
89
- int DMLabelHasPoint(DMLabel, PetscInt, PetscBool* )
90
- int DMLabelSetValue(DMLabel, PetscInt, PetscInt)
91
- int DMLabelGetValue(DMLabel, PetscInt, PetscInt* )
92
- int DMLabelClearValue(DMLabel, PetscInt, PetscInt)
93
- int DMLabelGetStratumSize(DMLabel, PetscInt, PetscInt* )
94
- int DMLabelGetStratumIS(DMLabel, PetscInt, PETSc.PetscIS* )
90
+ PetscErrorCode DMLabelCreateIndex(DMLabel, PetscInt, PetscInt)
91
+ PetscErrorCode DMLabelDestroyIndex(DMLabel)
92
+ PetscErrorCode DMLabelDestroy(DMLabel* )
93
+ PetscErrorCode DMLabelHasPoint(DMLabel, PetscInt, PetscBool* )
94
+ PetscErrorCode DMLabelSetValue(DMLabel, PetscInt, PetscInt)
95
+ PetscErrorCode DMLabelGetValue(DMLabel, PetscInt, PetscInt* )
96
+ PetscErrorCode DMLabelClearValue(DMLabel, PetscInt, PetscInt)
97
+ PetscErrorCode DMLabelGetStratumSize(DMLabel, PetscInt, PetscInt* )
98
+ PetscErrorCode DMLabelGetStratumIS(DMLabel, PetscInt, PETSc.PetscIS* )
95
99
96
100
cdef extern from " petscdm.h" nogil:
97
- int DMCreateLabel(PETSc.PetscDM,char [])
98
- int DMGetLabel(PETSc.PetscDM,char [],DMLabel* )
99
- int DMGetPointSF(PETSc.PetscDM,PETSc.PetscSF* )
100
- int DMSetLabelValue(PETSc.PetscDM,char [],PetscInt,PetscInt)
101
- int DMGetLabelValue(PETSc.PetscDM,char [],PetscInt,PetscInt* )
101
+ PetscErrorCode DMCreateLabel(PETSc.PetscDM,char [])
102
+ PetscErrorCode DMGetLabel(PETSc.PetscDM,char [],DMLabel* )
103
+ PetscErrorCode DMGetPointSF(PETSc.PetscDM,PETSc.PetscSF* )
104
+ PetscErrorCode DMSetLabelValue(PETSc.PetscDM,char [],PetscInt,PetscInt)
105
+ PetscErrorCode DMGetLabelValue(PETSc.PetscDM,char [],PetscInt,PetscInt* )
102
106
103
107
cdef extern from " petscdmswarm.h" nogil:
104
- int DMSwarmGetLocalSize(PETSc.PetscDM,PetscInt* )
105
- int DMSwarmGetCellDM(PETSc.PetscDM, PETSc.PetscDM* )
106
- int DMSwarmGetCellDMActive(PETSc.PetscDM, PETSc.PetscDMSwarmCellDM* )
107
- int DMSwarmCellDMGetCellID(PETSc.PetscDMSwarmCellDM, const char * [])
108
- int DMSwarmGetField(PETSc.PetscDM,const char [],PetscInt* ,PetscDataType* ,void ** )
109
- int DMSwarmRestoreField(PETSc.PetscDM,const char [],PetscInt* ,PetscDataType* ,void ** )
108
+ PetscErrorCode DMSwarmGetLocalSize(PETSc.PetscDM,PetscInt* )
109
+ PetscErrorCode DMSwarmGetCellDM(PETSc.PetscDM, PETSc.PetscDM* )
110
+ PetscErrorCode DMSwarmGetCellDMActive(PETSc.PetscDM, PETSc.PetscDMSwarmCellDM* )
111
+ PetscErrorCode DMSwarmCellDMGetCellID(PETSc.PetscDMSwarmCellDM, const char * [])
112
+ PetscErrorCode DMSwarmGetField(PETSc.PetscDM,const char [],PetscInt* ,PetscDataType* ,void ** )
113
+ PetscErrorCode DMSwarmRestoreField(PETSc.PetscDM,const char [],PetscInt* ,PetscDataType* ,void ** )
110
114
111
115
cdef extern from " petscvec.h" nogil:
112
- int VecGetArray(PETSc.PetscVec,PetscScalar** )
113
- int VecRestoreArray(PETSc.PetscVec,PetscScalar** )
114
- int VecGetArrayRead(PETSc.PetscVec,const PetscScalar** )
115
- int VecRestoreArrayRead(PETSc.PetscVec,const PetscScalar** )
116
+ PetscErrorCode VecGetArray(PETSc.PetscVec,PetscScalar** )
117
+ PetscErrorCode VecRestoreArray(PETSc.PetscVec,PetscScalar** )
118
+ PetscErrorCode VecGetArrayRead(PETSc.PetscVec,const PetscScalar** )
119
+ PetscErrorCode VecRestoreArrayRead(PETSc.PetscVec,const PetscScalar** )
116
120
117
121
cdef extern from " petscis.h" nogil:
118
- int PetscSectionGetOffset(PETSc.PetscSection,PetscInt,PetscInt* )
119
- int PetscSectionGetDof(PETSc.PetscSection,PetscInt,PetscInt* )
120
- int PetscSectionSetDof(PETSc.PetscSection,PetscInt,PetscInt)
121
- int PetscSectionSetFieldDof(PETSc.PetscSection,PetscInt,PetscInt,PetscInt)
122
- int PetscSectionGetFieldDof(PETSc.PetscSection,PetscInt,PetscInt,PetscInt* )
123
- int PetscSectionGetConstraintDof(PETSc.PetscSection,PetscInt,PetscInt* )
124
- int PetscSectionSetConstraintDof(PETSc.PetscSection,PetscInt,PetscInt)
125
- int PetscSectionSetConstraintIndices(PETSc.PetscSection,PetscInt, PetscInt[])
126
- int PetscSectionGetConstraintIndices(PETSc.PetscSection,PetscInt, const PetscInt** )
127
- int PetscSectionGetMaxDof(PETSc.PetscSection,PetscInt* )
128
- int PetscSectionSetPermutation(PETSc.PetscSection,PETSc.PetscIS)
129
- int ISGetIndices(PETSc.PetscIS,PetscInt* [])
130
- int ISGetSize(PETSc.PetscIS,PetscInt* )
131
- int ISRestoreIndices(PETSc.PetscIS,PetscInt* [])
132
- int ISGeneralSetIndices(PETSc.PetscIS,PetscInt,PetscInt[],PetscCopyMode)
133
- int ISLocalToGlobalMappingCreateIS(PETSc.PetscIS,PETSc.PetscLGMap* )
134
- int ISLocalToGlobalMappingGetSize(PETSc.PetscLGMap,PetscInt* )
135
- int ISLocalToGlobalMappingGetBlockIndices(PETSc.PetscLGMap, const PetscInt** )
136
- int ISLocalToGlobalMappingRestoreBlockIndices(PETSc.PetscLGMap, const PetscInt** )
137
- int ISDestroy(PETSc.PetscIS* )
122
+ PetscErrorCode PetscSectionGetOffset(PETSc.PetscSection,PetscInt,PetscInt* )
123
+ PetscErrorCode PetscSectionGetDof(PETSc.PetscSection,PetscInt,PetscInt* )
124
+ PetscErrorCode PetscSectionSetDof(PETSc.PetscSection,PetscInt,PetscInt)
125
+ PetscErrorCode PetscSectionSetFieldDof(PETSc.PetscSection,PetscInt,PetscInt,PetscInt)
126
+ PetscErrorCode PetscSectionGetFieldDof(PETSc.PetscSection,PetscInt,PetscInt,PetscInt* )
127
+ PetscErrorCode PetscSectionGetConstraintDof(PETSc.PetscSection,PetscInt,PetscInt* )
128
+ PetscErrorCode PetscSectionSetConstraintDof(PETSc.PetscSection,PetscInt,PetscInt)
129
+ PetscErrorCode PetscSectionSetConstraintIndices(PETSc.PetscSection,PetscInt, PetscInt[])
130
+ PetscErrorCode PetscSectionGetConstraintIndices(PETSc.PetscSection,PetscInt, const PetscInt** )
131
+ PetscErrorCode PetscSectionGetMaxDof(PETSc.PetscSection,PetscInt* )
132
+ PetscErrorCode PetscSectionSetPermutation(PETSc.PetscSection,PETSc.PetscIS)
133
+ PetscErrorCode ISGetIndices(PETSc.PetscIS,PetscInt* [])
134
+ PetscErrorCode ISGetSize(PETSc.PetscIS,PetscInt* )
135
+ PetscErrorCode ISRestoreIndices(PETSc.PetscIS,PetscInt* [])
136
+ PetscErrorCode ISGeneralSetIndices(PETSc.PetscIS,PetscInt,PetscInt[],PetscCopyMode)
137
+ PetscErrorCode ISLocalToGlobalMappingCreateIS(PETSc.PetscIS,PETSc.PetscLGMap* )
138
+ PetscErrorCode ISLocalToGlobalMappingGetSize(PETSc.PetscLGMap,PetscInt* )
139
+ PetscErrorCode ISLocalToGlobalMappingGetBlockIndices(PETSc.PetscLGMap, const PetscInt** )
140
+ PetscErrorCode ISLocalToGlobalMappingRestoreBlockIndices(PETSc.PetscLGMap, const PetscInt** )
141
+ PetscErrorCode ISDestroy(PETSc.PetscIS* )
138
142
139
143
cdef extern from " petscsf.h" nogil:
140
144
struct PetscSFNode_:
141
145
PetscInt rank
142
146
PetscInt index
143
147
ctypedef PetscSFNode_ PetscSFNode " PetscSFNode"
144
148
145
- int PetscSFGetGraph(PETSc.PetscSF,PetscInt* ,PetscInt* ,PetscInt** ,PetscSFNode** )
146
- int PetscSFSetGraph(PETSc.PetscSF,PetscInt,PetscInt,PetscInt* ,PetscCopyMode,PetscSFNode* ,PetscCopyMode)
147
- int PetscSFBcastBegin(PETSc.PetscSF,MPI.MPI_Datatype,const void * , void * ,)
148
- int PetscSFBcastEnd(PETSc.PetscSF,MPI.MPI_Datatype,const void * , void * )
149
- int PetscSFReduceBegin(PETSc.PetscSF,MPI.MPI_Datatype,const void * , void * ,MPI.MPI_Op)
150
- int PetscSFReduceEnd(PETSc.PetscSF,MPI.MPI_Datatype,const void * , void * ,MPI.MPI_Op)
149
+ PetscErrorCode PetscSFGetGraph(PETSc.PetscSF,PetscInt* ,PetscInt* ,PetscInt** ,PetscSFNode** )
150
+ PetscErrorCode PetscSFSetGraph(PETSc.PetscSF,PetscInt,PetscInt,PetscInt* ,PetscCopyMode,PetscSFNode* ,PetscCopyMode)
151
+ PetscErrorCode PetscSFBcastBegin(PETSc.PetscSF,MPI.MPI_Datatype,const void * , void * ,)
152
+ PetscErrorCode PetscSFBcastEnd(PETSc.PetscSF,MPI.MPI_Datatype,const void * , void * )
153
+ PetscErrorCode PetscSFReduceBegin(PETSc.PetscSF,MPI.MPI_Datatype,const void * , void * ,MPI.MPI_Op)
154
+ PetscErrorCode PetscSFReduceEnd(PETSc.PetscSF,MPI.MPI_Datatype,const void * , void * ,MPI.MPI_Op)
151
155
152
- ctypedef int (* PetscPCPatchComputeFunction)(PETSc.PetscPC,
156
+ ctypedef PetscErrorCode (* PetscPCPatchComputeFunction)(PETSc.PetscPC,
153
157
PetscInt,
154
158
PETSc.PetscVec,
155
159
PETSc.PetscVec,
@@ -158,7 +162,7 @@ ctypedef int (*PetscPCPatchComputeFunction)(PETSc.PetscPC,
158
162
const PetscInt* ,
159
163
const PetscInt* ,
160
164
void * )
161
- ctypedef int (* PetscPCPatchComputeOperator)(PETSc.PetscPC,
165
+ ctypedef PetscErrorCode (* PetscPCPatchComputeOperator)(PETSc.PetscPC,
162
166
PetscInt,
163
167
PETSc.PetscVec,
164
168
PETSc.PetscMat,
@@ -168,52 +172,28 @@ ctypedef int (*PetscPCPatchComputeOperator)(PETSc.PetscPC,
168
172
const PetscInt* ,
169
173
void * )
170
174
cdef extern from " petscsnes.h" nogil:
171
- int SNESPatchSetComputeFunction(PETSc.PetscSNES, PetscPCPatchComputeFunction, void * )
172
- int SNESPatchSetComputeOperator(PETSc.PetscSNES, PetscPCPatchComputeOperator, void * )
175
+ PetscErrorCode SNESPatchSetComputeFunction(PETSc.PetscSNES, PetscPCPatchComputeFunction, void * )
176
+ PetscErrorCode SNESPatchSetComputeOperator(PETSc.PetscSNES, PetscPCPatchComputeOperator, void * )
173
177
174
178
cdef extern from " petscpc.h" nogil:
175
- int PCPatchSetComputeFunction(PETSc.PetscPC, PetscPCPatchComputeFunction, void * )
176
- int PCPatchSetComputeFunctionInteriorFacets(PETSc.PetscPC, PetscPCPatchComputeFunction, void * )
177
- int PCPatchSetComputeOperator(PETSc.PetscPC, PetscPCPatchComputeOperator, void * )
178
- int PCPatchSetComputeOperatorInteriorFacets(PETSc.PetscPC, PetscPCPatchComputeOperator, void * )
179
+ PetscErrorCode PCPatchSetComputeFunction(PETSc.PetscPC, PetscPCPatchComputeFunction, void * )
180
+ PetscErrorCode PCPatchSetComputeFunctionInteriorFacets(PETSc.PetscPC, PetscPCPatchComputeFunction, void * )
181
+ PetscErrorCode PCPatchSetComputeOperator(PETSc.PetscPC, PetscPCPatchComputeOperator, void * )
182
+ PetscErrorCode PCPatchSetComputeOperatorInteriorFacets(PETSc.PetscPC, PetscPCPatchComputeOperator, void * )
179
183
180
184
cdef extern from " petscbt.h" nogil:
181
185
ctypedef char * PetscBT
182
- int PetscBTCreate(PetscInt,PetscBT* )
183
- int PetscBTDestroy(PetscBT* )
186
+ PetscErrorCode PetscBTCreate(PetscInt,PetscBT* )
187
+ PetscErrorCode PetscBTDestroy(PetscBT* )
184
188
char PetscBTLookup(PetscBT,PetscInt)
185
- int PetscBTSet(PetscBT,PetscInt)
189
+ PetscErrorCode PetscBTSet(PetscBT,PetscInt)
186
190
187
191
cdef extern from " petscmat.h" nogil:
188
- int MatSetValuesLocal(PETSc.PetscMat, PetscInt, const PetscInt[], PetscInt, const PetscInt[],
192
+ PetscErrorCode MatSetValuesLocal(PETSc.PetscMat, PetscInt, const PetscInt[], PetscInt, const PetscInt[],
189
193
const PetscScalar[], PetscInt)
190
- int MatAssemblyBegin(PETSc.PetscMat, PetscInt)
191
- int MatAssemblyEnd(PETSc.PetscMat, PetscInt)
194
+ PetscErrorCode MatAssemblyBegin(PETSc.PetscMat, PetscInt)
195
+ PetscErrorCode MatAssemblyEnd(PETSc.PetscMat, PetscInt)
192
196
PetscInt MAT_FINAL_ASSEMBLY = 0
193
197
194
198
cdef extern from * nogil:
195
- int PetscObjectTypeCompare(PETSc.PetscObject, char [], PetscBool* )
196
-
197
- # --- Error handling taken from petsc4py (src/PETSc.pyx) -------------
198
-
199
- cdef extern from * :
200
- void PyErr_SetObject(object , object )
201
- void * PyExc_RuntimeError
202
-
203
- cdef object PetscError = < object > PyExc_RuntimeError
204
-
205
- cdef inline int SETERR(int ierr) with gil:
206
- if (< void * > PetscError) != NULL :
207
- PyErr_SetObject(PetscError, < long > ierr)
208
- else :
209
- PyErr_SetObject(< object > PyExc_RuntimeError, < long > ierr)
210
- return ierr
211
-
212
- cdef inline int CHKERR(int ierr) except - 1 nogil:
213
- if ierr == 0 :
214
- return 0 # no error
215
- else :
216
- SETERR(ierr)
217
- return - 1
218
-
219
- # --------------------------------------------------------------------
199
+ PetscErrorCode PetscObjectTypeCompare(PETSc.PetscObject, char [], PetscBool* )
0 commit comments