Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move experimental plasticity code to DevPlasticity #36

Open
wants to merge 139 commits into
base: DevPlasticity
Choose a base branch
from

Conversation

Camille-K
Copy link

The plasticity model for Cosserat is still highly experimental and under development. The corresponding code is moved into a dedicated branch (DevPlasticity) until it is stable enough to be reintegrated

Camille Krewcun and others added 30 commits January 5, 2022 14:57
We provide a short description of each type of controller, together with
the expected structure for the corresponding scene graph. We also add in
comments in two example scenes the possibility to switch from a basic
insertion controller to an interactive one.
A test scene is also provided. Both the scene and the controller are
work in progress.
Until now, the plasticity parameters (yield stress, plastic modulus,
hardening coefficient) were define uniquely for all beam elements. This
corresponded to a prototyping step in the plastic model implementation.
With this commit, we introduce the possibility to define specific
parameters for each beam element.
Following the transition from the scenes/ folder to the python3/ folder,
we propagate previous changes to the new version of the file:
- Add documentation in comments
- Change the name of a method in the bending controller
- Add a new 'smooth' controller, aiming at getting closer to a real
catheter insertion
…ssible to take as input variables, the pre-calculated parameters of inertia instead of the MY and PR for the computation of the stiffness matrix.
…s, based on Legendre polynomials, with lengths different from 1.
…s, based on Legendre polynomials, with lengths different from 1.
Scenes involving the navigation of Cosserat beam elements are too
dependant on the implementation of a Cosserat plastic model to be
maintained at the moment (the plasticity model being under signifcant
refactoring). They could be reintroduced later when the model is
finalised.
For the semi-automatic generation of Cosserat model parameters
In the Cosserat mapping component, if the discretisation of the Cosserat
beams and/or the mapped frames changes dynamically (typically due to a
controller), the structure of the Jacobian matrix should be updated
accordingly. For instance, the structure of the Jacobian changes if a
frame is moved from one beam element to another.
In order to detect such changes dynamically, we implement a Callback
method in the DiscreteCosseratMapping component, in order to update the
Jacobian if d_curv_abs_section or d_curv_abs_frames change. We
additionaly check the status of d_componentState at the beginning of key
methods of the mapping, to effectively trigger the callback if the
component state is not valid (including if oen of the two mentioned
variables were changed). This way, we make sure that the component is
updated before its methods are used.
As the Cosserat plasticity model is still under experimental development
and significant refactoring, it has been removed in a dedicated branch
DevPlasticity. It should be merged again to master whenever it becomes
stable enough.
adagolodjo and others added 30 commits November 15, 2022 10:27
…efrost#58)

* Replace the deprecated sofa::type::vector3 by sofa::type::vec3

* Remove compilation warning.
The previous implementation of the attribution of a beam index to each
output frame did not take into account the possibity to define 0-length
beams (which can be useful, typically in the context of instrument
navigation simulation).
The new implementation takes into account this scenario and should not
be breaking (to be confirmed).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants