Release 3.19.4

This commit is contained in:
Antonio Trande 2023-08-10 21:45:18 +02:00
parent d935acc476
commit 7ca294be74
8 changed files with 465759 additions and 14 deletions

2
.gitignore vendored
View File

@ -60,3 +60,5 @@
/petsc4py-3.17.4.tar.gz
/petsc-with-docs-3.18.5.tar.gz
/petsc4py-3.18.5.tar.gz
/petsc-with-docs-3.19.4.tar.gz
/petsc4py-3.19.4.tar.gz

View File

@ -10,8 +10,8 @@
+ self.liblist = [['libmetis64.a'],['libmetis64.a','libexecinfo.a']]
self.hastests = 1
self.useddirectly = 0
return
@@ -47,7 +47,7 @@
self.downloadonWindows = 1
@@ -50,7 +50,7 @@
config.package.Package.configureLibrary(self)
oldFlags = self.compilers.CPPFLAGS
self.compilers.CPPFLAGS += ' '+self.headers.toString(self.include)

View File

@ -1,11 +1,11 @@
--- a/config/BuildSystem/config/packages/MUMPS.orig.py 2020-03-30 05:33:12.000000000 +0200
+++ b/config/BuildSystem/config/packages/MUMPS.py 2020-04-03 17:01:49.237255499 +0200
@@ -55,7 +55,7 @@
@@ -54,7 +54,7 @@
if self.scalartypes.scalartype == 'real': l = 'd'
else: l = 'z'
self.functions = [l+'mumps_c']
- self.includes = [l+'mumps_c.h']
+ self.includes = ['MUMPS/dmumps_c.h']
liblist_common = [['libmumps_common.a','libpord.a','libpthread.a'],
['libmumps_common.a','libpord.a'],
['libmumps_common.a','libpord.a','libmpiseq.a'],
['libmumps_common.a','libpord.a','libpthread.a','libmpiseq.a']]

View File

