Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
pasqualeferr94 authored May 27, 2024
1 parent cd77e92 commit 000dd1b
Showing 1 changed file with 19 additions and 12 deletions.
31 changes: 19 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```
Expand All @@ -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 :
Expand All @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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].

0 comments on commit 000dd1b

Please sign in to comment.