-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cd77e92
commit 000dd1b
Showing
1 changed file
with
19 additions
and
12 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,23 +9,26 @@ | |
* [Applications](#applications) | ||
|
||
## Introduction | ||
SofaViscoElastic is a plugin for the Software Open Architecture Framework (SOFA) which implements the fundamental linear viscoelastic constitutive laws applied to tetrahedral meshes. | ||
Viscoelasticity is a property of elastomeric materials that influences their mechanical behavior under dynamic conditions. In fact, viscoelastic constitutive equations are dependent on the stress/strain rate. At low stress/strain rates, a viscoelastic material behaves like a viscous liquid-like material, while at high stress/strain rates, the same material behaves like a Hookean solid. In fact, the simplest viscoelastic models are: | ||
SofaViscoElastic is a Software Open Architecture Framework (SOFA) plugin, which implements the fundamental linear viscoelastic constitutive laws applied to tetrahedral meshes. | ||
Viscoelasticity is a property of elastomeric materials that influences their mechanical behavior under dynamic conditions. Viscoelastic constitutive equations are dependent on the stress/strain rate. At low stress/strain rates, a viscoelastic material behaves like a viscous liquid-like material, while at high stress/strain rates, the same material behaves like a Hookean solid. The simplest viscoelastic models are: | ||
|
||
![Basic Models](./img/img1.png) | ||
|
||
These two models represent the basic unit that constitutes the viscoelastic materials. They are composed of an elastic part described by the spring symbol and a viscous one represented by the dashpot. | ||
Anyway, the Maxwell and the Kelvin-Voigt models describe the behavior of a few kinds of materials, like silly-putty, gels, etc. Furthermore, they are theoretical models that are not stable under creep (Maxwell) or stress relaxations (Kelvin-Voigt) conditions. | ||
Elastomers and rubbers are polymeric materials present in nature but are also used in several industrial applications. Many research fields are involved in developing and using new elastomeric materials and rubbers, such as soft robotics and surgical applications. For this reason, this plugin is indicated for users who want a realistic mechanical simulation of these materials afflicted by the viscoelastic effect. | ||
Anyway, the Maxwell and Kelvin-Voigt models describe the behavior of a few kinds of materials, like silly-putty and gels. Furthermore, they are unstable theoretical models under creep (Maxwell) or stress relaxations (Kelvin-Voigt) conditions. | ||
Elastomers and rubbers are polymeric materials in nature but are also used in several industrial applications. Many research fields are involved in developing and using new elastomeric materials and rubbers, such as soft robotics and surgical applications. For this reason, this plugin is indicated for users who want a realistic mechanical simulation of these materials afflicted by the viscoelastic effect. | ||
To describe their viscoelastic properties, different viscoelastic models have to be used, like the Standard Linear Solid (SLS) Maxwell/Kelvin-Voigt representation: | ||
|
||
![SLS Models](./img/img2.png) | ||
|
||
They add another spring in parallel (Maxwell representation) or in series (Kelvin-Voigt representation) to make the model stable under creep and stress relaxation and are excellent for describing viscoelastic polymer rheology. In the SofaViscoElastic plugin, 9 different viscoelastic models are presented. For more theoretical information the users can refer to the paper "Considering the viscoelastic effects in soft robotic modeling" by Ferrentino et al. submitted in Soft Robotic Journal (SORO). | ||
They add another spring in parallel (Maxwell representation) or in series (Kelvin-Voigt representation) to make the model stable under creep and stress relaxation and are excellent for describing viscoelastic polymer rheology. The SofaViscoElastic plugin presents 9 different viscoelastic models. For more theoretical information, users can refer to the paper "Considering the viscoelastic effects in soft robotic modeling" by Ferrentino et al., submitted in the Soft Robotic Journal (SORO). | ||
|
||
## Hysteresys | ||
The material models don't include hysteresis modeling, which will be added in future works. | ||
|
||
## Installation | ||
This plugin is available only for Ubuntu/Linux OS. The only dependency is the SOFA plugin "SofaPython3" (make sure it is installed). | ||
To install this plugin from the source the user has to download this folder and place it in: | ||
To install this plugin from the source, the user has to download this folder and place it in: | ||
``` | ||
$ /home/adminName/sofa/src/applications/plugins | ||
``` | ||
|
@@ -34,7 +37,7 @@ Then the user has to write this in the CMakeLists.txt present in the previous de | |
$ sofa_add_subdirectory(plugin SofaViscoElastic SofaViscoElastic) | ||
``` | ||
then recompile SOFA and it should start its installation. Enjoy! | ||
For any problem contact the author at this email: [email protected]. | ||
If you have any problems, please contact the author at [email protected]. | ||
|
||
## Python Functions and Bindings | ||
The principal function of this plugin is the so-called TethrahedronViscoelasticityFEMForceField which applies the viscoelastic constitutive law to the tetrahedral mesh uploaded in SOFA, the syntax in Python is the following : | ||
|
@@ -44,7 +47,7 @@ The principal function of this plugin is the so-called TethrahedronViscoelastici | |
The additional fields to fill in are: | ||
* template: related to the DOF expressed in the Mechanical Object in SOFA. | ||
* name: The name chosen by the user for the function (will appear in the SOFA simulation Graph) | ||
* materialName: The name of the viscoelastic model that the user wants to use, he can choose between: | ||
* materialname: The name of the viscoelastic model that the user wants to use, he can choose between: | ||
- MaxwellFirstOrder | ||
- KelvinVoigtFirstOrder | ||
- SLSMaxwellFirstOrder | ||
|
@@ -83,7 +86,7 @@ The user can choose these quantities: | |
P.S. The stresses are per Element not per Node. | ||
## Algorithm | ||
In Figure 4 of the paper, the SLS-Maxwell model of first order is used as an example to understand the algorithm used in this plugin. | ||
In this section are explained the principal steps of the algorithm. First of all the aim of the plugin is to calculate the deviatoric and hydrostatic part of the stress tensor. | ||
This section explains the principal steps of the algorithm. First, the plugin aims to calculate the deviatoric and hydrostatic parts of the stress tensor. | ||
The deviatoric part calculation derives from the stress balance on the springs-dashpot 3D model: | ||
|
||
![Stress balance](./img/equation1.PNG) | ||
|
@@ -98,11 +101,15 @@ Instead, the hydrostatic part of the stress tensor is calculated using this gene | |
|
||
![Fourth order elasticity tensor](./img/equation3.PNG) | ||
|
||
$E^{*}(t)$ is the so-called Prony series and it depends on the particular model of viscoelasticity considered. | ||
$E^{*}(t)$ is the so-called Prony series and depends on the particular model of viscoelasticity. | ||
For more details on the algorithm, please consult Section 3 of the paper. | ||
|
||
|
||
## Future works | ||
Visco-Hyperelastixcity will be added with Hysteresis modeling/parametrization. Stay updated! | ||
|
||
## Applications | ||
In the plugin are developed different example scenes in Python3. The examples show a cylindrical beam which are considering viscoelastic constitutive models and is undergoing a creep test and a stress relaxation test. | ||
The plugin is developed through the collaboration between the Brubotics lab of the VUB (Vrije Universiteit Brussel) University and the DEFROST team of the INRIA Institute in Lille. | ||
The plugin develops different example scenes in Python3. The examples show a cylindrical beam considering viscoelastic constitutive models and undergoing a creep test and a stress relaxation test. | ||
The plugin was developed in collaboration between the Brubotics lab of the VUB (Vrije Universiteit Brussel) University and the DEFROST team of the INRIA Institute in Lille. | ||
The authors of this plugin are looking for future collaborations for further developments. | ||
For other info please contact: [email protected]. |