3#ifndef DUNE_PYTHON_LOCALFUNCTIONS_LOCALFINITEELEMENT_HH
4#define DUNE_PYTHON_LOCALFUNCTIONS_LOCALFINITEELEMENT_HH
6#include <dune/python/pybind11/pybind11.h>
9#include <dune/localfunctions/common/localkey.hh>
10#include <dune/localfunctions/common/virtualinterface.hh>
17template<
typename LocalBasis>
18DUNE_EXPORT auto registerLocalBasis(pybind11::handle scope)
20 static auto cls = pybind11::class_<LocalBasis>(scope,
"LocalBasis");
22 cls.def(
"__len__", [](
const LocalBasis& basis) {
return basis.size(); });
23 cls.def_property_readonly(
"order", [](
const LocalBasis& basis) {
return basis.order(); });
24 cls.def(
"evaluateFunction",
25 [](
const LocalBasis& basis,
const typename LocalBasis::Traits::DomainType& in) {
26 std::vector<typename LocalBasis::Traits::RangeType> out;
27 basis.evaluateFunction(in, out);
30 cls.def(
"evaluateJacobian",
31 [](
const LocalBasis& basis,
const typename LocalBasis::Traits::DomainType& in) {
32 std::vector<typename LocalBasis::Traits::JacobianType> out;
33 basis.evaluateJacobian(in, out);
39DUNE_EXPORT auto registerLocalKey(pybind11::handle scope)
41 static auto cls = pybind11::class_<LocalKey>(scope,
"LocalKey");
45 cls.def_property(
"index",
46 [](
const LocalKey& key) {
return key.index(); },
47 [](LocalKey& key,
unsigned int index) { key.index(index); });
48 cls.def(
"__lt__", &LocalKey::operator<);
55template<
typename LocalFiniteElement>
56DUNE_EXPORT auto registerLocalFiniteElement(pybind11::handle scope,
const char* name =
"LocalFiniteElement")
58 static auto cls = pybind11::class_<LocalFiniteElement>(scope, name);
60 detail::registerLocalBasis<typename LocalFiniteElement::Traits::LocalBasisType>(cls);
62 cls.def_property_readonly(
"localBasis", &LocalFiniteElement::localBasis, pybind11::return_value_policy::reference_internal);
65 cls.def(
"__len__", &LocalFiniteElement::size);
66 cls.def_property_readonly(
"type", &LocalFiniteElement::type);
unsigned int codim() const
Return codim of associated entity.
Definition: localkey.hh:62
unsigned int subEntity() const
Return number of associated subentity.
Definition: localkey.hh:56
Dune namespace.
Definition: alignedallocator.hh:13
Definition of macros controlling symbol visibility at the ABI level.
#define DUNE_EXPORT
Export a symbol as part of the public ABI.
Definition: visibility.hh:20