Source code for modelos.hardening
from abc import ABC, abstractmethod
from .funcs import vc
from .tensortypes import Vetor6x1
[docs]
class Hardening(ABC):
s: float = 0.0
"""Variavel interna de endurecimento do tipo tensao (`s`)
Por default, igual a zero: `s = 0`.
"""
[docs]
def dh(self, epsilonP: Vetor6x1) -> float:
"""Variacao da variavel interna de endurecimento do tipo
deformacao (`h`) em funcao do estado de deformacao plastica.
Por default, igual a zero: `dh = 0`.
.. figure:: images/dh_abs.png
"""
return 0.0
[docs]
def grad_h(self) -> Vetor6x1:
"""Calcula e retorna o vetor gradiente da variavel interna de endurecimento
do tipo deformacao (`h`) em funcao do estado de deformacao plastica.
Por default, igual a um vetor nulo: `grad_h = {0,0,0,0,0,0}`.
.. figure:: images/gradh_abs.png
"""
return vc([0, 0, 0, 0, 0, 0])
[docs]
def dsdh(self) -> float:
"""Calcula e retorna o modulo de endurecimento (`H`).
Definido como a derivada da variavel interna de endurecimento do tipo tensao
(`s`) em relacao a variavel interna de endurecimento do tipo deformacao (`h`).
Por default, igual a zero: `ds/dh = 0`.
.. figure:: images/dsdh_abs.png
"""
return 0.0
[docs]
def update_hardening(self, epsilonP: Vetor6x1) -> None:
"""Atualiza a variavel interna de endurecimento do tipo tensao (`s`) usando a
sua derivada
.. figure:: images/s_abs.png
"""
self.s += self.dsdh() * self.dh(epsilonP)