Skip to main content

LinearElasticModel

Linear elastic model

LinearElasticModel_ is the class for modeling linear elastic material behavior. It is a subclass of AbstractSolidMechanicsModel_.

Linear elasticity is a simplification of the more general nonlinear theory of elasticity and a branch of continuum mechanics. In linear elasticity we assume that:

  • the strains are small
  • the relation between stress and strain tensor is linear.

These assumptions are reasonable for many engineering materials and engineering design scenarios. Linear elasticity is therefore used extensively in structural analysis and engineering design, often with the aid of finite element analysis.

In the case of linear elasticity the relation between stress and strain is given by:

σij=Cijklεkl\sigma_{ij} = C_{ijkl} \varepsilon_{kl}

where σij\sigma_{ij} and εij\varepsilon_{ij} are the second order symmetric tensors denoting the stress and strain tensor, respectively.

CC is the fourth-order stiffness tensor, which has both major and minor symmetries:

Major symmetries:

Cabcd=CcdabC_{abcd} = C_{cdab}

Minor symmetries:

Cabcd=Cbacd;Cabcd=CabdcC_{abcd} = C_{bacd}; C_{abcd}=C_{abdc}

In this way, CC has a total 21 number of independent elements.

Voigt notation

The Voigt notation for stress tensor is given by following:

σ={σ11σ22σ33σ12σ23σ13}\sigma = \left\{ \begin{array}{c} \sigma_{11}\\ \sigma_{22}\\ \sigma_{33}\\ \sigma_{12}\\ \sigma_{23}\\ \sigma_{13} \end{array}\right\}

The Voigt notation for strain tensor is given by following:

ε={ε11ε22ε332ε122ε232ε13}\varepsilon = \left\{ \begin{array}{c} \varepsilon_{11}\\ \varepsilon_{22}\\ \varepsilon_{33}\\ 2\varepsilon_{12}\\ 2\varepsilon_{23}\\ 2\varepsilon_{13} \end{array}\right\}

The fourth-order tensor CC is given by a symmetric 6×66 \times 6 matrix.

Learn from example

We will consider the following example to learn about the LinearElasticModel.

Click here to see the example
PROGRAM main
USE easifemBase
USE easifemClasses
USE easifemMaterials
IMPLICIT NONE
TYPE(LinearElasticModel_) :: obj
TYPE(ParameterList_) :: param

CALL FPL_INIT; CALL param%initiate()

CALL SetLinearElasticModelParam( &
& param=param, &
& ElasticityType=TypeElasticity%Isotropic, &
& PoissonRatio=0.3_DFP, &
& YoungsModulus=1.0D+6)

CALL obj%Initiate(param)
CALL obj%Display(msg="ISOTROPIC | PLANE-STRAIN |:")

CALL param%DEALLOCATE(); CALL FPL_FINALIZE
END PROGRAM main

Step 1 (configure)

In the above example, first we configure the LinearElasticModel by calling the SetLinearElasticModelParam method.

CALL SetLinearElasticModelParam( &
& param=param, &
& ElasticityType=TypeElasticity%Isotropic, &
& PoissonRatio=0.3_DFP, &
& YoungsModulus=1.0D+6)

Step 2 (initiate)

Now we will pass param to Initiate method to construct an instance of LinearElasticModel_.

CALL obj%Initiate(param)

Step 3 (display)

You can display the content of LinearElasticModel by calling the Display method.

CALL obj%Display(msg="ISOTROPIC | PLANE-STRAIN |:")

Further reading

Methods