Generic Linear Elastic Material¶
The generic linear elastic material is implemented in the classes
MaterialLinearElasticGeneric1
and
MaterialLinearElasticGeneric2
, and is defined solely by
the elastic stiffness tensor \(\mathbb{C}\), which has to be specified in
Voigt notation. In the case of
MaterialLinearElasticGeneric2
, additionally, a per-pixel
eigenstrain \(\bar{\boldsymbol{\varepsilon}}\) can be supplied. The
constitutive relation between the Cauchy stress \(\boldsymbol{\sigma}\) and
the small strain tensor \(\boldsymbol{\varepsilon}\) is given by
This implementation is convenient, as it covers all possible linear elastic
behaviours, but it is by far not as efficient as
MaterialLinearElastic1
for isotropic linear elasticity.
This law can be used in both small strain and finite strain calculations.
The following snippet shows how to use this law in python to implement isotropic linear elasticity:
Python Usage Example¶
C = np.array([[2 * mu + lam, lam, lam, 0, 0, 0],
[ lam, 2 * mu + lam, lam, 0, 0, 0],
[ lam, lam, 2 * mu + lam, 0, 0, 0],
[ 0, 0, 0, mu, 0, 0],
[ 0, 0, 0, 0, mu, 0],
[ 0, 0, 0, 0, 0, mu]])
eigenstrain = np.array([[ 0, .01],
[.01, 0]])
mat1 = muSpectre.material.MaterialLinearElasticGeneric1_3d.make(
cell, "material", C)
mat1.add_pixel(pixel)
mat2 = muSpectre.material.MaterialLinearElasticGeneric2_3d.make(
cell, "material", C)
mat2.add_pixel(pixel, eigenstrain)