From 4f67205d89ab4586d9937f92443ba76038de999f Mon Sep 17 00:00:00 2001 From: dedner <a.s.dedner@warwick.ac.uk> Date: Fri, 27 Mar 2020 13:35:42 +0000 Subject: [PATCH] complete move of bindings to dune-common --- CMakeLists.txt | 1 + __init__.py | 2 +- _geometry.cc | 25 +++++++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 _geometry.cc diff --git a/CMakeLists.txt b/CMakeLists.txt index 14eca862..73083d29 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,3 +3,4 @@ add_python_targets(geometry _referenceelements quadpy ) +dune_add_pybind11_module(NAME _geometry) diff --git a/__init__.py b/__init__.py index 67e19d2d..857d9273 100644 --- a/__init__.py +++ b/__init__.py @@ -1,4 +1,4 @@ -from .._geometry import * +from ._geometry import * from ._referenceelements import * import numpy diff --git a/_geometry.cc b/_geometry.cc new file mode 100644 index 00000000..defba1f4 --- /dev/null +++ b/_geometry.cc @@ -0,0 +1,25 @@ +// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- +// vi: set et ts=4 sw=2 sts=2: + +#include <dune/python/geometry/type.hh> +#include <dune/python/pybind11/pybind11.h> + +PYBIND11_MODULE( _geometry, module ) +{ + Dune::Python::registerGeometryType( module ); + + // register geometry type contuctors + module.def( "simplex", [] ( int dim ) { return Dune::GeometryTypes::simplex( dim ); } ); + module.def( "cube", [] ( int dim ) { return Dune::GeometryTypes::cube( dim ); } ); + module.def( "none", [] ( int dim ) { return Dune::GeometryTypes::none( dim ); } ); + + // register predefined geometry types + module.attr( "vertex" ) = Dune::GeometryTypes::vertex; + module.attr( "line" ) = Dune::GeometryTypes::line; + module.attr( "triangle" ) = Dune::GeometryTypes::triangle; + module.attr( "quadrilateral" ) = Dune::GeometryTypes::quadrilateral; + module.attr( "tetrahedron" ) = Dune::GeometryTypes::tetrahedron; + module.attr( "pyramid" ) = Dune::GeometryTypes::pyramid; + module.attr( "prism" ) = Dune::GeometryTypes::prism; + module.attr( "hexahedron" ) = Dune::GeometryTypes::hexahedron; +} -- GitLab