diff --git a/python/pybind11/py_aka_solid_mechanics_model.cc b/python/pybind11/py_aka_solid_mechanics_model.cc index 0e00099c1..155ae6678 100644 --- a/python/pybind11/py_aka_solid_mechanics_model.cc +++ b/python/pybind11/py_aka_solid_mechanics_model.cc @@ -1,99 +1,98 @@ /* -------------------------------------------------------------------------- */ #include "py_aka_array.hh" /* -------------------------------------------------------------------------- */ #include #include /* -------------------------------------------------------------------------- */ #include #include #include /* -------------------------------------------------------------------------- */ namespace py = pybind11; /* -------------------------------------------------------------------------- */ namespace akantu { /* -------------------------------------------------------------------------- */ #define def_deprecated(func_name, mesg) \ def(func_name, [](py::args, py::kwargs) { AKANTU_ERROR(mesg); }) #define def_function_nocopy(func_name) \ def(#func_name, \ [](SolidMechanicsModel & self) -> decltype(auto) { \ return self.func_name(); \ }, \ py::return_value_policy::reference) #define def_function(func_name) \ def(#func_name, [](SolidMechanicsModel & self) -> decltype(auto) { \ return self.func_name(); \ }) /* -------------------------------------------------------------------------- */ [[gnu::visibility("default")]] void register_solid_mechanics_model(py::module & mod) { py::class_(mod, "SolidMechanicsModelOptions") .def(py::init(), py::arg("analysis_method") = _explicit_lumped_mass); py::class_(mod, "SolidMechanicsModel") .def(py::init(), py::arg("mesh"), py::arg("spatial_dimension") = _all_dimensions, py::arg("id") = "solid_mechanics_model", py::arg("memory_id") = 0, py::arg("model_type") = ModelType::_solid_mechanics_model) .def("initFull", [](SolidMechanicsModel & self, const SolidMechanicsModelOptions & options) { self.initFull(options); }, py::arg("_analysis_method") = SolidMechanicsModelOptions()) .def("initFull", [](SolidMechanicsModel & self, const AnalysisMethod & _analysis_method) { self.initFull(SolidMechanicsModelOptions(_analysis_method)); }, py::arg("_analysis_method")) .def_deprecated("applyDirichletBC", "Deprecated: use applyBC") .def("applyBC", [](SolidMechanicsModel & self, BC::DirichletFunctor & func, const std::string & element_group) { self.applyBC(func, element_group); }) .def("applyBC", [](SolidMechanicsModel & self, BC::NeumannFunctor & func, const std::string & element_group) { self.applyBC(func, element_group); }) .def("setTimeStep", &SolidMechanicsModel::setTimeStep, py::arg("time_step"), py::arg("solver_id") = "") .def("getEnergy", py::overload_cast( &SolidMechanicsModel::getEnergy), py::arg("energy_id")) .def_function(assembleStiffnessMatrix) .def_function(assembleInternalForces) .def_function(getStableTimeStep) .def_function_nocopy(getExternalForce) .def_function_nocopy(getDisplacement) .def_function_nocopy(getPreviousDisplacement) .def_function_nocopy(getIncrement) .def_function_nocopy(getMass) .def_function_nocopy(getVelocity) .def_function_nocopy(getAcceleration) .def_function_nocopy(getInternalForce) .def_function_nocopy(getBlockedDOFs) - .def_function_nocopy(getIncrementFlag) .def_function_nocopy(getMesh) .def("dump", py::overload_cast<>(&SolidMechanicsModel::dump)) .def("dump", py::overload_cast(&SolidMechanicsModel::dump)) .def("dump", py::overload_cast( &SolidMechanicsModel::dump)) .def("dump", py::overload_cast( &SolidMechanicsModel::dump)); } } // namespace akantu