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

Function AddVectorToPython

kratos/python/add_vector_to_python.cpp:253–556  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

251}
252
253void AddVectorToPython(pybind11::module& m)
254{
255 typedef boost::numeric::ublas::vector_slice<Vector> VectorSlice;
256 py::class_< VectorSlice >(m, "VectorSlice")
257 .def("Size", [](const VectorSlice& self)
258 {
259 return self.size();
260 } )
261 .def("__len__", [](const VectorSlice& self)
262 {
263 return self.size();
264 } )
265 .def("__iadd__", [](VectorSlice& self, const double scalar)
266 {
267 for(unsigned int i=0; i<self.size(); ++i) self[i]+=scalar;
268 return self;
269 }, py::is_operator())
270 .def("__isub__", [](VectorSlice& self, const double scalar)
271 {
272 for(unsigned int i=0; i<self.size(); ++i) self[i]-=scalar;
273 return self;
274 }, py::is_operator())
275 .def("__imul__", [](VectorSlice& self, const double scalar)
276 {
277 for(unsigned int i=0; i<self.size(); ++i) self[i]*=scalar;
278 return self;
279 }, py::is_operator())
280 .def("__itruediv__", [](VectorSlice& self, const double scalar)
281 {
282 for(unsigned int i=0; i<self.size(); ++i) self[i]/=scalar;
283 return self;
284 }, py::is_operator())
285 .def("__iadd__", [](VectorSlice& self, const VectorSlice& other_vec)
286 {
287 noalias(self) += other_vec;
288 return self;
289 }, py::is_operator())
290 .def("__isub__", [](VectorSlice& self, const VectorSlice& other_vec)
291 {
292 noalias(self) -= other_vec;
293 return self;
294 }, py::is_operator())
295 .def("__mul__", [](VectorSlice vec1, const double scalar)
296 {
297 for(unsigned int i=0; i<vec1.size(); ++i) vec1[i]*=scalar;
298 return vec1;
299 }, py::is_operator())
300 .def("__div__", [](VectorSlice vec1, const double scalar)
301 {
302 for(unsigned int i=0; i<vec1.size(); ++i) vec1[i]/=scalar;
303 return vec1;
304 }, py::is_operator())
305 .def("__rmul__", [](VectorSlice vec1, const double scalar)
306 {
307 for(unsigned int i=0; i<vec1.size(); ++i) vec1[i]*=scalar;
308 return vec1;
309 }, py::is_operator())
310 .def("__rdiv__", [](VectorSlice vec1, const double scalar)

Callers 1

PYBIND11_MODULEFunction · 0.85

Calls 13

is_operatorClass · 0.85
make_iteratorFunction · 0.85
buffer_infoClass · 0.85
formatFunction · 0.85
buffer_protocolClass · 0.85
requestMethod · 0.80
initClass · 0.50
sizeMethod · 0.45
computeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected