netgen-mesher 6.2.2506.post35.dev0__cp314-cp314-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- netgen/NgOCC.py +7 -0
- netgen/__init__.py +114 -0
- netgen/__init__.pyi +22 -0
- netgen/__main__.py +53 -0
- netgen/cmake/NetgenConfig.cmake +79 -0
- netgen/cmake/netgen-targets-release.cmake +69 -0
- netgen/cmake/netgen-targets.cmake +146 -0
- netgen/config/__init__.py +1 -0
- netgen/config/__init__.pyi +52 -0
- netgen/config/__main__.py +4 -0
- netgen/config/config.py +68 -0
- netgen/config/config.pyi +54 -0
- netgen/csg.py +25 -0
- netgen/geom2d.py +178 -0
- netgen/gui.py +82 -0
- netgen/include/core/archive.hpp +1256 -0
- netgen/include/core/array.hpp +1760 -0
- netgen/include/core/autodiff.hpp +1131 -0
- netgen/include/core/autodiffdiff.hpp +733 -0
- netgen/include/core/bitarray.hpp +240 -0
- netgen/include/core/concurrentqueue.h +3619 -0
- netgen/include/core/exception.hpp +145 -0
- netgen/include/core/flags.hpp +199 -0
- netgen/include/core/hashtable.hpp +1281 -0
- netgen/include/core/localheap.hpp +318 -0
- netgen/include/core/logging.hpp +117 -0
- netgen/include/core/memtracer.hpp +221 -0
- netgen/include/core/mpi4py_pycapi.h +245 -0
- netgen/include/core/mpi_wrapper.hpp +643 -0
- netgen/include/core/ng_mpi.hpp +94 -0
- netgen/include/core/ng_mpi_generated_declarations.hpp +155 -0
- netgen/include/core/ng_mpi_native.hpp +25 -0
- netgen/include/core/ngcore.hpp +32 -0
- netgen/include/core/ngcore_api.hpp +152 -0
- netgen/include/core/ngstream.hpp +115 -0
- netgen/include/core/paje_trace.hpp +279 -0
- netgen/include/core/profiler.hpp +382 -0
- netgen/include/core/python_ngcore.hpp +457 -0
- netgen/include/core/ranges.hpp +109 -0
- netgen/include/core/register_archive.hpp +100 -0
- netgen/include/core/signal.hpp +82 -0
- netgen/include/core/simd.hpp +160 -0
- netgen/include/core/simd_arm64.hpp +407 -0
- netgen/include/core/simd_avx.hpp +394 -0
- netgen/include/core/simd_avx512.hpp +285 -0
- netgen/include/core/simd_generic.hpp +1053 -0
- netgen/include/core/simd_math.hpp +178 -0
- netgen/include/core/simd_sse.hpp +289 -0
- netgen/include/core/statushandler.hpp +37 -0
- netgen/include/core/symboltable.hpp +153 -0
- netgen/include/core/table.hpp +810 -0
- netgen/include/core/taskmanager.hpp +1161 -0
- netgen/include/core/type_traits.hpp +65 -0
- netgen/include/core/utils.hpp +385 -0
- netgen/include/core/version.hpp +102 -0
- netgen/include/core/xbool.hpp +47 -0
- netgen/include/csg/algprim.hpp +563 -0
- netgen/include/csg/brick.hpp +150 -0
- netgen/include/csg/csg.hpp +43 -0
- netgen/include/csg/csgeom.hpp +389 -0
- netgen/include/csg/csgparser.hpp +101 -0
- netgen/include/csg/curve2d.hpp +67 -0
- netgen/include/csg/edgeflw.hpp +112 -0
- netgen/include/csg/explicitcurve2d.hpp +113 -0
- netgen/include/csg/extrusion.hpp +185 -0
- netgen/include/csg/gencyl.hpp +70 -0
- netgen/include/csg/geoml.hpp +16 -0
- netgen/include/csg/identify.hpp +213 -0
- netgen/include/csg/manifold.hpp +29 -0
- netgen/include/csg/meshsurf.hpp +46 -0
- netgen/include/csg/polyhedra.hpp +121 -0
- netgen/include/csg/revolution.hpp +180 -0
- netgen/include/csg/singularref.hpp +84 -0
- netgen/include/csg/solid.hpp +295 -0
- netgen/include/csg/specpoin.hpp +194 -0
- netgen/include/csg/spline3d.hpp +99 -0
- netgen/include/csg/splinesurface.hpp +85 -0
- netgen/include/csg/surface.hpp +394 -0
- netgen/include/csg/triapprox.hpp +63 -0
- netgen/include/csg/vscsg.hpp +34 -0
- netgen/include/general/autodiff.hpp +356 -0
- netgen/include/general/autoptr.hpp +39 -0
- netgen/include/general/gzstream.h +121 -0
- netgen/include/general/hashtabl.hpp +1692 -0
- netgen/include/general/myadt.hpp +48 -0
- netgen/include/general/mystring.hpp +226 -0
- netgen/include/general/netgenout.hpp +205 -0
- netgen/include/general/ngarray.hpp +797 -0
- netgen/include/general/ngbitarray.hpp +149 -0
- netgen/include/general/ngpython.hpp +74 -0
- netgen/include/general/optmem.hpp +44 -0
- netgen/include/general/parthreads.hpp +138 -0
- netgen/include/general/seti.hpp +50 -0
- netgen/include/general/sort.hpp +47 -0
- netgen/include/general/spbita2d.hpp +59 -0
- netgen/include/general/stack.hpp +114 -0
- netgen/include/general/table.hpp +280 -0
- netgen/include/general/template.hpp +509 -0
- netgen/include/geom2d/csg2d.hpp +750 -0
- netgen/include/geom2d/geometry2d.hpp +280 -0
- netgen/include/geom2d/spline2d.hpp +234 -0
- netgen/include/geom2d/vsgeom2d.hpp +28 -0
- netgen/include/gprim/adtree.hpp +1392 -0
- netgen/include/gprim/geom2d.hpp +858 -0
- netgen/include/gprim/geom3d.hpp +749 -0
- netgen/include/gprim/geomfuncs.hpp +212 -0
- netgen/include/gprim/geomobjects.hpp +544 -0
- netgen/include/gprim/geomops.hpp +404 -0
- netgen/include/gprim/geomtest3d.hpp +101 -0
- netgen/include/gprim/gprim.hpp +33 -0
- netgen/include/gprim/spline.hpp +778 -0
- netgen/include/gprim/splinegeometry.hpp +73 -0
- netgen/include/gprim/transform3d.hpp +216 -0
- netgen/include/include/acisgeom.hpp +3 -0
- netgen/include/include/csg.hpp +1 -0
- netgen/include/include/geometry2d.hpp +1 -0
- netgen/include/include/gprim.hpp +1 -0
- netgen/include/include/incopengl.hpp +62 -0
- netgen/include/include/inctcl.hpp +13 -0
- netgen/include/include/incvis.hpp +6 -0
- netgen/include/include/linalg.hpp +1 -0
- netgen/include/include/meshing.hpp +1 -0
- netgen/include/include/myadt.hpp +1 -0
- netgen/include/include/mydefs.hpp +70 -0
- netgen/include/include/mystdlib.h +59 -0
- netgen/include/include/netgen_config.hpp +27 -0
- netgen/include/include/netgen_version.hpp +9 -0
- netgen/include/include/nginterface_v2_impl.hpp +395 -0
- netgen/include/include/ngsimd.hpp +1 -0
- netgen/include/include/occgeom.hpp +1 -0
- netgen/include/include/opti.hpp +1 -0
- netgen/include/include/parallel.hpp +1 -0
- netgen/include/include/stlgeom.hpp +1 -0
- netgen/include/include/visual.hpp +1 -0
- netgen/include/interface/rw_medit.hpp +11 -0
- netgen/include/interface/writeuser.hpp +80 -0
- netgen/include/linalg/densemat.hpp +414 -0
- netgen/include/linalg/linalg.hpp +29 -0
- netgen/include/linalg/opti.hpp +142 -0
- netgen/include/linalg/polynomial.hpp +47 -0
- netgen/include/linalg/vector.hpp +217 -0
- netgen/include/meshing/adfront2.hpp +274 -0
- netgen/include/meshing/adfront3.hpp +332 -0
- netgen/include/meshing/basegeom.hpp +370 -0
- netgen/include/meshing/bcfunctions.hpp +53 -0
- netgen/include/meshing/bisect.hpp +72 -0
- netgen/include/meshing/boundarylayer.hpp +113 -0
- netgen/include/meshing/classifyhpel.hpp +1984 -0
- netgen/include/meshing/clusters.hpp +46 -0
- netgen/include/meshing/curvedelems.hpp +274 -0
- netgen/include/meshing/delaunay2d.hpp +73 -0
- netgen/include/meshing/fieldlines.hpp +103 -0
- netgen/include/meshing/findip.hpp +198 -0
- netgen/include/meshing/findip2.hpp +103 -0
- netgen/include/meshing/geomsearch.hpp +69 -0
- netgen/include/meshing/global.hpp +54 -0
- netgen/include/meshing/hpref_hex.hpp +330 -0
- netgen/include/meshing/hpref_prism.hpp +3405 -0
- netgen/include/meshing/hpref_pyramid.hpp +154 -0
- netgen/include/meshing/hpref_quad.hpp +2082 -0
- netgen/include/meshing/hpref_segm.hpp +122 -0
- netgen/include/meshing/hpref_tet.hpp +4230 -0
- netgen/include/meshing/hpref_trig.hpp +848 -0
- netgen/include/meshing/hprefinement.hpp +366 -0
- netgen/include/meshing/improve2.hpp +178 -0
- netgen/include/meshing/improve3.hpp +151 -0
- netgen/include/meshing/localh.hpp +223 -0
- netgen/include/meshing/meshclass.hpp +1076 -0
- netgen/include/meshing/meshfunc.hpp +47 -0
- netgen/include/meshing/meshing.hpp +63 -0
- netgen/include/meshing/meshing2.hpp +163 -0
- netgen/include/meshing/meshing3.hpp +123 -0
- netgen/include/meshing/meshtool.hpp +90 -0
- netgen/include/meshing/meshtype.hpp +1930 -0
- netgen/include/meshing/msghandler.hpp +62 -0
- netgen/include/meshing/paralleltop.hpp +172 -0
- netgen/include/meshing/python_mesh.hpp +206 -0
- netgen/include/meshing/ruler2.hpp +172 -0
- netgen/include/meshing/ruler3.hpp +211 -0
- netgen/include/meshing/soldata.hpp +141 -0
- netgen/include/meshing/specials.hpp +17 -0
- netgen/include/meshing/surfacegeom.hpp +73 -0
- netgen/include/meshing/topology.hpp +1003 -0
- netgen/include/meshing/validate.hpp +21 -0
- netgen/include/meshing/visual_interface.hpp +71 -0
- netgen/include/mydefs.hpp +70 -0
- netgen/include/nginterface.h +474 -0
- netgen/include/nginterface_v2.hpp +406 -0
- netgen/include/nglib.h +697 -0
- netgen/include/nglib_occ.h +50 -0
- netgen/include/occ/occ_edge.hpp +47 -0
- netgen/include/occ/occ_face.hpp +52 -0
- netgen/include/occ/occ_solid.hpp +23 -0
- netgen/include/occ/occ_utils.hpp +376 -0
- netgen/include/occ/occ_vertex.hpp +30 -0
- netgen/include/occ/occgeom.hpp +659 -0
- netgen/include/occ/occmeshsurf.hpp +168 -0
- netgen/include/occ/vsocc.hpp +33 -0
- netgen/include/pybind11/LICENSE +29 -0
- netgen/include/pybind11/attr.h +722 -0
- netgen/include/pybind11/buffer_info.h +208 -0
- netgen/include/pybind11/cast.h +2361 -0
- netgen/include/pybind11/chrono.h +228 -0
- netgen/include/pybind11/common.h +2 -0
- netgen/include/pybind11/complex.h +74 -0
- netgen/include/pybind11/conduit/README.txt +15 -0
- netgen/include/pybind11/conduit/pybind11_conduit_v1.h +116 -0
- netgen/include/pybind11/conduit/pybind11_platform_abi_id.h +87 -0
- netgen/include/pybind11/conduit/wrap_include_python_h.h +72 -0
- netgen/include/pybind11/critical_section.h +56 -0
- netgen/include/pybind11/detail/class.h +823 -0
- netgen/include/pybind11/detail/common.h +1348 -0
- netgen/include/pybind11/detail/cpp_conduit.h +75 -0
- netgen/include/pybind11/detail/descr.h +226 -0
- netgen/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +39 -0
- netgen/include/pybind11/detail/exception_translation.h +71 -0
- netgen/include/pybind11/detail/function_record_pyobject.h +191 -0
- netgen/include/pybind11/detail/init.h +538 -0
- netgen/include/pybind11/detail/internals.h +799 -0
- netgen/include/pybind11/detail/native_enum_data.h +209 -0
- netgen/include/pybind11/detail/pybind11_namespace_macros.h +82 -0
- netgen/include/pybind11/detail/struct_smart_holder.h +378 -0
- netgen/include/pybind11/detail/type_caster_base.h +1591 -0
- netgen/include/pybind11/detail/typeid.h +65 -0
- netgen/include/pybind11/detail/using_smart_holder.h +22 -0
- netgen/include/pybind11/detail/value_and_holder.h +90 -0
- netgen/include/pybind11/eigen/common.h +9 -0
- netgen/include/pybind11/eigen/matrix.h +723 -0
- netgen/include/pybind11/eigen/tensor.h +521 -0
- netgen/include/pybind11/eigen.h +12 -0
- netgen/include/pybind11/embed.h +320 -0
- netgen/include/pybind11/eval.h +161 -0
- netgen/include/pybind11/functional.h +147 -0
- netgen/include/pybind11/gil.h +199 -0
- netgen/include/pybind11/gil_safe_call_once.h +102 -0
- netgen/include/pybind11/gil_simple.h +37 -0
- netgen/include/pybind11/iostream.h +265 -0
- netgen/include/pybind11/native_enum.h +67 -0
- netgen/include/pybind11/numpy.h +2312 -0
- netgen/include/pybind11/operators.h +202 -0
- netgen/include/pybind11/options.h +92 -0
- netgen/include/pybind11/pybind11.h +3645 -0
- netgen/include/pybind11/pytypes.h +2680 -0
- netgen/include/pybind11/stl/filesystem.h +114 -0
- netgen/include/pybind11/stl.h +666 -0
- netgen/include/pybind11/stl_bind.h +858 -0
- netgen/include/pybind11/subinterpreter.h +299 -0
- netgen/include/pybind11/trampoline_self_life_support.h +65 -0
- netgen/include/pybind11/type_caster_pyobject_ptr.h +61 -0
- netgen/include/pybind11/typing.h +298 -0
- netgen/include/pybind11/warnings.h +75 -0
- netgen/include/stlgeom/meshstlsurface.hpp +67 -0
- netgen/include/stlgeom/stlgeom.hpp +491 -0
- netgen/include/stlgeom/stlline.hpp +193 -0
- netgen/include/stlgeom/stltool.hpp +331 -0
- netgen/include/stlgeom/stltopology.hpp +419 -0
- netgen/include/stlgeom/vsstl.hpp +58 -0
- netgen/include/visualization/meshdoc.hpp +42 -0
- netgen/include/visualization/mvdraw.hpp +325 -0
- netgen/include/visualization/vispar.hpp +128 -0
- netgen/include/visualization/visual.hpp +28 -0
- netgen/include/visualization/visual_api.hpp +10 -0
- netgen/include/visualization/vssolution.hpp +399 -0
- netgen/lib/libnggui.lib +0 -0
- netgen/lib/ngcore.lib +0 -0
- netgen/lib/nglib.lib +0 -0
- netgen/lib/togl.lib +0 -0
- netgen/libnggui.dll +0 -0
- netgen/libngguipy.lib +0 -0
- netgen/libngguipy.pyd +0 -0
- netgen/libngpy/_NgOCC.pyi +1545 -0
- netgen/libngpy/__init__.pyi +7 -0
- netgen/libngpy/_csg.pyi +259 -0
- netgen/libngpy/_geom2d.pyi +323 -0
- netgen/libngpy/_meshing.pyi +1111 -0
- netgen/libngpy/_stl.pyi +131 -0
- netgen/libngpy.lib +0 -0
- netgen/libngpy.pyd +0 -0
- netgen/meshing.py +65 -0
- netgen/ngcore.dll +0 -0
- netgen/nglib.dll +0 -0
- netgen/occ.py +52 -0
- netgen/read_gmsh.py +259 -0
- netgen/read_meshio.py +22 -0
- netgen/stl.py +2 -0
- netgen/togl.dll +0 -0
- netgen/version.py +2 -0
- netgen/webgui.py +529 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boundarycondition.geo +16 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boxcyl.geo +32 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/circle_on_cube.geo +27 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cone.geo +13 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cube.geo +16 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandring.geo +55 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandspheres.geo +21 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemcyl.geo +18 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemsphere.geo +19 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylinder.geo +12 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylsphere.geo +12 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/doc/ng4.pdf +0 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipsoid.geo +8 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipticcyl.geo +10 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/extrusion.geo +99 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/fichera.geo +24 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/frame.step +11683 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/hinge.stl +8486 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/lshape3d.geo +26 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes.geo +26 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes2.geo +26 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/matrix.geo +27 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ortho.geo +11 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/part1.stl +2662 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/period.geo +33 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/exportNeutral.py +26 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/mesh.py +19 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/shaft.geo +65 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/revolution.geo +18 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/screw.step +1694 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sculpture.geo +13 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shaft.geo +65 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shell.geo +10 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphere.geo +8 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphereincube.geo +17 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/square.in2d +35 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarecircle.in2d +48 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarehole.in2d +47 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/torus.geo +8 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/trafo.geo +57 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twobricks.geo +15 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocubes.geo +18 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocyl.geo +16 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/METADATA +15 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/RECORD +340 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/WHEEL +5 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/entry_points.txt +2 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/licenses/AUTHORS +1 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/licenses/LICENSE +504 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/top_level.txt +2 -0
- pyngcore/__init__.py +1 -0
- pyngcore/pyngcore.cp314-win_amd64.pyd +0 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/* Author: Lisandro Dalcin */
|
|
2
|
+
/* Contact: dalcinl@gmail.com */
|
|
3
|
+
|
|
4
|
+
#ifndef MPI4PY_PYCAPI_H
|
|
5
|
+
#define MPI4PY_PYCAPI_H
|
|
6
|
+
|
|
7
|
+
#include <mpi.h>
|
|
8
|
+
#include <Python.h>
|
|
9
|
+
|
|
10
|
+
#define _mpi4py_declare_pycapi(Type, star) \
|
|
11
|
+
static PyTypeObject *_mpi4py_PyMPI##Type = NULL; \
|
|
12
|
+
static PyObject *(*_mpi4py_PyMPI##Type##_New)(MPI_##Type star) = NULL; \
|
|
13
|
+
static MPI_##Type *(*_mpi4py_PyMPI##Type##_Get)(PyObject *) = NULL;
|
|
14
|
+
|
|
15
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_DATATYPE
|
|
16
|
+
_mpi4py_declare_pycapi(Datatype,)
|
|
17
|
+
#define PyMPIDatatype_Type (*_mpi4py_PyMPIDatatype)
|
|
18
|
+
#define PyMPIDatatype_New _mpi4py_PyMPIDatatype_New
|
|
19
|
+
#define PyMPIDatatype_Get _mpi4py_PyMPIDatatype_Get
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_STATUS
|
|
23
|
+
_mpi4py_declare_pycapi(Status,*)
|
|
24
|
+
#define PyMPIStatus_Type (*_mpi4py_PyMPIStatus)
|
|
25
|
+
#define PyMPIStatus_New _mpi4py_PyMPIStatus_New
|
|
26
|
+
#define PyMPIStatus_Get _mpi4py_PyMPIStatus_Get
|
|
27
|
+
#endif
|
|
28
|
+
|
|
29
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_REQUEST
|
|
30
|
+
_mpi4py_declare_pycapi(Request,)
|
|
31
|
+
#define PyMPIRequest_Type (*_mpi4py_PyMPIRequest)
|
|
32
|
+
#define PyMPIRequest_New _mpi4py_PyMPIRequest_New
|
|
33
|
+
#define PyMPIRequest_Get _mpi4py_PyMPIRequest_Get
|
|
34
|
+
#endif
|
|
35
|
+
|
|
36
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_MESSAGE
|
|
37
|
+
_mpi4py_declare_pycapi(Message,)
|
|
38
|
+
#define PyMPIMessage_Type (*_mpi4py_PyMPIMessage)
|
|
39
|
+
#define PyMPIMessage_New _mpi4py_PyMPIMessage_New
|
|
40
|
+
#define PyMPIMessage_Get _mpi4py_PyMPIMessage_Get
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_OP
|
|
44
|
+
_mpi4py_declare_pycapi(Op,)
|
|
45
|
+
#define PyMPIOp_Type (*_mpi4py_PyMPIOp)
|
|
46
|
+
#define PyMPIOp_New _mpi4py_PyMPIOp_New
|
|
47
|
+
#define PyMPIOp_Get _mpi4py_PyMPIOp_Get
|
|
48
|
+
#endif
|
|
49
|
+
|
|
50
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_GROUP
|
|
51
|
+
_mpi4py_declare_pycapi(Group,)
|
|
52
|
+
#define PyMPIGroup_Type (*_mpi4py_PyMPIGroup)
|
|
53
|
+
#define PyMPIGroup_New _mpi4py_PyMPIGroup_New
|
|
54
|
+
#define PyMPIGroup_Get _mpi4py_PyMPIGroup_Get
|
|
55
|
+
#endif
|
|
56
|
+
|
|
57
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_INFO
|
|
58
|
+
_mpi4py_declare_pycapi(Info,)
|
|
59
|
+
#define PyMPIInfo_Type (*_mpi4py_PyMPIInfo)
|
|
60
|
+
#define PyMPIInfo_New _mpi4py_PyMPIInfo_New
|
|
61
|
+
#define PyMPIInfo_Get _mpi4py_PyMPIInfo_Get
|
|
62
|
+
#endif
|
|
63
|
+
|
|
64
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_ERRHANDLER
|
|
65
|
+
_mpi4py_declare_pycapi(Errhandler,)
|
|
66
|
+
#define PyMPIErrhandler_Type (*_mpi4py_PyMPIErrhandler)
|
|
67
|
+
#define PyMPIErrhandler_New _mpi4py_PyMPIErrhandler_New
|
|
68
|
+
#define PyMPIErrhandler_Get _mpi4py_PyMPIErrhandler_Get
|
|
69
|
+
#endif
|
|
70
|
+
|
|
71
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_SESSION
|
|
72
|
+
_mpi4py_declare_pycapi(Session,)
|
|
73
|
+
#define PyMPISession_Type (*_mpi4py_PyMPISession)
|
|
74
|
+
#define PyMPISession_New _mpi4py_PyMPISession_New
|
|
75
|
+
#define PyMPISession_Get _mpi4py_PyMPISession_Get
|
|
76
|
+
#endif
|
|
77
|
+
|
|
78
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_COMM
|
|
79
|
+
_mpi4py_declare_pycapi(Comm,)
|
|
80
|
+
#define PyMPIComm_Type (*_mpi4py_PyMPIComm)
|
|
81
|
+
#define PyMPIComm_New _mpi4py_PyMPIComm_New
|
|
82
|
+
#define PyMPIComm_Get _mpi4py_PyMPIComm_Get
|
|
83
|
+
#endif
|
|
84
|
+
|
|
85
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_WIN
|
|
86
|
+
_mpi4py_declare_pycapi(Win,)
|
|
87
|
+
#define PyMPIWin_Type (*_mpi4py_PyMPIWin)
|
|
88
|
+
#define PyMPIWin_New _mpi4py_PyMPIWin_New
|
|
89
|
+
#define PyMPIWin_Get _mpi4py_PyMPIWin_Get
|
|
90
|
+
#endif
|
|
91
|
+
|
|
92
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_FILE
|
|
93
|
+
_mpi4py_declare_pycapi(File,)
|
|
94
|
+
#define PyMPIFile_Type (*_mpi4py_PyMPIFile)
|
|
95
|
+
#define PyMPIFile_New _mpi4py_PyMPIFile_New
|
|
96
|
+
#define PyMPIFile_Get _mpi4py_PyMPIFile_Get
|
|
97
|
+
#endif
|
|
98
|
+
|
|
99
|
+
#undef _mpi4py_define_pycapi
|
|
100
|
+
|
|
101
|
+
static int _mpi4py_ImportType(PyObject *module,
|
|
102
|
+
const char *type_name,
|
|
103
|
+
PyTypeObject **type)
|
|
104
|
+
{
|
|
105
|
+
PyObject *attr = NULL;
|
|
106
|
+
attr = PyObject_GetAttrString(module, type_name);
|
|
107
|
+
if (!attr)
|
|
108
|
+
goto fn_fail;
|
|
109
|
+
if (!PyType_Check(attr)) {
|
|
110
|
+
PyErr_Format(PyExc_TypeError,
|
|
111
|
+
"%.200s.%.200s is not a type object",
|
|
112
|
+
PyModule_GetName(module), type_name);
|
|
113
|
+
goto fn_fail;
|
|
114
|
+
}
|
|
115
|
+
*type = (PyTypeObject *)attr;
|
|
116
|
+
return 0;
|
|
117
|
+
fn_fail:
|
|
118
|
+
Py_DecRef(attr);
|
|
119
|
+
return -1;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
static int _mpi4py_ImportFunc(PyObject *module,
|
|
123
|
+
const char *func_name,
|
|
124
|
+
const char *signature,
|
|
125
|
+
void (**func)(void))
|
|
126
|
+
{
|
|
127
|
+
PyObject *pyxcapi = NULL;
|
|
128
|
+
PyObject *capsule = NULL;
|
|
129
|
+
union { void *obj; void (*fcn)(void); } ptr;
|
|
130
|
+
pyxcapi = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
|
|
131
|
+
if (!pyxcapi)
|
|
132
|
+
goto fn_fail;
|
|
133
|
+
|
|
134
|
+
capsule = PyDict_GetItemString(pyxcapi, func_name);
|
|
135
|
+
if (!capsule) {
|
|
136
|
+
PyErr_Format(PyExc_ImportError,
|
|
137
|
+
"%.200s does not export expected C function %.200s",
|
|
138
|
+
PyModule_GetName(module), func_name);
|
|
139
|
+
goto fn_fail;
|
|
140
|
+
}
|
|
141
|
+
if (!PyCapsule_CheckExact(capsule)) {
|
|
142
|
+
PyErr_Format(PyExc_TypeError,
|
|
143
|
+
"%.200s.%.200s is not a capsule",
|
|
144
|
+
PyModule_GetName(module), func_name);
|
|
145
|
+
}
|
|
146
|
+
if (!signature) {
|
|
147
|
+
signature = PyCapsule_GetName(capsule);
|
|
148
|
+
}
|
|
149
|
+
if (!PyCapsule_IsValid(capsule, signature)) {
|
|
150
|
+
PyErr_Format(PyExc_TypeError,
|
|
151
|
+
"C function %.200s.%.200s has wrong signature "
|
|
152
|
+
"(expected %.500s, got %.500s)",
|
|
153
|
+
PyModule_GetName(module), func_name,
|
|
154
|
+
signature, PyCapsule_GetName(capsule));
|
|
155
|
+
goto fn_fail;
|
|
156
|
+
}
|
|
157
|
+
ptr.obj = PyCapsule_GetPointer(capsule, signature);
|
|
158
|
+
if (!ptr.obj)
|
|
159
|
+
goto fn_fail;
|
|
160
|
+
*func = ptr.fcn;
|
|
161
|
+
Py_DecRef(pyxcapi);
|
|
162
|
+
return 0;
|
|
163
|
+
fn_fail:
|
|
164
|
+
Py_DecRef(pyxcapi);
|
|
165
|
+
return -1;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
static int import_mpi4py_MPI(void)
|
|
169
|
+
{
|
|
170
|
+
PyObject *module = PyImport_ImportModule("mpi4py.MPI");
|
|
171
|
+
if (!module)
|
|
172
|
+
goto fn_fail;
|
|
173
|
+
|
|
174
|
+
#define _mpi4py_import_pycapi(Type) do { \
|
|
175
|
+
if (_mpi4py_ImportType(module, #Type, &_mpi4py_PyMPI##Type) < 0) \
|
|
176
|
+
goto fn_fail; \
|
|
177
|
+
if (_mpi4py_ImportFunc(module, "PyMPI" #Type "_New", NULL, \
|
|
178
|
+
(void (**)(void))&_mpi4py_PyMPI##Type##_New) < 0) \
|
|
179
|
+
goto fn_fail; \
|
|
180
|
+
if (_mpi4py_ImportFunc(module, "PyMPI" #Type "_Get", NULL, \
|
|
181
|
+
(void (**)(void))&_mpi4py_PyMPI##Type##_Get) < 0) \
|
|
182
|
+
goto fn_fail; \
|
|
183
|
+
} while (0)
|
|
184
|
+
|
|
185
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_DATATYPE
|
|
186
|
+
_mpi4py_import_pycapi(Datatype);
|
|
187
|
+
#endif
|
|
188
|
+
|
|
189
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_STATUS
|
|
190
|
+
_mpi4py_import_pycapi(Status);
|
|
191
|
+
#endif
|
|
192
|
+
|
|
193
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_REQUEST
|
|
194
|
+
_mpi4py_import_pycapi(Request);
|
|
195
|
+
#endif
|
|
196
|
+
|
|
197
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_MESSAGE
|
|
198
|
+
_mpi4py_import_pycapi(Message);
|
|
199
|
+
#endif
|
|
200
|
+
|
|
201
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_OP
|
|
202
|
+
_mpi4py_import_pycapi(Op);
|
|
203
|
+
#endif
|
|
204
|
+
|
|
205
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_GROUP
|
|
206
|
+
_mpi4py_import_pycapi(Group);
|
|
207
|
+
#endif
|
|
208
|
+
|
|
209
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_INFO
|
|
210
|
+
_mpi4py_import_pycapi(Info);
|
|
211
|
+
#endif
|
|
212
|
+
|
|
213
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_ERRHANDLER
|
|
214
|
+
_mpi4py_import_pycapi(Errhandler);
|
|
215
|
+
#endif
|
|
216
|
+
|
|
217
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_SESSION
|
|
218
|
+
_mpi4py_import_pycapi(Session);
|
|
219
|
+
#endif
|
|
220
|
+
|
|
221
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_COMM
|
|
222
|
+
_mpi4py_import_pycapi(Comm);
|
|
223
|
+
#endif
|
|
224
|
+
|
|
225
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_WIN
|
|
226
|
+
_mpi4py_import_pycapi(Win);
|
|
227
|
+
#endif
|
|
228
|
+
|
|
229
|
+
#ifndef MPI4PY_LIMITED_API_SKIP_FILE
|
|
230
|
+
_mpi4py_import_pycapi(File);
|
|
231
|
+
#endif
|
|
232
|
+
|
|
233
|
+
#undef _mpi4py_import_pycapi
|
|
234
|
+
|
|
235
|
+
Py_DecRef(module);
|
|
236
|
+
return 0;
|
|
237
|
+
fn_fail:
|
|
238
|
+
Py_DecRef(module);
|
|
239
|
+
return -1;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
#define __PYX_HAVE_API__mpi4py__MPI
|
|
243
|
+
#define import_mpi4py__MPI import_mpi4py_MPI
|
|
244
|
+
|
|
245
|
+
#endif /* MPI4PY_PYCAPI_H */
|