Move experimental plasticity code to DevPlasticity#36
Open
Camille-K wants to merge 139 commits intoSofaDefrost:DevPlasticityfrom
Open
Move experimental plasticity code to DevPlasticity#36Camille-K wants to merge 139 commits intoSofaDefrost:DevPlasticityfrom
Camille-K wants to merge 139 commits intoSofaDefrost:DevPlasticityfrom
Conversation
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.
…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).
Fix compute violation
Also add mac os
Fix Windows compilation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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