Cantilever CSM Benchmark

1. Introduction

In order to evaluate the PERFORMANCE of the solid-structure interaction solver of FEEL ++, we realize here a benchmark on the deformation of an elastic structure, initially the Cantilever problem, we will simulate a simple cantilevered beam with a fixed end and a load applied to the other end. We will compare the obtained results with different meshes and a different polynomial degree in order to evaluate the time resolution.

2. Running the model

The configuration file are in benchmarks/modules/csm/examples/cantilever. Some useful commande lines:

To executing Cantilever testcase

mpirun -np 4 feelpp_toolbox_solid --case "github:{repo:toolbox,path:examples/modules/csm/pages/cantilever}"

Some useful commande lines:

To edit the mesh step for 0.5 we must add

--gmsh.hsize= 0.5

To edit polynomial degree we must add

--case.discretization=P1

3. The model

3.1. Notations and units

Notation

Quantity

Unit

\(\boldsymbol{\eta}_s\)

displacement

\(m\)

\(\rho_s\)

density

\(kg.m^{-3}\)

\(\lambda_s\)

first Lamé coefficients

\(N.m^{-2}\)

\(\mu_s\)

second Lamé coefficients

\(N.m^{-2}\)

\(E_s\)

Young modulus

\(kg.m^{-1}.s^{-2}\)

\(\nu_s\)

Poisson’s ratio

dimensionless

\(\boldsymbol{F}_s\)

deformation gradient

\(\boldsymbol{\Sigma}_s\)

second Piola-Kirchhoff tensor

\(f_s^t\)

body force

3.2. Equations and Linear elasticity

In this case we will use the following equations :

  • strain tensor \(\boldsymbol{F}_s = \boldsymbol{I} + \nabla \boldsymbol{\eta}_s\)

  • Cauchy-Green tensor \(\boldsymbol{C}_s = \boldsymbol{F}_s^{T} \boldsymbol{F}_s\)

  • Green-Lagrange tensor

\begin{align} \boldsymbol{E}_s &= \frac{1}{2} \left( \boldsymbol{C}_s - \boldsymbol{I} \right) \\ &= \underbrace{\frac{1}{2} \left( \nabla \boldsymbol{\eta}_s + \left(\nabla \boldsymbol{\eta}_s\right)^{T} \right)}_{\boldsymbol{\epsilon}_s} + \underbrace{\frac{1}{2} \left(\left(\nabla \boldsymbol{\eta}_s\right)^{T} \nabla \boldsymbol{\eta}_s \right)}_{\boldsymbol{\gamma}_s} \end{align}

The second Newton’s law allows us to define the fundamental equation of the solid mechanic, in this problem, we try to determine the displacement \(\boldsymbol{\eta}_s\), which verifies the following equation:

\[ \rho^*_{s} \frac{\partial^2 \boldsymbol{\eta}_s}{\partial t^2} - \nabla \cdot \left(\boldsymbol{F}_s \boldsymbol{\Sigma}_s\right) = \boldsymbol{f}^t_s\]
\[\begin{align} \boldsymbol{F}_s &= \text{Identity} \\ \boldsymbol{\Sigma}_s &=\lambda_s tr( \boldsymbol{\epsilon}_s)\boldsymbol{I} + 2\mu_s\boldsymbol{\epsilon}_s \end{align}\]

The Lamé coefficients are deducing from the Young’s modulus \(E_s\) and the Poisson’s ratio \(\nu_s\) of the material we work on and can be express

\[\lambda_s = \frac{E_s\nu_s}{(1+\nu_s)(1-2\nu_s)} \hspace{0.5 cm} , \hspace{0.5 cm} \mu_s = \frac{E_s}{2(1+\nu_s)}\]

4. Geometry

We consider a solid structure, composed of an elastic bar, which is fixed on one side that we note \(\Gamma_{L}\) (F:fixed) resulting in the displacement \(\boldsymbol{\eta}_s=0\) on the edges of \(\Omega_s\) and a load applied to the other end that we note \(\Gamma_{L}=\partial\Omega_s \backslash \Gamma_F\).

The geometry can be represented as follows:

CSM Geometry
Figure 1 : Geometry of the Cantilever CSM benchmark.

In this case test, we will observe the behavior of \(A\), during this simulation, we will obtain the displacement of \(A\), on the axis \(x\) and \(y\) , when the elastic structure is subjected to its own weight and a hanging weight to her.

5. Input parameters

5.1. Boundary conditions

We set

  • On \(\Gamma_{F}\),a condition that imposes this boundary to be fixed : \(\boldsymbol{\eta}_s=0\) (ps: \(\boldsymbol{\eta}_s\) is the displacement )

  • On \(\Gamma_{L}\), a force will be applied on the other end of the beam.

5.2. Discretization

To solve this problem we will use the Feel++ Toolboxes that use Finite Elements Method, with Lagrangian elements of order \(N\) to discretize space.

There are several different Toolboxes available, such as: CSM, CFD, Heat Transfer, etc. Of these, we need the CSM (Computational Solid Mechanics) Toolbox.

It is also necessary to define the type of the simulation. For example “Elasticity” is generally applied in case of metals, and “Hyper-Elasticity” for plastics.

5.3. Solvers

