amfe.material module

Module for material handling withing the FE context.

Up to now, only Hyperelastic materials are implemented. Hyperelastic Materials are Materials, where the constitutive law can be expressed such, that the second Piola-Kirchhoff stress tensor S is a function of the Green-Lagrange strain tensor E. This computation is carried out in this module.

class amfe.material.HyperelasticMaterial[source]

Bases: object

Base class for hyperelastic material.

S_Sv_and_C(E)[source]

Compute 2nd Piola Kirchhoff stress tensor in matrix form and voigt notation as well as material tangent modulus.

Parameters:E (ndarray) – Green-Lagrange strain tensor, shape: (3,3)
Returns:
  • S (ndarray) – 2nd Piola Kirchhoff stress tensor in matrix representation, shape: (3,3)
  • Sv (ndarray) – 2nd Piola Kirchhoff stress tensor in voigt notation, shape: (6,)
  • C_SE (ndarray) – tangent moduli between Green-Lagrange strain tensor and 2nd Piola Kirchhoff stress tensor, shape (6,6)
S_Sv_and_C_2d(E)[source]

Compute 2nd Piola Kirchhoff stress tensor in matrix form and voigt notation as well as material tangent modulus for 2D-Problems.

Parameters:E (ndarray) – Green-Lagrange strain tensor, shape: (2,2)
Returns:
  • S (ndarray) – 2nd Piola Kirchhoff stress tensor in matrix representation, shape: (2,2)
  • Sv (ndarray) – 2nd Piola Kirchhoff stress tensor in voigt notation, shape: (3,)
  • C_SE (ndarray) – tangent moduli between Green-Lagrange strain tensor and 2nd Piola Kirchhoff stress tensor, shape (3,3)

Notes

The result is dependent on the the option plane stress or plane strain. Take care to choose the right option!

__init__()[source]
class amfe.material.KirchhoffMaterial(E=210000000000.0, nu=0.3, rho=10000.0, plane_stress=True, thickness=1.0)[source]

Bases: amfe.material.HyperelasticMaterial

Kirchhoff-Material that mimicks the linear elastic behavior.

The strain energy potential is

\[W(E) = \frac{\lambda}{2} \mathrm{tr}\,(\mathbf{E})^2 + \ \mu \cdot \mathrm{tr}\,(\mathbf{E}^2)\]
with:

\(W\) = strain energy potential

\(\lambda\) = first Lamé constant: \(\lambda = \frac{\nu E}{(1+\nu)(1-2\nu)}\)

\(\mu\) = second Lamé constant: \(\mu = \frac{E}{2(1+\nu)}\)

\(\mathbf{E}\) = Green-Lagrange strain tensor

S_Sv_and_C(E)[source]
S_Sv_and_C_2d(E)[source]
__init__(E=210000000000.0, nu=0.3, rho=10000.0, plane_stress=True, thickness=1.0)[source]
Parameters:
  • E (float) – Young’s modulus
  • nu (float) – Poisson’s ratio
  • rho (float) – Density of the material.
  • plane_stress (bool, optional) – flat if plane stress or plane strain is chosen, if a 2D-problem is considered
  • thickness (float) – Thickness of the material, if 2D-prolbem is considered
Returns:

Return type:

None

amfe.material.LinearMaterial

alias of KirchhoffMaterial

class amfe.material.NeoHookean(mu, kappa, rho, plane_stress=False, thickness=1.0)[source]

Bases: amfe.material.HyperelasticMaterial

Neo-Hookean hyperelastic material. It is the same material as the Mooney- Rivlin material with constant A01=0.

The Neo-Hookean material has the strain energy potential:

\[W(J_1, J_3) = \frac{\mu}{2}(J_1-3) + \frac{\kappa}{2}(J_3 - 1)^2\]
with:

\(W\) = strain energy potential

\(J_1\) = first deviatoric strain invariant

\(J_3\) = third deviatoric strain invariant (determinant of elastic deformation gradient \(\mathbf{F}\))

\(\mu\) = initial shear modulus of the material

\(\kappa\) = bulk modulus (material incompressibility parameter)

S_Sv_and_C(E)[source]
S_Sv_and_C_2d(E)[source]
__init__(mu, kappa, rho, plane_stress=False, thickness=1.0)[source]
class amfe.material.MooneyRivlin(A10, A01, kappa, rho, plane_stress=False, thickness=1.0)[source]

Bases: amfe.material.HyperelasticMaterial

Mooney-Rivlin hyperelastic material

The Mooney-Rivlin material has the strain energy potential:

\[W(J_1, J_2, J_3) = A_{10}(J_1-3) + A_{01}(J_2 - 3) + \frac{\kappa}{2}(J_3 - 1)^2\]
with:

\(W\) = strain energy potential

\(J_1\) = first deviatoric strain invariant

\(J_2\) = second deviatoric strain invariant

\(J_3\) = third deviatoric strain invariant (determinant of elastic deformation gradient \(\mathbf{F}\))

\(A_{10}, A_{01}\) = material constants characterizing the deviatoric deformation of the material

\(\kappa\) = bulk modulus (material incompressibility parameter)

S_Sv_and_C(E)[source]
S_Sv_and_C_2d(E)[source]
__init__(A10, A01, kappa, rho, plane_stress=False, thickness=1.0)[source]
Parameters:
  • A10 (float) – first material constant for deviatoric deformation of material.
  • A01 (float) – second material constant for deviatoric deformation of material.
  • kappa (float) – bulk modulus of material.
  • rho (float) – density of the material.
  • plane_stress (bool, optional) – flag for plane stress or plane strain, preset = False
  • thickness (float) – Thickness of the material, if 2D-prolbem is considered.
Returns:

Return type:

None