From 73f0fb5e64cf284ff15406334e889fd67342f217 Mon Sep 17 00:00:00 2001 From: koutrasc Date: Wed, 13 Nov 2024 16:43:34 +0100 Subject: [PATCH 1/3] constant force rebase main Signed-off-by: koutrasc --- src/Mandos/Core/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mandos/Core/CMakeLists.txt b/src/Mandos/Core/CMakeLists.txt index 8d247fd5..1278719d 100644 --- a/src/Mandos/Core/CMakeLists.txt +++ b/src/Mandos/Core/CMakeLists.txt @@ -98,7 +98,7 @@ set(SOURCES # spring.cpp ) -add_library(Core ${HEADERS} ${SOURCES}) +add_library(Core ${HEADERS} ${SOURCES} "Energies/ConstantForce.cpp") # Add the src directory as the include directory. Includes should be added as target_include_directories( -- GitLab From d2954a284f96574d3f6af9b91ed3502d861df0eb Mon Sep 17 00:00:00 2001 From: koutrasc Date: Mon, 9 Dec 2024 16:44:06 +0100 Subject: [PATCH 2/3] fixed initialization of Cosserat rod Signed-off-by: koutrasc --- bindings/Mandos/python/RigidBody.cpp | 36 ++++++++++++++++++- bindings/Mandos/python/RigidBody.hpp | 9 +++++ src/Mandos/Core/CMakeLists.txt | 2 +- .../Core/Energies/CosseratRodEnergy.hpp | 15 ++++++++ 4 files changed, 60 insertions(+), 2 deletions(-) diff --git a/bindings/Mandos/python/RigidBody.cpp b/bindings/Mandos/python/RigidBody.cpp index 4d03a557..bfd441f6 100644 --- a/bindings/Mandos/python/RigidBody.cpp +++ b/bindings/Mandos/python/RigidBody.cpp @@ -129,7 +129,11 @@ void wrapRigidBody(::py::module_ &m) .def("clear_fixing", &RigidBodyCloud3D::clearFixing) .def("fixed_dof_vector", &RigidBodyCloud3D::getFixedDofVector); - ::py::class_(m, "CosseratRod").def("set_parameters", &CosseratRod::setParameters); + ::py::class_(m, "CosseratRod") + .def("set_parameters", &CosseratRod::setParameters) + .def_property("Ks", &CosseratRod::getKs, &CosseratRod::setKs) + .def_property("stiffness_tensor", &CosseratRod::getStiffnessTensor, &CosseratRod::setStiffnessTensor) + .def_property("cosserat_stiffness", &CosseratRod::getCosseratStiffness, &CosseratRod::setCosseratStiffness); } void CosseratRod::setParameters(const std::vector &Ks, @@ -158,6 +162,36 @@ void CosseratRod::setParameters(const std::vector &Ks, m_cosseratRodEnergy.setParameters(indices, listL0, Ks, cosseratStiffness, stiffnessTensor); } +const std::vector &CosseratRod::getKs() const +{ + return m_cosseratRodEnergy.getKs(); +} + +void CosseratRod::setKs(std::vector &ks) +{ + m_cosseratRodEnergy.setKs(ks); +} + +const std::vector &CosseratRod::getStiffnessTensor() const +{ + return m_cosseratRodEnergy.getStiffnessTensor(); +} + +void CosseratRod::setStiffnessTensor(std::vector &stiffnessTensor) +{ + m_cosseratRodEnergy.setStiffnessTensor(stiffnessTensor); +} + +const std::vector &CosseratRod::getCosseratStiffness() const +{ + return m_cosseratRodEnergy.getCosseratStiffness(); +} + +void CosseratRod::setCosseratStiffness(std::vector &cosseratStiffness) +{ + m_cosseratRodEnergy.setCosseratStiffness(cosseratStiffness); +} + template RigidBody3D::RigidBody3D(core::SimulationObjectHandle handle) : m_handle(handle) diff --git a/bindings/Mandos/python/RigidBody.hpp b/bindings/Mandos/python/RigidBody.hpp index adc41d32..7118db76 100644 --- a/bindings/Mandos/python/RigidBody.hpp +++ b/bindings/Mandos/python/RigidBody.hpp @@ -25,6 +25,15 @@ struct CosseratRod { void setParameters(const std::vector &Ks, const std::vector &cosseratStiffness, const std::vector &stiffnessTensor); + + const std::vector &getKs() const; + void setKs(std::vector &ks); + + const std::vector &getStiffnessTensor() const; + void setStiffnessTensor(std::vector &stiffnessTensor); + + const std::vector &getCosseratStiffness() const; + void setCosseratStiffness(std::vector &cosseratStiffness); mandos::core::CosseratRodEnergy &m_cosseratRodEnergy; mandos::core::MechanicalState &m_mstate; diff --git a/src/Mandos/Core/CMakeLists.txt b/src/Mandos/Core/CMakeLists.txt index 1278719d..8d247fd5 100644 --- a/src/Mandos/Core/CMakeLists.txt +++ b/src/Mandos/Core/CMakeLists.txt @@ -98,7 +98,7 @@ set(SOURCES # spring.cpp ) -add_library(Core ${HEADERS} ${SOURCES} "Energies/ConstantForce.cpp") +add_library(Core ${HEADERS} ${SOURCES}) # Add the src directory as the include directory. Includes should be added as target_include_directories( diff --git a/src/Mandos/Core/Energies/CosseratRodEnergy.hpp b/src/Mandos/Core/Energies/CosseratRodEnergy.hpp index 4ce99f42..dd70919e 100644 --- a/src/Mandos/Core/Energies/CosseratRodEnergy.hpp +++ b/src/Mandos/Core/Energies/CosseratRodEnergy.hpp @@ -81,6 +81,21 @@ public: return m_rotationDamping; } + inline void setKs(std::vector &ks) + { + m_Ks = ks; + } + + inline void setStiffnessTensor(std::vector &stiffnessTensor) + { + m_stiffnessTensor = stiffnessTensor; + } + + inline void setCosseratStiffness(std::vector &cosseratStiffness) + { + m_cosseratStiffness = cosseratStiffness; + } + private: // Conectivity Eigen::Matrix m_indices; -- GitLab From 75b6596c0511177ae7968ab40dc1d389be495c3b Mon Sep 17 00:00:00 2001 From: koutrasc Date: Fri, 13 Dec 2024 13:42:10 +0100 Subject: [PATCH 3/3] fixed formatting Signed-off-by: koutrasc --- bindings/Mandos/python/RigidBody.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bindings/Mandos/python/RigidBody.cpp b/bindings/Mandos/python/RigidBody.cpp index bfd441f6..3ffecdc7 100644 --- a/bindings/Mandos/python/RigidBody.cpp +++ b/bindings/Mandos/python/RigidBody.cpp @@ -133,7 +133,7 @@ void wrapRigidBody(::py::module_ &m) .def("set_parameters", &CosseratRod::setParameters) .def_property("Ks", &CosseratRod::getKs, &CosseratRod::setKs) .def_property("stiffness_tensor", &CosseratRod::getStiffnessTensor, &CosseratRod::setStiffnessTensor) - .def_property("cosserat_stiffness", &CosseratRod::getCosseratStiffness, &CosseratRod::setCosseratStiffness); + .def_property("cosserat_stiffness", &CosseratRod::getCosseratStiffness, &CosseratRod::setCosseratStiffness); } void CosseratRod::setParameters(const std::vector &Ks, -- GitLab