Here are the different solvers (linear) used during results acquisition.

Table 1. KSP configuration

type

cg

relative tolerance

1e-8

max iteration

1000

reuse preconditioner

true

Table 2. Preconditioner configuration

type

gamg

package

PETSC

  • Regarding the resolution, we used the conjugate gradient method with the mutligrille preconditioner, because we are working on a linear system.

5.4. Parameters

The following table displays the material properties of the model.We will use the following data:

Table 3. Fixed and Variable Input Parameters

Name

Description

Nominal Value

Units

\(g\)

gravitational constant

2

\(m / s^2\)

\(l\)

elastic structure length

\(40\)

\(m\)

\(h\)

elastic structure height

\(8\)

\(m\)

\(E_s\)

Young’s modulus

\(206.84277e9\)

\(kg / ms^2\)

\(\nu_s\)

Poisson’s ratio

\(0.3\)

dimensionless

\(\rho_s\)

density

\(7870\)

\(kg/ m^3\)

6. Outputs

As described before, in this problem, we try to determine the displacement \(\boldsymbol{\eta}_s\) on \(\Omega_s\), which verifies the following equation:

\[\rho_s \frac{\partial^2\boldsymbol{\eta}_s}{\partial t^2} - \nabla \cdot (\boldsymbol{F}_s\boldsymbol{\Sigma}_s) = \boldsymbol{f}^t_s\]

Add to this, the execution time as well as the degree of freedom and the number of element generated by the different steps of meshes and we will compare at the end the results with different meshes and a different polynomial degree in order to evaluate the time resolution.

7. Results

7.1. CSM cantilever P1

Table 4. Results for cantilever P1

Maillage

\(N_{elt}\)

\(N_{dof}\)

Number of iteration

Execution time \(s\)

Relative time

1.0

6356

5127

13

0.310092

1

0.9

8949

6831

15

0.464755

1.4987648827

0.8

12143

8838

23

0.662687

1.4258846059

0.7

19318

13353

25

1.06298

1.6040453487

0.6

28351

18921

20

1.56676

1.4739317767

0.5

47959

30264

18

3.11404

1.9875666982

0.4

92816

55500

21

5.34246

1.7156041669

0.3

221419

124992

33

15.1014

2.8266753518

0.2

732051

389994

31

53.2594

3.526785596

The following graph shows the number of element and degree of freedom depending on the mesh step during a performance test with a P1 polynomial degree using the FEEL ++ solver, applied to the Cantilever test case. A performance test was launched with a mesh size \(h = 0.1\) less at each step. Note that, more the mesh is refined more the number of element increases and the degree of freedom also, which also leads to an increase in the number of equations to solve.

The data of a numerical problem usually depend on experimental measurements, that’s whay, in general, it can be said that, the conditioning associated with a problem is a measure of the difficulty of a numerical calculation of the problem. A problem with a low conditioning is Well packaged and a problem with high conditioning is said to be poorly conditioned.

The following graph shows the number of iteration according to the mesh step \(h\), which evolves in an irregular way, because the condition number is linked to the mesh size (as h decreases, the condition number increases) and affects the convergence of iterative solvers (it inscreases with the condition number), that’s explaine why the number of iterations increases by refining the mesh.

The next graph shows the execution time and the relative time according to the mesh step \(h\). We note that the execution time increases by refining the mesh this is due to the generated element numbers and therefore the number of equation to solve, and we see it well on the curve of relative time that evolves almost with the execution time, which will allow us to approximately the time of the next mesh, or the time evolution of the resolution in function of the mesh step.

7.2. CSM cantilever P2

Table 5. Results for cantilever P2
Maillage \(N_{elt}\) \(N_{dof}\) Number of iteration Execution time \(s\) Relative time

1.0

6296

32910

36

7.13087

1

0.9

8949

45246

40

10.5747

1.4829466811

0.8

12168

60006

32

14.1339

1.3365769242

0.7

19413

92922

36

23.6667

1.6744635239

0.6

28353

133275

33

35.0736

1.4819810113

0.5

47959

218940

34

67.1934

1.915782811

0.4

93190

413373

34

136.305

2.0285474466

0.3

221419

954552

48

408.4

2.9962217087

0.25

377220

1603095

60

791.143

1.9371767875

The following figures show the results of table above on graphs for good realize that refining the mesh, the number of element and degree of freedom increase, and it is practically the same case as that with polynomial degree P1. As to the number of iteration evolve differently according to \(h\), but in the seems to increase too.

The next graph shows the execution time and the relative time according to the mesh step \(h\). We note that the execution time increases by refining the mesh this is due to the generated element numbers and therefore the number of equation to solve, and we see it well on the curve of relative time that evolves almost with the execution time, which will allow us to approximately the time of the next mesh, or the time evolution of the resolution in function of the mesh step.

All the files used for this case can be found in this

Conclusion

To obtain these data, we used several refinements of meshes and different polynomial approximations to obtain the time of resolution of each one.

As expected from a theoretical point of view, the mesh size has a considerable influence on the results states, as you’ve seen it plays a very important role on the time of performance.

We chose a simplified model for the project, which from this done well as part of the proposed study. Finally, with these results we could see that the solver Feel++ has a good calculation speed.

8. References

References for this benchmark