Source code for modelos.elastic
import numpy as np
from abc import ABC
from .tensortypes import Matriz6x6
[docs]
class Elastic(ABC):
young: float
poisson: float
@property
def K(self) -> float:
"""Modulo de elasticidade bulk volumetrica (`K`)
.. figure:: images/Kb.png
"""
return self.young / (3 * (1 - 2 * self.poisson))
@property
def Me(self) -> float:
"""Modulo de elasticidade uniaxial `Me` (oedometrica).
.. figure:: images/Me.png
"""
E, v = self.young, self.poisson
return E * (1 - v) / ((1 + v) * (1 - 2 * v))
@property
def Ge(self) -> float:
"""Modulo de elasticidade cisalhante `Ge`.
.. figure:: images/Ge.png
"""
E, v = self.young, self.poisson
return E / (2 * (1 + v))
@property
def Le(self) -> float:
"""Constante de Lamme da elasticidade (`Le`).
.. figure:: images/Le.png
"""
M, G = self.Me, self.Ge
return M - 2 * G
[docs]
def matriz_elastica(self) -> Matriz6x6:
"""Retorna a matriz de rigidez elastica `[De]`.
.. figure:: images/De.png
"""
M = self.Me
G = self.Ge
L = self.Le
return np.array(
[
[M, L, L, 0, 0, 0],
[L, M, L, 0, 0, 0],
[L, L, M, 0, 0, 0],
[0, 0, 0, G, 0, 0],
[0, 0, 0, 0, G, 0],
[0, 0, 0, 0, 0, G],
]
)