MCPcopy Create free account
hub / github.com/KratosMultiphysics/Kratos / AddNodeToPython

Function AddNodeToPython

kratos/python/add_node_to_python.cpp:96–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

94
95
96void 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(); },

Callers 1

PYBIND11_MODULEFunction · 0.85

Calls 1

CreateInterfaceMethod · 0.45

Tested by

no test coverage detected