Sub-rotinas para materiais definidos pelo usuário (umat.f)¶
Fornece uma interface para a análise de deformação de materiais em geral, independentemente de serem elásticos, hiperelásticos ou elastoplásticos.
Para usar um material definido pelo usuário, primeiro configure !USER_MATERIAL no arquivo de entrada e informe as constantes de material necessárias; em seguida, crie as sub-rotinas uMatlMatrix e uUpdate.
(1) Sub-rotina para cálculo da matriz de rigidez¶
subroutine uMatlMatrix( mname, matl, strain, stress, fstat, D, dtime, ttime, temperature )
character(len=*), intent(in) :: mname
real(kind=kreal), intent(in) :: matl(:)
real(kind=kreal), intent(in) :: strain(6)
real(kind=kreal), intent(in) :: stress(6)
real(kind=kreal), intent(in) :: fstat(:)
real(kind=kreal), intent(out) :: D(:,:)
real(kind=kreal), intent(in) :: dtime
real(kind=kreal), intent(in) :: ttime
real(kind=kreal), optional :: temperature
mname: Nome do materialmatl: Array que armazena as constantes do material (máximo de 100)strain: Deformação de Green-Lagrangestress: Tensão de 2º Piola-Kirchhofffstat: Variáveis de estadoD: Relação constitutivadtime: Incremento de tempottime: Tempo total no início do incremento de tempo atualtemperature: Temperatura
(2) Sub-rotina para atualização da deformação e da tensão¶
subroutine uUpdate( mname, matl, strain, stress, fstat, dtime, ttime, temperature )
character(len=\*), intent(in) :: mname
real(kind=kreal), intent(in) :: matl(:)
real(kind=kreal), intent(in) :: strain(6)
real(kind=kreal), intent(inout) :: stress(6)
real(kind=kreal), intent(inout) :: fstat(:)
real(kind=kreal), intent(in) :: dtime
real(kind=kreal), intent(in) :: ttime
real(kind=kreal), optional :: temperature
mname: Nome do materialmatl: Array que armazena as constantes do material (máximo de 100)strain: Deformaçãostress: Tensão de 2º Piola-Kirchhofffstat: Variáveis de estadodtime: Incremento de tempottime: Tempo total no início do incremento de tempo atualtemperature: Temperatura