Ir para o conteúdo

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 material
  • matl: Matriz que armazena as constantes do material (máximo de 100)
  • strain: Deformação de Green-Lagrange
  • stress: 2.ª tensão de Piola-Kirchhoff
  • fstat: Variáveis de estado
  • D: Relação constitutiva
  • dtime: Incremento temporal
  • ttime: Tempo total no início do incremento temporal atual
  • temperature: 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 material
  • matl: Matriz que armazena as constantes do material (máximo de 100)
  • strain: Deformação
  • stress: 2.ª tensão de Piola-Kirchhoff
  • fstat: Variáveis de estado
  • dtime: Incremento temporal
  • ttime: Tempo total no início do incremento temporal atual
  • temperature: Temperatura