Linear Elasticity Problem
Summary
Solves a 3D linear elasticity problem for the deformation of a mult-material cantiliver beam. This example is based on MFEM Example 2.
Description
This problem solves a linear elasticity problem for small deformations with strong form:
where Einstein notation for summation over repeated indices has been used, and the pull-down force is given by
In this example, the stress/strain relation is taken to be isotropic, such that
In this example, we solve this using the weak form
where
Material Parameters
In this example, the cantilever beam is comprised of two materials; a stiffer material on the block with domain attribute 1, and a more flexible material defined on the block with domain attribute 2. These materials are parametrised with different values for the Lamé parameters, and , on the two domains.
The two Lamé parameters can be expressed in terms of the Young's modulus and the Poisson ratio in each material, using
Example File
[Mesh]
type = MFEMMesh
file = gold/beam-tet.mesh
dim = 3
uniform_refine = 2
displacement = "displacement"
[]
[Problem]
type = MFEMProblem
[]
[FESpaces]
[H1FESpace]
type = MFEMVectorFESpace
fec_type = H1
fec_order = FIRST
range_dim = 3
ordering = "vdim"
[]
[]
[Variables]
[displacement]
type = MFEMVariable
fespace = H1FESpace
[]
[]
[BCs]
[dirichlet]
type = MFEMVectorDirichletBC
variable = displacement
boundary = '1'
values = '0.0 0.0 0.0'
[]
[pull_down]
type = MFEMVectorBoundaryIntegratedBC
variable = displacement
boundary = '2'
values = '0.0 0.0 -0.01'
[]
[]
[Materials]
[Rigidium]
type = MFEMGenericConstantMaterial
prop_names = 'lambda mu'
prop_values = '50.0 50.0'
block = 1
[]
[Bendium]
type = MFEMGenericConstantMaterial
prop_names = 'lambda mu'
prop_values = '1.0 1.0'
block = 2
[]
[]
[Kernels]
[diff]
type = MFEMLinearElasticityKernel
variable = displacement
lambda = lambda
mu = mu
[]
[]
[Preconditioner]
[boomeramg]
type = MFEMHypreBoomerAMG
l_max_its = 500
l_tol = 1e-8
print_level = 2
[]
[]
[Solver]
type = MFEMHyprePCG
#preconditioner = boomeramg
l_max_its = 5000
l_tol = 1e-8
l_abs_tol = 0.0
print_level = 2
[]
[Executioner]
type = MFEMSteady
device = "cpu"
[]
[Outputs]
[ParaViewDataCollection]
type = MFEMParaViewDataCollection
file_base = OutputData/LinearElasticity
vtk_format = ASCII
[]
[]
(test/tests/kernels/linearelasticity.i)