| 94 | |
| 95 | |
| 96 | void AddNodeToPython(pybind11::module& m) |
| 97 | { |
| 98 | using MeshType = Mesh<Node, Properties, Element, Condition>; |
| 99 | |
| 100 | py::class_<IndexedObject, IndexedObject::Pointer>(m,"IndexedObject") |
| 101 | .def_property("Id", &IndexedObject::GetId, &IndexedObject::SetId) |
| 102 | .def("__str__", PrintObject<IndexedObject>) |
| 103 | ; |
| 104 | |
| 105 | typedef py::class_<Node, Node::Pointer, Node::BaseType, Flags > NodeBinderType; |
| 106 | NodeBinderType node_binder(m,"Node"); |
| 107 | node_binder.def(py::init<Node::IndexType, double, double, double>()); |
| 108 | node_binder.def(py::init<Node::IndexType, const Point& >()); |
| 109 | |
| 110 | IndexingUtility<NodeBinderType,Node,Variable<bool> >(node_binder); |
| 111 | IndexingUtility<NodeBinderType,Node,Variable<int> >(node_binder); |
| 112 | IndexingUtility<NodeBinderType,Node,Variable<double> >(node_binder); |
| 113 | IndexingUtility<NodeBinderType,Node,Variable<array_1d<double, 3> > >(node_binder); |
| 114 | IndexingUtility<NodeBinderType,Node,Variable<array_1d<double, 4> > >(node_binder); |
| 115 | IndexingUtility<NodeBinderType,Node,Variable<array_1d<double, 6> > >(node_binder); |
| 116 | IndexingUtility<NodeBinderType,Node,Variable<array_1d<double, 9> > >(node_binder); |
| 117 | IndexingUtility<NodeBinderType,Node,Variable<Quaternion<double> > >(node_binder); |
| 118 | IndexingUtility<NodeBinderType,Node,Variable<Vector > >(node_binder); |
| 119 | IndexingUtility<NodeBinderType,Node,Variable<Matrix > >(node_binder); |
| 120 | |
| 121 | node_binder.def("GetBufferSize", &Node::GetBufferSize); |
| 122 | node_binder.def("AddDof", NodeAddDof<Variable<double> >); |
| 123 | node_binder.def("AddDof", NodeAddDofwithReaction<Variable<double> >); |
| 124 | node_binder.def("GetDof", |
| 125 | [](const Node& rNode, const Variable<double>& rVar) -> Node::DofType& {return *rNode.pGetDof(rVar); } |
| 126 | ,py::return_value_policy::reference_internal |
| 127 | ); |
| 128 | node_binder.def("Fix", NodeFix<Variable<double> >); |
| 129 | node_binder.def("Free", NodeFree<Variable<double> >); |
| 130 | node_binder.def("IsFixed", NodeIsFixed<Variable<double> >); |
| 131 | node_binder.def("HasDofFor", NodeHasDofFor<Variable<double> >); |
| 132 | node_binder.def("SolutionStepsDataHas", &NodeSolutionStepsDataHas<Variable<bool> >); |
| 133 | node_binder.def("SolutionStepsDataHas", &NodeSolutionStepsDataHas<Variable<int> >); |
| 134 | node_binder.def("SolutionStepsDataHas", &NodeSolutionStepsDataHas<Variable<double> >); |
| 135 | node_binder.def("SolutionStepsDataHas", &NodeSolutionStepsDataHas<Variable<array_1d<double, 3> > >); |
| 136 | node_binder.def("SolutionStepsDataHas", &NodeSolutionStepsDataHas<Variable<array_1d<double, 4> > >); |
| 137 | node_binder.def("SolutionStepsDataHas", &NodeSolutionStepsDataHas<Variable<array_1d<double, 6> > >); |
| 138 | node_binder.def("SolutionStepsDataHas", &NodeSolutionStepsDataHas<Variable<array_1d<double, 9> > >); |
| 139 | node_binder.def("SolutionStepsDataHas", &NodeSolutionStepsDataHas<Variable<Vector> >); |
| 140 | node_binder.def("SolutionStepsDataHas", &NodeSolutionStepsDataHas<Variable<DenseMatrix<double> > >); |
| 141 | node_binder.def("__str__", PrintObject<Node>); |
| 142 | node_binder.def("OverwriteSolutionStepData", &Node::OverwriteSolutionStepData); |
| 143 | node_binder.def("GetInitialPosition", [](Node& rNode) { return rNode.GetInitialPosition(); }); |
| 144 | node_binder.def("SetInitialPosition", [](Node& rNode, const double X0, const double Y0, const double Z0) { rNode.SetInitialPosition(X0, Y0, Z0); }); |
| 145 | node_binder.def("SetInitialPosition", [](Node& rNode, const Point& rPoint) { rNode.SetInitialPosition(rPoint); }); |
| 146 | node_binder.def_property("X0", |
| 147 | [](Node& rNode) { return rNode.X0(); }, |
| 148 | [](Node& rNode, double Value) { rNode.X0() = Value; }); |
| 149 | node_binder.def_property("Y0", |
| 150 | [](Node& rNode) { return rNode.Y0(); }, |
| 151 | [](Node& rNode, double Value) { rNode.Y0() = Value; }); |
| 152 | node_binder.def_property("Z0", |
| 153 | [](Node& rNode) { return rNode.Z0(); }, |
no test coverage detected