-
Notifications
You must be signed in to change notification settings - Fork 23
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
Camille-K
wants to merge
139
commits into
SofaDefrost:DevPlasticity
Choose a base branch
from
Camille-K:DevPlasticity
base: DevPlasticity
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains 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
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
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