Sub-rotinas para materiais definidos pelo utilizador (umat.f)¶
Disponibiliza uma interface para a análise de deformação de materiais gerais, independentemente de serem elásticos, hiperelásticos ou elastoplásticos.
Para utilizar um material definido pelo utilizador, defina primeiro !USER_MATERIAL no ficheiro de entrada e introduza 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: Matriz que armazena as constantes do material (máximo de 100)strain: Deformação de Green-Lagrangestress: 2.ª tensão de Piola-Kirchhofffstat: Variáveis de estadoD: Relação constitutivadtime: Incremento temporalttime: Tempo total no início do incremento temporal 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: Matriz que armazena as constantes do material (máximo de 100)strain: Deformaçãostress: 2.ª tensão de Piola-Kirchhofffstat: Variáveis de estadodtime: Incremento temporalttime: Tempo total no início do incremento temporal atualtemperature: Temperatura