Module: Elastic
Contents
Module: Elastic#
- Name
mod_mupro_elastic
- Depends on
- Defined variables
None
- Defined types
Strain is NOT in voigt notation
The strain value in this module is NOT in voigt notation. The value of the strain are still as if it’s in tensor notation. The reason we have 6 component is to save memory space.
Defined Types#
type_mupro_ElasticContext#
Variables#
Variable |
Type |
Dimension |
Meaning |
---|---|---|---|
eigenstrain |
real64, pointer |
(6,Rn3,Rn2,Rn1) |
Eigenstrain |
strain |
real64 |
(6,z,y,x) |
Total strain |
displacement |
real64 |
(6,z,y,x) |
Displacement |
stress |
real64 |
(6,z,y,x) |
Stress |
energy |
real64 |
(6,z,y,x) |
Elastic Energy |
stiffness |
real64 |
(6,6) |
Elastic Stiffness |
filmMisfitStrain11 |
real64 |
- |
Epitaxial misfit strain \(\epsilon_{11}\) in thin film setup |
filmMisfitStrain22 |
real64 |
- |
Epitaxial misfit strain \(\epsilon_{22}\) in thin film setup |
filmMisfitStrain12 |
real64 |
- |
Epitaxial misfit strain \(\epsilon_{12}\) in thin film setup |
filmTopAppliedStress33 |
real64 |
- |
Applied stress \(\sigma_{33}\) on film surface in thin film setup |
filmTopAppliedStress23 |
real64 |
- |
Applied stress \(\sigma_{23}\) on film surface in thin film setup |
filmTopAppliedStress13 |
real64 |
- |
Applied stress \(\sigma_{13}\) on film surface in thin film setup |
bulkAppliedStrain |
real64 |
(6) |
Bulk strain constraints |
bulkAppliedStress |
real64 |
(6) |
Bulk stress constraints |
BC |
int32 |
- |
choice of bulk constraint, 1 for strain, 2 for stress |
Stiffness is in voigt notation
For convenience, the stiffness is expressed in voigt notation. The value of stiffness components in voigt notation are the same as their tensor counterparts, there is no multiplier between the conversion.
Procedures#
setup#
Link the user defined strain, stress, displacement, etc. arrays to the corresponding array used in the library. Then, perform some necessary setup before actually solve the equation.
call elasticContext%setup()
Important
setup must be called before the elastic solve subroutines.
solve#
Solve the mechanical equilibrium equation, get the strain, stress, and displacement distribution from the eigenstrain distribution.
call elasticContext%solve()