@ -0,0 +1,448 @@
/* Generated by Cython 0.29.36 */
#ifndef __PYX_HAVE_API__petsc4py__PETSc
#define __PYX_HAVE_API__petsc4py__PETSc
#ifdef __MINGW64__
#define MS_WIN64
#endif
#include "Python.h"
#include "PETSc.h"
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Comm = 0;
#define PyPetscComm_Type (*__pyx_ptype_8petsc4py_5PETSc_Comm)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Object = 0;
#define PyPetscObject_Type (*__pyx_ptype_8petsc4py_5PETSc_Object)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Viewer = 0;
#define PyPetscViewer_Type (*__pyx_ptype_8petsc4py_5PETSc_Viewer)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Random = 0;
#define PyPetscRandom_Type (*__pyx_ptype_8petsc4py_5PETSc_Random)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Device = 0;
#define PyPetscDevice_Type (*__pyx_ptype_8petsc4py_5PETSc_Device)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DeviceContext = 0;
#define PyPetscDeviceContext_Type (*__pyx_ptype_8petsc4py_5PETSc_DeviceContext)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_IS = 0;
#define PyPetscIS_Type (*__pyx_ptype_8petsc4py_5PETSc_IS)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_LGMap = 0;
#define PyPetscLGMap_Type (*__pyx_ptype_8petsc4py_5PETSc_LGMap)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_SF = 0;
#define PyPetscSF_Type (*__pyx_ptype_8petsc4py_5PETSc_SF)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Vec = 0;
#define PyPetscVec_Type (*__pyx_ptype_8petsc4py_5PETSc_Vec)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Space = 0;
#define PyPetscSpace_Type (*__pyx_ptype_8petsc4py_5PETSc_Space)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DualSpace = 0;
#define PyPetscDualSpace_Type (*__pyx_ptype_8petsc4py_5PETSc_DualSpace)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_FE = 0;
#define PyPetscFE_Type (*__pyx_ptype_8petsc4py_5PETSc_FE)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Quad = 0;
#define PyPetscQuad_Type (*__pyx_ptype_8petsc4py_5PETSc_Quad)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Scatter = 0;
#define PyPetscScatter_Type (*__pyx_ptype_8petsc4py_5PETSc_Scatter)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Section = 0;
#define PyPetscSection_Type (*__pyx_ptype_8petsc4py_5PETSc_Section)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Mat = 0;
#define PyPetscMat_Type (*__pyx_ptype_8petsc4py_5PETSc_Mat)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_MatPartitioning = 0;
#define PyPetscMatPartitioning_Type (*__pyx_ptype_8petsc4py_5PETSc_MatPartitioning)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_NullSpace = 0;
#define PyPetscNullSpace_Type (*__pyx_ptype_8petsc4py_5PETSc_NullSpace)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_PC = 0;
#define PyPetscPC_Type (*__pyx_ptype_8petsc4py_5PETSc_PC)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_KSP = 0;
#define PyPetscKSP_Type (*__pyx_ptype_8petsc4py_5PETSc_KSP)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_SNES = 0;
#define PyPetscSNES_Type (*__pyx_ptype_8petsc4py_5PETSc_SNES)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_TS = 0;
#define PyPetscTS_Type (*__pyx_ptype_8petsc4py_5PETSc_TS)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_TAO = 0;
#define PyPetscTAO_Type (*__pyx_ptype_8petsc4py_5PETSc_TAO)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_AO = 0;
#define PyPetscAO_Type (*__pyx_ptype_8petsc4py_5PETSc_AO)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DM = 0;
#define PyPetscDM_Type (*__pyx_ptype_8petsc4py_5PETSc_DM)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMPlexTransform = 0;
#define PyPetscDMPlexTransform_Type (*__pyx_ptype_8petsc4py_5PETSc_DMPlexTransform)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DS = 0;
#define PyPetscDS_Type (*__pyx_ptype_8petsc4py_5PETSc_DS)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Partitioner = 0;
#define PyPetscPartitioner_Type (*__pyx_ptype_8petsc4py_5PETSc_Partitioner)
static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMLabel = 0;
#define PyPetscDMLabel_Type (*__pyx_ptype_8petsc4py_5PETSc_DMLabel)
static int (*__pyx_api_f_8petsc4py_5PETSc_PyPetscError_Set)(PetscErrorCode) = 0;
#define PyPetscError_Set __pyx_api_f_8petsc4py_5PETSc_PyPetscError_Set
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_New)(MPI_Comm) = 0;
#define PyPetscComm_New __pyx_api_f_8petsc4py_5PETSc_PyPetscComm_New
static MPI_Comm (*__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_Get)(PyObject *) = 0;
#define PyPetscComm_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscComm_Get
static MPI_Comm *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_GetPtr)(PyObject *) = 0;
#define PyPetscComm_GetPtr __pyx_api_f_8petsc4py_5PETSc_PyPetscComm_GetPtr
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_New)(PetscObject) = 0;
#define PyPetscObject_New __pyx_api_f_8petsc4py_5PETSc_PyPetscObject_New
static PetscObject (*__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_Get)(PyObject *) = 0;
#define PyPetscObject_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscObject_Get
static PetscObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_GetPtr)(PyObject *) = 0;
#define PyPetscObject_GetPtr __pyx_api_f_8petsc4py_5PETSc_PyPetscObject_GetPtr
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_New)(PetscViewer) = 0;
#define PyPetscViewer_New __pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_New
static PetscViewer (*__pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_Get)(PyObject *) = 0;
#define PyPetscViewer_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_New)(PetscRandom) = 0;
#define PyPetscRandom_New __pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_New
static PetscRandom (*__pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_Get)(PyObject *) = 0;
#define PyPetscRandom_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_Get
static struct PyPetscDeviceObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_New)(PetscDevice) = 0;
#define PyPetscDevice_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_New
static PetscDevice (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_Get)(PyObject *) = 0;
#define PyPetscDevice_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_Get
static struct PyPetscDeviceContextObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_New)(PetscDeviceContext) = 0;
#define PyPetscDeviceContext_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_New
static PetscDeviceContext (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get)(PyObject *) = 0;
#define PyPetscDeviceContext_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscIS_New)(IS) = 0;
#define PyPetscIS_New __pyx_api_f_8petsc4py_5PETSc_PyPetscIS_New
static IS (*__pyx_api_f_8petsc4py_5PETSc_PyPetscIS_Get)(PyObject *) = 0;
#define PyPetscIS_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscIS_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_New)(ISLocalToGlobalMapping) = 0;
#define PyPetscLGMap_New __pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_New
static ISLocalToGlobalMapping (*__pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_Get)(PyObject *) = 0;
#define PyPetscLGMap_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscSF_New)(PetscSF) = 0;
#define PyPetscSF_New __pyx_api_f_8petsc4py_5PETSc_PyPetscSF_New
static PetscSF (*__pyx_api_f_8petsc4py_5PETSc_PyPetscSF_Get)(PyObject *) = 0;
#define PyPetscSF_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscSF_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscVec_New)(Vec) = 0;
#define PyPetscVec_New __pyx_api_f_8petsc4py_5PETSc_PyPetscVec_New
static Vec (*__pyx_api_f_8petsc4py_5PETSc_PyPetscVec_Get)(PyObject *) = 0;
#define PyPetscVec_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscVec_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_New)(VecScatter) = 0;
#define PyPetscScatter_New __pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_New
static VecScatter (*__pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_Get)(PyObject *) = 0;
#define PyPetscScatter_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscSection_New)(PetscSection) = 0;
#define PyPetscSection_New __pyx_api_f_8petsc4py_5PETSc_PyPetscSection_New
static PetscSection (*__pyx_api_f_8petsc4py_5PETSc_PyPetscSection_Get)(PyObject *) = 0;
#define PyPetscSection_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscSection_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscMat_New)(Mat) = 0;
#define PyPetscMat_New __pyx_api_f_8petsc4py_5PETSc_PyPetscMat_New
static Mat (*__pyx_api_f_8petsc4py_5PETSc_PyPetscMat_Get)(PyObject *) = 0;
#define PyPetscMat_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscMat_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_New)(MatPartitioning) = 0;
#define PyPetscMatPartitioning_New __pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_New
static MatPartitioning (*__pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_Get)(PyObject *) = 0;
#define PyPetscMatPartitioning_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscPC_New)(PC) = 0;
#define PyPetscPC_New __pyx_api_f_8petsc4py_5PETSc_PyPetscPC_New
static PC (*__pyx_api_f_8petsc4py_5PETSc_PyPetscPC_Get)(PyObject *) = 0;
#define PyPetscPC_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscPC_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_New)(KSP) = 0;
#define PyPetscKSP_New __pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_New
static KSP (*__pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_Get)(PyObject *) = 0;
#define PyPetscKSP_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_New)(SNES) = 0;
#define PyPetscSNES_New __pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_New
static SNES (*__pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_Get)(PyObject *) = 0;
#define PyPetscSNES_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscTS_New)(TS) = 0;
#define PyPetscTS_New __pyx_api_f_8petsc4py_5PETSc_PyPetscTS_New
static TS (*__pyx_api_f_8petsc4py_5PETSc_PyPetscTS_Get)(PyObject *) = 0;
#define PyPetscTS_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscTS_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_New)(Tao) = 0;
#define PyPetscTAO_New __pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_New
static Tao (*__pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_Get)(PyObject *) = 0;
#define PyPetscTAO_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscAO_New)(AO) = 0;
#define PyPetscAO_New __pyx_api_f_8petsc4py_5PETSc_PyPetscAO_New
static AO (*__pyx_api_f_8petsc4py_5PETSc_PyPetscAO_Get)(PyObject *) = 0;
#define PyPetscAO_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscAO_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDM_New)(DM) = 0;
#define PyPetscDM_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDM_New
static DM (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDM_Get)(PyObject *) = 0;
#define PyPetscDM_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDM_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDS_New)(PetscDS) = 0;
#define PyPetscDS_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDS_New
static PetscDS (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDS_Get)(PyObject *) = 0;
#define PyPetscDS_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDS_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_New)(PetscPartitioner) = 0;
#define PyPetscPartitioner_New __pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_New
static PetscPartitioner (*__pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_Get)(PyObject *) = 0;
#define PyPetscPartitioner_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscFE_New)(PetscFE) = 0;
#define PyPetscFE_New __pyx_api_f_8petsc4py_5PETSc_PyPetscFE_New
static PetscFE (*__pyx_api_f_8petsc4py_5PETSc_PyPetscFE_Get)(PyObject *) = 0;
#define PyPetscFE_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscFE_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_New)(PetscQuadrature) = 0;
#define PyPetscQuad_New __pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_New
static PetscQuadrature (*__pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_Get)(PyObject *) = 0;
#define PyPetscQuad_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_New)(DMLabel) = 0;
#define PyPetscDMLabel_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_New
static DMLabel (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_Get)(PyObject *) = 0;
#define PyPetscDMLabel_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_New)(PetscSpace) = 0;
#define PyPetscSpace_New __pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_New
static PetscSpace (*__pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_Get)(PyObject *) = 0;
#define PyPetscSpace_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_Get
static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_New)(PetscDualSpace) = 0;
#define PyPetscDualSpace_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_New
static PetscDualSpace (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_Get)(PyObject *) = 0;
#define PyPetscDualSpace_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_Get
#if !defined(__Pyx_PyIdentifier_FromString)
#if PY_MAJOR_VERSION < 3
#define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
#else
#define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
#endif
#endif
#ifndef __PYX_HAVE_RT_ImportFunction_0_29_36
#define __PYX_HAVE_RT_ImportFunction_0_29_36
static int __Pyx_ImportFunction_0_29_36(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
PyObject *d = 0;
PyObject *cobj = 0;
union {
void (*fp)(void);
void *p;
} tmp;
d = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
if (!d)
goto bad;
cobj = PyDict_GetItemString(d, funcname);
if (!cobj) {
PyErr_Format(PyExc_ImportError,
"%.200s does not export expected C function %.200s",
PyModule_GetName(module), funcname);
goto bad;
}
#if PY_VERSION_HEX >= 0x02070000
if (!PyCapsule_IsValid(cobj, sig)) {
PyErr_Format(PyExc_TypeError,
"C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj));
goto bad;
}
tmp.p = PyCapsule_GetPointer(cobj, sig);
#else
{const char *desc, *s1, *s2;
desc = (const char *)PyCObject_GetDesc(cobj);
if (!desc)
goto bad;
s1 = desc; s2 = sig;
while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
if (*s1 != *s2) {
PyErr_Format(PyExc_TypeError,
"C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
PyModule_GetName(module), funcname, sig, desc);
goto bad;
}
tmp.p = PyCObject_AsVoidPtr(cobj);}
#endif
*f = tmp.fp;
if (!(*f))
goto bad;
Py_DECREF(d);
return 0;
bad:
Py_XDECREF(d);
return -1;
}
#endif
#ifndef __PYX_HAVE_RT_ImportType_proto_0_29_36
#define __PYX_HAVE_RT_ImportType_proto_0_29_36
#if __STDC_VERSION__ >= 201112L
#include <stdalign.h>
#endif
#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
#define __PYX_GET_STRUCT_ALIGNMENT_0_29_36(s) alignof(s)
#else
#define __PYX_GET_STRUCT_ALIGNMENT_0_29_36(s) sizeof(void*)
#endif
enum __Pyx_ImportType_CheckSize_0_29_36 {
__Pyx_ImportType_CheckSize_Error_0_29_36 = 0,
__Pyx_ImportType_CheckSize_Warn_0_29_36 = 1,
__Pyx_ImportType_CheckSize_Ignore_0_29_36 = 2
};
static PyTypeObject *__Pyx_ImportType_0_29_36(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_0_29_36 check_size);
#endif
#ifndef __PYX_HAVE_RT_ImportType_0_29_36
#define __PYX_HAVE_RT_ImportType_0_29_36
static PyTypeObject *__Pyx_ImportType_0_29_36(PyObject *module, const char *module_name, const char *class_name,
size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_0_29_36 check_size)
{
PyObject *result = 0;
char warning[200];
Py_ssize_t basicsize;
Py_ssize_t itemsize;
#ifdef Py_LIMITED_API
PyObject *py_basicsize;
PyObject *py_itemsize;
#endif
result = PyObject_GetAttrString(module, class_name);
if (!result)
goto bad;
if (!PyType_Check(result)) {
PyErr_Format(PyExc_TypeError,
"%.200s.%.200s is not a type object",
module_name, class_name);
goto bad;
}
#ifndef Py_LIMITED_API
basicsize = ((PyTypeObject *)result)->tp_basicsize;
itemsize = ((PyTypeObject *)result)->tp_itemsize;
#else
py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
if (!py_basicsize)
goto bad;
basicsize = PyLong_AsSsize_t(py_basicsize);
Py_DECREF(py_basicsize);
py_basicsize = 0;
if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
goto bad;
py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
if (!py_itemsize)
goto bad;
itemsize = PyLong_AsSsize_t(py_itemsize);
Py_DECREF(py_itemsize);
py_itemsize = 0;
if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
goto bad;
#endif
if (itemsize) {
if (size % alignment) {
alignment = size % alignment;
}
if (itemsize < (Py_ssize_t)alignment)
itemsize = (Py_ssize_t)alignment;
}
if ((size_t)(basicsize + itemsize) < size) {
PyErr_Format(PyExc_ValueError,
"%.200s.%.200s size changed, may indicate binary incompatibility. "
"Expected %zd from C header, got %zd from PyObject",
module_name, class_name, size, basicsize);
goto bad;
}
if (check_size == __Pyx_ImportType_CheckSize_Error_0_29_36 && (size_t)basicsize != size) {
PyErr_Format(PyExc_ValueError,
"%.200s.%.200s size changed, may indicate binary incompatibility. "
"Expected %zd from C header, got %zd from PyObject",
module_name, class_name, size, basicsize);
goto bad;
}
else if (check_size == __Pyx_ImportType_CheckSize_Warn_0_29_36 && (size_t)basicsize > size) {
PyOS_snprintf(warning, sizeof(warning),
"%s.%s size changed, may indicate binary incompatibility. "
"Expected %zd from C header, got %zd from PyObject",
module_name, class_name, size, basicsize);
if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
}
return (PyTypeObject *)result;
bad:
Py_XDECREF(result);
return NULL;
}
#endif
static int import_petsc4py__PETSc(void) {
PyObject *module = 0;
module = PyImport_ImportModule("petsc4py.PETSc");
if (!module) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscError_Set", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscError_Set, "int (PetscErrorCode)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscComm_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_New, "PyObject *(MPI_Comm)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscComm_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_Get, "MPI_Comm (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscComm_GetPtr", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_GetPtr, "MPI_Comm *(PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscObject_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_New, "PyObject *(PetscObject)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscObject_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_Get, "PetscObject (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscObject_GetPtr", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_GetPtr, "PetscObject *(PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscViewer_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_New, "PyObject *(PetscViewer)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscViewer_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_Get, "PetscViewer (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscRandom_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_New, "PyObject *(PetscRandom)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscRandom_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_Get, "PetscRandom (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDevice_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_New, "struct PyPetscDeviceObject *(PetscDevice)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDevice_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_Get, "PetscDevice (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDeviceContext_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_New, "struct PyPetscDeviceContextObject *(PetscDeviceContext)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDeviceContext_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get, "PetscDeviceContext (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscIS_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscIS_New, "PyObject *(IS)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscIS_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscIS_Get, "IS (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscLGMap_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_New, "PyObject *(ISLocalToGlobalMapping)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscLGMap_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_Get, "ISLocalToGlobalMapping (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSF_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSF_New, "PyObject *(PetscSF)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSF_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSF_Get, "PetscSF (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscVec_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscVec_New, "PyObject *(Vec)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscVec_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscVec_Get, "Vec (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscScatter_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_New, "PyObject *(VecScatter)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscScatter_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_Get, "VecScatter (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSection_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSection_New, "PyObject *(PetscSection)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSection_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSection_Get, "PetscSection (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscMat_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscMat_New, "PyObject *(Mat)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscMat_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscMat_Get, "Mat (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscMatPartitioning_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_New, "PyObject *(MatPartitioning)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscMatPartitioning_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_Get, "MatPartitioning (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscPC_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscPC_New, "PyObject *(PC)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscPC_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscPC_Get, "PC (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscKSP_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_New, "PyObject *(KSP)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscKSP_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_Get, "KSP (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSNES_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_New, "PyObject *(SNES)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSNES_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_Get, "SNES (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscTS_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscTS_New, "PyObject *(TS)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscTS_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscTS_Get, "TS (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscTAO_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_New, "PyObject *(Tao)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscTAO_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_Get, "Tao (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscAO_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscAO_New, "PyObject *(AO)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscAO_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscAO_Get, "AO (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDM_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDM_New, "PyObject *(DM)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDM_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDM_Get, "DM (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDS_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDS_New, "PyObject *(PetscDS)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDS_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDS_Get, "PetscDS (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscPartitioner_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_New, "PyObject *(PetscPartitioner)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscPartitioner_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_Get, "PetscPartitioner (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscFE_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscFE_New, "PyObject *(PetscFE)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscFE_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscFE_Get, "PetscFE (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscQuad_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_New, "PyObject *(PetscQuadrature)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscQuad_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_Get, "PetscQuadrature (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDMLabel_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_New, "PyObject *(DMLabel)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDMLabel_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_Get, "DMLabel (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSpace_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_New, "PyObject *(PetscSpace)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSpace_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_Get, "PetscSpace (PyObject *)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDualSpace_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_New, "PyObject *(PetscDualSpace)") < 0) goto bad;
if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDualSpace_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_Get, "PetscDualSpace (PyObject *)") < 0) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Comm = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Comm", sizeof(struct PyPetscCommObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscCommObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Comm) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Object = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Object", sizeof(struct PyPetscObjectObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscObjectObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Object) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Viewer = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Viewer", sizeof(struct PyPetscViewerObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscViewerObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Viewer) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Random = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Random", sizeof(struct PyPetscRandomObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscRandomObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Random) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Device = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Device", sizeof(struct PyPetscDeviceObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDeviceObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Device) goto bad;
__pyx_ptype_8petsc4py_5PETSc_DeviceContext = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DeviceContext", sizeof(struct PyPetscDeviceContextObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDeviceContextObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DeviceContext) goto bad;
__pyx_ptype_8petsc4py_5PETSc_IS = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "IS", sizeof(struct PyPetscISObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscISObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_IS) goto bad;
__pyx_ptype_8petsc4py_5PETSc_LGMap = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "LGMap", sizeof(struct PyPetscLGMapObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscLGMapObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_LGMap) goto bad;
__pyx_ptype_8petsc4py_5PETSc_SF = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "SF", sizeof(struct PyPetscSFObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscSFObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_SF) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Vec = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Vec", sizeof(struct PyPetscVecObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscVecObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Vec) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Space = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Space", sizeof(struct PyPetscSpaceObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscSpaceObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Space) goto bad;
__pyx_ptype_8petsc4py_5PETSc_DualSpace = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DualSpace", sizeof(struct PyPetscDualSpaceObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDualSpaceObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DualSpace) goto bad;
__pyx_ptype_8petsc4py_5PETSc_FE = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "FE", sizeof(struct PyPetscFEObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscFEObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_FE) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Quad = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Quad", sizeof(struct PyPetscQuadObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscQuadObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Quad) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Scatter = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Scatter", sizeof(struct PyPetscScatterObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscScatterObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Scatter) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Section = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Section", sizeof(struct PyPetscSectionObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscSectionObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Section) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Mat = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Mat", sizeof(struct PyPetscMatObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscMatObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Mat) goto bad;
__pyx_ptype_8petsc4py_5PETSc_MatPartitioning = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "MatPartitioning", sizeof(struct PyPetscMatPartitioningObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscMatPartitioningObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_MatPartitioning) goto bad;
__pyx_ptype_8petsc4py_5PETSc_NullSpace = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "NullSpace", sizeof(struct PyPetscNullSpaceObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscNullSpaceObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_NullSpace) goto bad;
__pyx_ptype_8petsc4py_5PETSc_PC = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "PC", sizeof(struct PyPetscPCObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscPCObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_PC) goto bad;
__pyx_ptype_8petsc4py_5PETSc_KSP = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "KSP", sizeof(struct PyPetscKSPObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscKSPObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_KSP) goto bad;
__pyx_ptype_8petsc4py_5PETSc_SNES = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "SNES", sizeof(struct PyPetscSNESObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscSNESObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_SNES) goto bad;
__pyx_ptype_8petsc4py_5PETSc_TS = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "TS", sizeof(struct PyPetscTSObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscTSObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_TS) goto bad;
__pyx_ptype_8petsc4py_5PETSc_TAO = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "TAO", sizeof(struct PyPetscTAOObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscTAOObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_TAO) goto bad;
__pyx_ptype_8petsc4py_5PETSc_AO = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "AO", sizeof(struct PyPetscAOObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscAOObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_AO) goto bad;
__pyx_ptype_8petsc4py_5PETSc_DM = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DM", sizeof(struct PyPetscDMObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDMObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DM) goto bad;
__pyx_ptype_8petsc4py_5PETSc_DMPlexTransform = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DMPlexTransform", sizeof(struct PyPetscDMPlexTransformObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDMPlexTransformObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DMPlexTransform) goto bad;
__pyx_ptype_8petsc4py_5PETSc_DS = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DS", sizeof(struct PyPetscDSObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDSObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DS) goto bad;
__pyx_ptype_8petsc4py_5PETSc_Partitioner = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Partitioner", sizeof(struct PyPetscPartitionerObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscPartitionerObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Partitioner) goto bad;
__pyx_ptype_8petsc4py_5PETSc_DMLabel = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DMLabel", sizeof(struct PyPetscDMLabelObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDMLabelObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DMLabel) goto bad;
Py_DECREF(module); module = 0;
return 0;
bad:
Py_XDECREF(module);
return -1;
}
#endif /* !__PYX_HAVE_API__petsc4py__PETSc */

464763
petsc-PETSc_cython0.29.36.c Normal file

File diff suppressed because it is too large Load Diff

505
petsc-PETSc_cython0.29.36.h Normal file
View File

@ -0,0 +1,505 @@
/* Generated by Cython 0.29.36 */
#ifndef __PYX_HAVE__petsc4py__PETSc
#define __PYX_HAVE__petsc4py__PETSc
#include "Python.h"
struct PyPetscCommObject;
struct PyPetscObjectObject;
struct PyPetscViewerObject;
struct PyPetscRandomObject;
struct PyPetscDeviceObject;
struct PyPetscDeviceContextObject;
struct PyPetscISObject;
struct PyPetscLGMapObject;
struct PyPetscSFObject;
struct PyPetscVecObject;
struct PyPetscSpaceObject;
struct PyPetscDualSpaceObject;
struct PyPetscFEObject;
struct PyPetscQuadObject;
struct PyPetscScatterObject;
struct PyPetscSectionObject;
struct PyPetscMatObject;
struct PyPetscMatPartitioningObject;
struct PyPetscNullSpaceObject;
struct PyPetscPCObject;
struct PyPetscKSPObject;
struct PyPetscSNESObject;
struct PyPetscTSObject;
struct PyPetscTAOObject;
struct PyPetscAOObject;
struct PyPetscDMObject;
struct PyPetscDMPlexTransformObject;
struct PyPetscDSObject;
struct PyPetscPartitionerObject;
struct PyPetscDMLabelObject;
/* "petsc4py/PETSc.pxd":112
* # --------------------------------------------------------------------
*
* ctypedef public api class Comm [ # <<<<<<<<<<<<<<
* type PyPetscComm_Type,
* object PyPetscCommObject,
*/
struct PyPetscCommObject {
PyObject_HEAD
MPI_Comm comm;
int isdup;
PyObject *base;
};
typedef struct PyPetscCommObject PyPetscCommObject;
/* "petsc4py/PETSc.pxd":120
* cdef object base
*
* ctypedef public api class Object [ # <<<<<<<<<<<<<<
* type PyPetscObject_Type,
* object PyPetscObjectObject,
*/
struct PyPetscObjectObject {
PyObject_HEAD
struct __pyx_vtabstruct_8petsc4py_5PETSc_Object *__pyx_vtab;
PyObject *__weakref__;
PyObject *__pyx___dummy__;
PetscObject oval;
PetscObject *obj;
};
typedef struct PyPetscObjectObject PyPetscObjectObject;
/* "petsc4py/PETSc.pxd":132
* cdef object get_dict(self)
*
* ctypedef public api class Viewer(Object) [ # <<<<<<<<<<<<<<
* type PyPetscViewer_Type,
* object PyPetscViewerObject,
*/
struct PyPetscViewerObject {
struct PyPetscObjectObject __pyx_base;
PetscViewer vwr;
};
typedef struct PyPetscViewerObject PyPetscViewerObject;
/* "petsc4py/PETSc.pxd":138
* cdef PetscViewer vwr
*
* ctypedef public api class Random(Object) [ # <<<<<<<<<<<<<<
* type PyPetscRandom_Type,
* object PyPetscRandomObject,
*/
struct PyPetscRandomObject {
struct PyPetscObjectObject __pyx_base;
PetscRandom rnd;
};
typedef struct PyPetscRandomObject PyPetscRandomObject;
/* "petsc4py/PETSc.pxd":144
* cdef PetscRandom rnd
*
* ctypedef public api class Device [ # <<<<<<<<<<<<<<
* type PyPetscDevice_Type,
* object PyPetscDeviceObject,
*/
struct PyPetscDeviceObject {
PyObject_HEAD
PetscDevice device;
PyObject *__weakref__;
};
typedef struct PyPetscDeviceObject PyPetscDeviceObject;
/* "petsc4py/PETSc.pxd":151
* cdef object __weakref__
*
* ctypedef public api class DeviceContext(Object) [ # <<<<<<<<<<<<<<
* type PyPetscDeviceContext_Type,
* object PyPetscDeviceContextObject,
*/
struct PyPetscDeviceContextObject {
struct PyPetscObjectObject __pyx_base;
PetscDeviceContext dctx;
};
typedef struct PyPetscDeviceContextObject PyPetscDeviceContextObject;
/* "petsc4py/PETSc.pxd":157
* cdef PetscDeviceContext dctx
*
* ctypedef public api class IS(Object) [ # <<<<<<<<<<<<<<
* type PyPetscIS_Type,
* object PyPetscISObject,
*/
struct PyPetscISObject {
struct PyPetscObjectObject __pyx_base;
IS iset;
};
typedef struct PyPetscISObject PyPetscISObject;
/* "petsc4py/PETSc.pxd":163
* cdef PetscIS iset
*
* ctypedef public api class LGMap(Object) [ # <<<<<<<<<<<<<<
* type PyPetscLGMap_Type,
* object PyPetscLGMapObject,
*/
struct PyPetscLGMapObject {
struct PyPetscObjectObject __pyx_base;
ISLocalToGlobalMapping lgm;
};
typedef struct PyPetscLGMapObject PyPetscLGMapObject;
/* "petsc4py/PETSc.pxd":169
* cdef PetscLGMap lgm
*
* ctypedef public api class SF(Object) [ # <<<<<<<<<<<<<<
* type PyPetscSF_Type,
* object PyPetscSFObject,
*/
struct PyPetscSFObject {
struct PyPetscObjectObject __pyx_base;
PetscSF sf;
};
typedef struct PyPetscSFObject PyPetscSFObject;
/* "petsc4py/PETSc.pxd":175
* cdef PetscSF sf
*
* ctypedef public api class Vec(Object) [ # <<<<<<<<<<<<<<
* type PyPetscVec_Type,
* object PyPetscVecObject,
*/
struct PyPetscVecObject {
struct PyPetscObjectObject __pyx_base;
Vec vec;
};
typedef struct PyPetscVecObject PyPetscVecObject;
/* "petsc4py/PETSc.pxd":181
* cdef PetscVec vec
*
* ctypedef public api class Space(Object) [ # <<<<<<<<<<<<<<
* type PyPetscSpace_Type,
* object PyPetscSpaceObject,
*/
struct PyPetscSpaceObject {
struct PyPetscObjectObject __pyx_base;
PetscSpace space;
};
typedef struct PyPetscSpaceObject PyPetscSpaceObject;
/* "petsc4py/PETSc.pxd":187
* cdef PetscSpace space
*
* ctypedef public api class DualSpace(Object) [ # <<<<<<<<<<<<<<
* type PyPetscDualSpace_Type,
* object PyPetscDualSpaceObject,
*/
struct PyPetscDualSpaceObject {
struct PyPetscObjectObject __pyx_base;
PetscDualSpace dualspace;
};
typedef struct PyPetscDualSpaceObject PyPetscDualSpaceObject;
/* "petsc4py/PETSc.pxd":193
* cdef PetscDualSpace dualspace
*
* ctypedef public api class FE(Object) [ # <<<<<<<<<<<<<<
* type PyPetscFE_Type,
* object PyPetscFEObject,
*/
struct PyPetscFEObject {
struct PyPetscObjectObject __pyx_base;
PetscFE fe;
};
typedef struct PyPetscFEObject PyPetscFEObject;
/* "petsc4py/PETSc.pxd":199
* cdef PetscFE fe
*
* ctypedef public api class Quad(Object) [ # <<<<<<<<<<<<<<
* type PyPetscQuad_Type,
* object PyPetscQuadObject,
*/
struct PyPetscQuadObject {
struct PyPetscObjectObject __pyx_base;
PetscQuadrature quad;
};
typedef struct PyPetscQuadObject PyPetscQuadObject;
/* "petsc4py/PETSc.pxd":205
* cdef PetscQuadrature quad
*
* ctypedef public api class Scatter(Object) [ # <<<<<<<<<<<<<<
* type PyPetscScatter_Type,
* object PyPetscScatterObject,
*/
struct PyPetscScatterObject {
struct PyPetscObjectObject __pyx_base;
VecScatter sct;
};
typedef struct PyPetscScatterObject PyPetscScatterObject;
/* "petsc4py/PETSc.pxd":211
* cdef PetscScatter sct
*
* ctypedef public api class Section(Object) [ # <<<<<<<<<<<<<<
* type PyPetscSection_Type,
* object PyPetscSectionObject,
*/
struct PyPetscSectionObject {
struct PyPetscObjectObject __pyx_base;
PetscSection sec;
};
typedef struct PyPetscSectionObject PyPetscSectionObject;
/* "petsc4py/PETSc.pxd":217
* cdef PetscSection sec
*
* ctypedef public api class Mat(Object) [ # <<<<<<<<<<<<<<
* type PyPetscMat_Type,
* object PyPetscMatObject,
*/
struct PyPetscMatObject {
struct PyPetscObjectObject __pyx_base;
Mat mat;
};
typedef struct PyPetscMatObject PyPetscMatObject;
/* "petsc4py/PETSc.pxd":223
* cdef PetscMat mat
*
* ctypedef public api class MatPartitioning(Object) [ # <<<<<<<<<<<<<<
* type PyPetscMatPartitioning_Type,
* object PyPetscMatPartitioningObject,
*/
struct PyPetscMatPartitioningObject {
struct PyPetscObjectObject __pyx_base;
MatPartitioning part;
};
typedef struct PyPetscMatPartitioningObject PyPetscMatPartitioningObject;
/* "petsc4py/PETSc.pxd":229
* cdef PetscMatPartitioning part
*
* ctypedef public api class NullSpace(Object) [ # <<<<<<<<<<<<<<
* type PyPetscNullSpace_Type,
* object PyPetscNullSpaceObject,
*/
struct PyPetscNullSpaceObject {
struct PyPetscObjectObject __pyx_base;
MatNullSpace nsp;
};
typedef struct PyPetscNullSpaceObject PyPetscNullSpaceObject;
/* "petsc4py/PETSc.pxd":235
* cdef PetscNullSpace nsp
*
* ctypedef public api class PC(Object) [ # <<<<<<<<<<<<<<
* type PyPetscPC_Type,
* object PyPetscPCObject,
*/
struct PyPetscPCObject {
struct PyPetscObjectObject __pyx_base;
PC pc;
};
typedef struct PyPetscPCObject PyPetscPCObject;
/* "petsc4py/PETSc.pxd":241
* cdef PetscPC pc
*
* ctypedef public api class KSP(Object) [ # <<<<<<<<<<<<<<
* type PyPetscKSP_Type,
* object PyPetscKSPObject,
*/
struct PyPetscKSPObject {
struct PyPetscObjectObject __pyx_base;
KSP ksp;
};
typedef struct PyPetscKSPObject PyPetscKSPObject;
/* "petsc4py/PETSc.pxd":247
* cdef PetscKSP ksp
*
* ctypedef public api class SNES(Object) [ # <<<<<<<<<<<<<<
* type PyPetscSNES_Type,
* object PyPetscSNESObject,
*/
struct PyPetscSNESObject {
struct PyPetscObjectObject __pyx_base;
SNES snes;
};
typedef struct PyPetscSNESObject PyPetscSNESObject;
/* "petsc4py/PETSc.pxd":253
* cdef PetscSNES snes
*
* ctypedef public api class TS(Object) [ # <<<<<<<<<<<<<<
* type PyPetscTS_Type,
* object PyPetscTSObject,
*/
struct PyPetscTSObject {
struct PyPetscObjectObject __pyx_base;
TS ts;
};
typedef struct PyPetscTSObject PyPetscTSObject;
/* "petsc4py/PETSc.pxd":259
* cdef PetscTS ts
*
* ctypedef public api class TAO(Object) [ # <<<<<<<<<<<<<<
* type PyPetscTAO_Type,
* object PyPetscTAOObject,
*/
struct PyPetscTAOObject {
struct PyPetscObjectObject __pyx_base;
Tao tao;
};
typedef struct PyPetscTAOObject PyPetscTAOObject;
/* "petsc4py/PETSc.pxd":265
* cdef PetscTAO tao
*
* ctypedef public api class AO(Object) [ # <<<<<<<<<<<<<<
* type PyPetscAO_Type,
* object PyPetscAOObject,
*/
struct PyPetscAOObject {
struct PyPetscObjectObject __pyx_base;
AO ao;
};
typedef struct PyPetscAOObject PyPetscAOObject;
/* "petsc4py/PETSc.pxd":271
* cdef PetscAO ao
*
* ctypedef public api class DM(Object) [ # <<<<<<<<<<<<<<
* type PyPetscDM_Type,
* object PyPetscDMObject,
*/
struct PyPetscDMObject {
struct PyPetscObjectObject __pyx_base;
DM dm;
};
typedef struct PyPetscDMObject PyPetscDMObject;
/* "petsc4py/PETSc.pxd":277
* cdef PetscDM dm
*
* ctypedef public api class DMPlexTransform(Object) [ # <<<<<<<<<<<<<<
* type PyPetscDMPlexTransform_Type,
* object PyPetscDMPlexTransformObject,
*/
struct PyPetscDMPlexTransformObject {
struct PyPetscObjectObject __pyx_base;
DMPlexTransform tr;
};
typedef struct PyPetscDMPlexTransformObject PyPetscDMPlexTransformObject;
/* "petsc4py/PETSc.pxd":283
* cdef PetscDMPlexTransform tr
*
* ctypedef public api class DS(Object) [ # <<<<<<<<<<<<<<
* type PyPetscDS_Type,
* object PyPetscDSObject,
*/
struct PyPetscDSObject {
struct PyPetscObjectObject __pyx_base;
PetscDS ds;
};
typedef struct PyPetscDSObject PyPetscDSObject;
/* "petsc4py/PETSc.pxd":289
* cdef PetscDS ds
*
* ctypedef public api class Partitioner(Object) [ # <<<<<<<<<<<<<<
* type PyPetscPartitioner_Type,
* object PyPetscPartitionerObject,
*/
struct PyPetscPartitionerObject {
struct PyPetscObjectObject __pyx_base;
PetscPartitioner part;
};
typedef struct PyPetscPartitionerObject PyPetscPartitionerObject;
/* "petsc4py/PETSc.pxd":295
* cdef PetscPartitioner part
*
* ctypedef public api class DMLabel(Object) [ # <<<<<<<<<<<<<<
* type PyPetscDMLabel_Type,
* object PyPetscDMLabelObject,
*/
struct PyPetscDMLabelObject {
struct PyPetscObjectObject __pyx_base;
DMLabel dmlabel;
};
typedef struct PyPetscDMLabelObject PyPetscDMLabelObject;
#ifndef __PYX_HAVE_API__petsc4py__PETSc
#ifndef __PYX_EXTERN_C
#ifdef __cplusplus
#define __PYX_EXTERN_C extern "C"
#else
#define __PYX_EXTERN_C extern
#endif
#endif
#ifndef DL_IMPORT
#define DL_IMPORT(_T) _T
#endif
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscComm_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscObject_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscViewer_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscRandom_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDevice_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDeviceContext_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscIS_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscLGMap_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscSF_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscVec_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscSpace_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDualSpace_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscFE_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscQuad_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscScatter_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscSection_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscMat_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscMatPartitioning_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscNullSpace_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscPC_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscKSP_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscSNES_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscTS_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscTAO_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscAO_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDM_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDMPlexTransform_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDS_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscPartitioner_Type;
__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDMLabel_Type;
__PYX_EXTERN_C PetscErrorCode MatPythonGetContext(Mat, void **);
__PYX_EXTERN_C PetscErrorCode MatPythonSetContext(Mat, void *);
__PYX_EXTERN_C PetscErrorCode PCPythonGetContext(PC, void **);
__PYX_EXTERN_C PetscErrorCode PCPythonSetContext(PC, void *);
__PYX_EXTERN_C PetscErrorCode KSPPythonGetContext(KSP, void **);
__PYX_EXTERN_C PetscErrorCode KSPPythonSetContext(KSP, void *);
__PYX_EXTERN_C PetscErrorCode SNESPythonGetContext(SNES, void **);
__PYX_EXTERN_C PetscErrorCode SNESPythonSetContext(SNES, void *);
__PYX_EXTERN_C PetscErrorCode TSPythonGetContext(TS, void **);
__PYX_EXTERN_C PetscErrorCode TSPythonSetContext(TS, void *);
__PYX_EXTERN_C PetscErrorCode TaoPythonGetContext(Tao, void **);
__PYX_EXTERN_C PetscErrorCode TaoPythonSetContext(Tao, void *);
__PYX_EXTERN_C PetscErrorCode PetscPythonRegisterAll(void);
#endif /* !__PYX_HAVE_API__petsc4py__PETSc */
/* WARNING: the interface of the module init function changed in CPython 3.5. */
/* It now returns a PyModuleDef instance instead of a PyModule instance. */
#if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC initPETSc(void);
#else
PyMODINIT_FUNC PyInit_PETSc(void);
#endif
#endif /* !__PYX_HAVE__petsc4py__PETSc */

View File

@ -281,25 +281,32 @@
%global mpichversion %(rpm -qi mpich | awk -F': ' '/Version/ {print $2}')
%global openmpiversion %(rpm -qi openmpi | awk -F': ' '/Version/ {print $2}')
%global majorver 3
%global releasever 3.18
%global releasever 3.19
Name: petsc
Summary: Portable Extensible Toolkit for Scientific Computation
Version: %{releasever}.5
Version: %{releasever}.4
Release: %autorelease
License: BSD
URL: https://petsc.org/
Source0: https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-with-docs-%{version}.tar.gz
Source1: https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc4py-%{version}.tar.gz
# These files have been generated by Cython-0.29.36
# PETSC-3.19 is not compatible with Cython-3.0.0 yet
# See https://gitlab.com/petsc/petsc/-/issues/1431
Source2: %{name}-PETSc_cython0.29.36.c
Source3: %{name}-PETSc_cython0.29.36.h
Source4: %{name}-PETSc_api_cython0.29.36.h
## Remove rpath flags
Patch0: %{name}-3.11-no-rpath.patch
## Rename library name for 64-bit integer package
Patch1: %{name}-lib64.patch
Patch2: %{name}-3.18.5-fix_make_compatibility.patch
Patch3: %{name}-3.18.0-fix_mumps_includes.patch
Patch4: %{name}-3.18.0-fix_metis64.patch
Patch3: %{name}-3.19.4-fix_mumps_includes.patch
Patch4: %{name}-3.19.4-fix_metis64.patch
Patch5: %{name}-3.15.0-fix_sundials_version.patch
Patch6: %{name}-3.14.1-fix_pkgconfig_file.patch
Patch7: %{name}-3.17.0-avoid_fake_MKL_detection.patch
@ -451,7 +458,12 @@ BuildRequires: python3-wheel
BuildRequires: hdf5-openmpi-devel
BuildRequires: scalapack-openmpi-devel
BuildRequires: ptscotch-openmpi-devel
BuildRequires: python3-numpy, python3-Cython
BuildRequires: python3-numpy
%if 0%{?rhel} || 0%{?fedora} < 39
BuildRequires: python3-Cython
%else
BuildRequires: python3-pip
%endif
Requires: petsc-openmpi%{?_isa}
Requires: hdf5-openmpi%{?_isa}
Requires: scalapack-openmpi%{?_isa}
@ -479,7 +491,12 @@ BuildRequires: python3-wheel
BuildRequires: hdf5-mpich-devel
BuildRequires: scalapack-mpich-devel
BuildRequires: ptscotch-mpich-devel
BuildRequires: python3-numpy, python3-Cython
BuildRequires: python3-numpy
%if 0%{?rhel} || 0%{?fedora} < 39
BuildRequires: python3-Cython
%else
BuildRequires: python3-pip
%endif
Requires: petsc-mpich%{?_isa}
Requires: hdf5-mpich%{?_isa}
Requires: scalapack-openmpi%{?_isa}
@ -562,6 +579,16 @@ Portable Extensible Toolkit for Scientific Computation (developer files).
cp -a petsc4py-%{version}/* %{name}-%{version}/
rm -rf %{name}-%{version}/*.egg-info
rm -rf petsc4py-%{version}
%if 0%{?fedora} > 37
rm -f %{name}-%{version}/src/binding/petsc4py/src/PETSc.c
install -pm 644 %{SOURCE2} %{name}-%{version}/src/binding/petsc4py/src/PETSc.c
rm -f %{name}-%{version}/src/binding/petsc4py/src/PETSc.h
install -pm 644 %{SOURCE3} %{name}-%{version}/src/binding/petsc4py/src/PETSc.h
rm -f %{name}-%{version}/src/binding/petsc4py/src/PETSc_api.h
install -pm 644 %{SOURCE4} %{name}-%{version}/src/binding/petsc4py/src/PETSc_api.h
%endif
%if 0%{?fedora}
for i in `find . -name 'setup.py' -o -name 'configure' -o -name '*.py'`; do
%py3_shebang_fix $i
@ -570,11 +597,11 @@ done
%endif
pushd %{name}-%{version}
%patch -P 2 -p1 -b .backup
#patch -P 2 -p1 -b .backup
%patch -P 7 -p1 -b .backup
%if 0%{?python3_version_nodots} >= 312
%patch -P 8 -p1 -b .backup
#patch -P 8 -p1 -b .backup
%endif
popd

View File

@ -1,2 +1,2 @@
SHA512 (petsc-with-docs-3.18.5.tar.gz) = bc201ada4f90ab9ddbcd52c7c16892bc1f5d75396904da4810fcf41cc65b98906c4e0252e39c3c6c17381daf967e7475d5d4a79ef48ffdee0f9d8c9ee00bbe52
SHA512 (petsc4py-3.18.5.tar.gz) = 1043f6d3de5fc023c83ab5cc0d8bb877f612afb27cd11759d95af58f98dd8a4f4ab75ce454f69447d75cf4c7071e1fa7626b3995e3c00c15d5baa794ffc2edbf
SHA512 (petsc-with-docs-3.19.4.tar.gz) = 34011695e33594541132957afffc4f8c94ce3ff71e6322c76630a8afd39a2e91c8ac36c33bd1d749792a0167ee18a742d205b54269eceec2f5cbf01e5ae12809
SHA512 (petsc4py-3.19.4.tar.gz) = f6ffd84fff1124636b362cdf304137b37f2227a1a188206d70c78ba2bb90032088f0275a5be68c6e6b603e38cb27965fc08bf3f2cf001d63f29675cc984f9d1c