Skip to content

Latest commit

 

History

History

elasticity

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

linear elasticity

Here, we focus on linear solid mechanics, which involves analyzing the behavior of elastic bodies through a system of partial differential equations (PDEs) that govern their deformation. The solver at hand is specifically designed for 2D unstructured mesh problems and operates as a linear elasticity solver utilizing the finite element method (FEM).

The primary objective of the solver is to determine the vector solution for the unknown displacements within the elastic body. By utilizing FEM, it efficiently searches for a solution that satisfies the given boundary conditions and accurately captures the deformation characteristics of the system. This solver serves as a valuable tool for investigating and understanding the mechanical behavior of elastic materials in various engineering applications.

Mathematics

Problem description

Under small elastic deformation, the steady 2D elastic deformation equation (linear elastic system) on domain $\Omega$ reads

$$-\nabla\cdot\sigma(\mathbf{x})=\mathbf{f}(\mathbf{x}) \quad \mathbf{x}\in\Omega $$

here, $\sigma(\mathbf{x})$ is stress tensor, $\mathbf{f}(\mathbf{x})$ is the body force per unit volume. The stress tensor $\sigma(\mathbf{x})$ under isotropic elastic conditions is given by

$$ \sigma(\mathbf{x}) = \lambda(\nabla\cdot\mathbf{u}(\mathbf{x}))\mathbb{I} + \mu (\nabla\mathbf{u}(\mathbf{x}) + \left(\nabla\mathbf{u}(\mathbf{x})\right)^\text{T}) $$

here, $\lambda\in\mathbb{R}^{+}$ and $\mu\in\mathbb{R}^{+}$ are the Lame's elasticity parameters for the homogeneous material, $\mathbb{I}$ is the identity tensor, and $\mathbf{u}(\mathbf{x})$ is the displacement field vector. This governing PDE iis also knows as Navier's equation.

Variational formulation

Without entering into the details, the variational formulation for the Navier's equation reads

$$\int_{\Omega} \lambda \nabla \cdot \mathbf{u}(\mathbf{x}) \nabla \cdot \mathbf{v}(\mathbf{x}) + 2\mu\varepsilon(\mathbf{u}(\mathbf{x})):\varepsilon(\mathbf{u}(\mathbf{x})) - \int_{\Omega}\mathbf{f}(\mathbf{x})\cdot{\mathbf{v}(\mathbf{x})} - \int_{\partial\Omega_N} \mathbf{t}(\mathbf{x}) \cdot \mathbf{v}(\mathbf{x}) = 0 $$

here, $\mathbf{t}(\mathbf{x})$ is the traction vector imposed on Neumann boundary $\Omega_N$, and $\varepsilon(\mathbf{u}(\mathbf{x})) = \varepsilon_{ij}(\mathbf{u}(\mathbf{x}))$ is the strain tensor given by

$$\varepsilon_{ij}(\mathbf{u}) = \frac{1}{2}(\frac{\partial{u}_i}{\partial{x}_j} + \frac{\partial{u}_j}{\partial{x}_i} )$$

The code

This XML configuration file is used for setting up an Elasticity problem simulation in ArcaneFEM. Below is a detailed explanation of each section in the configuration for one of the tests Test.bar.arc.

Mesh Configuration

The mesh configuration section specifies the mesh file to be used in the simulation:

<meshes>
  <mesh>
    <filename>bar.msh</filename>
  </mesh>
</meshes>
  • Mesh File: Defines the mesh file (bar.msh) to be used in the simulation. Note that this file should be compatible with version 4.1 .msh format from Gmsh.
FEM Configuration

The Finite Element Method (FEM) configuration is provided in the Test.bar.arc.

<fem>
  <result-file>test_elasticity_results.txt</result-file>
  <E>21.0e5</E>
  <nu>0.28</nu>
  <f2>-1.0</f2>
  <enforce-Dirichlet-method>Penalty</enforce-Dirichlet-method>
  <dirichlet-boundary-condition>
    <surface>left</surface>
    <u1>0.0</u1>
    <u2>0.0</u2>
  </dirichlet-boundary-condition>
</fem>

Let us explain this point wise

  • Result File: Specifies the file for validation test (OPTIONAL). Use only if you want to compare solutions

    <result-file>test_elasticity_results.txt</result-file>
  • Material Properties: The Young's Modulus (E) for the material, defined as 21.0e5. The Poisson's Ratio (nu) for the material, defined as 0.28.

    <E>21.0e5</E>
    <nu>0.28</nu>
  • Source Term (f2): The source term in Y direction hence (f2) in the PDE, set to -1.0.

    <f2>-1.0</f2>
  • Dirichlet Method: Specifies the method (Penalty) for enforcing Dirichlet boundary conditions. And the boundary condition on the specified surface (left) with given values for u1 and u2, which we set to 0 since the end is clamped.

    <enforce-Dirichlet-method>Penalty</enforce-Dirichlet-method>
    <dirichlet-boundary-condition>
      <surface>left</surface>
      <u1>0.0</u1>
      <u2>0.0</u2>
    </dirichlet-boundary-condition>
Post-Processing Configuration

The post-processing configuration is specified to control how and when results are saved:

<arcane-post-processing>
  <output-period>1</output-period>
  <format name="VtkHdfV2PostProcessor" />
  <output>
    <variable>U</variable>
  </output>
</arcane-post-processing>
  • Output Period: Sets the interval at which results are saved.

  • Format: Specifies the format for the output files (VtkHdfV2PostProcessor).

  • Output Variables: Lists the variables (U) which is the displacement vector to be included in the output.

Post Process

For post processing the Mesh0.hdf file is outputted (in output/depouillement/vtkhdfv2 folder), which can be read by PARAVIS. The output is of the $\mathbb{P}_1$ FE order (on nodes).

Tests available in this module

The tests are present in the form of .arc files with a prefix Test.:

Name Dimension Boundary Condition Solver Comment
bar 2D Clamped Dirichlet + Null flux
Body force (Source Term)
Default (PETSc) - Serves as validation test
bar.DirichletViaRowElimination 2D Clamped Dirichlet + Null flux
Body force (Source Term)
PETSc - Row Elimination for BC
- GMRES with ILU(0) Solver
bar.DirichletViaRowColumnElimination 2D Clamped Dirichlet + Null flux
Body force (Source Term)
PETSc - Row and Column Elimination for BC
- CG with AMG Solver
bar.traction 2D Clamped Dirichlet
Traction (Neumann)
Default (PETSc)