Subrutiner för användardefinierade material (umat.f)¶
Tillhandahåller ett gränssnitt för deformationsanalys av allmänna material, oavsett om de är elastiska, hyperelastiska eller elastoplastiska.
För att använda ett användardefinierat material anger du först !USER_MATERIAL i indatafilen och matar in de materialkonstanter som krävs, och skapar sedan subrutinerna uMatlMatrix och uUpdate.
(1) Subrutin för beräkning av styvhetsmatrisen¶
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: Materialnamnmatl: Array som lagrar materialkonstanter (högst 100)strain: Green–Lagrange-töjningstress: Andra Piola–Kirchhoff-spänningenfstat: TillståndsvariablerD: Konstitutiv relationdtime: Tidsinkrementttime: Total tid vid början av det aktuella tidsinkrementettemperature: Temperatur
(2) Subrutin för uppdatering av töjning och spänning¶
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: Materialnamnmatl: Array som lagrar materialkonstanter (högst 100)strain: Töjningstress: Andra Piola–Kirchhoff-spänningenfstat: Tillståndsvariablerdtime: Tidsinkrementttime: Total tid vid början av det aktuella tidsinkrementettemperature: Temperatur