Gå till innehållet

Subrutiner för elastoplastisk deformation (uyield.f90)

Subrutiner tillhandahålls för beräkning av den elastoplastiska styvhetsmatrisen och återföringsalgoritmen för spänning. När en användardefinierad flytfunktion används ska du först ange !PLASTIC, YIELD=USER i indatafilen och mata in de materialkonstanter som krävs, därefter måste funktionen uElastoPlasticNumStatus och subrutinerna uElastoPlasticMatrix och uBackwardEuler skapas.

(1) Funktion som returnerar antalet reella tillståndsvariabler

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: Array som lagrar materialkonstanter (1-100: systemdefinierade materialkonstanter, 101-200: användardefinierade materialkonstanter)

(2) Subrutin för beräkning av den elastoplastiska styvhetsmatrisen

  subroutine uElastoPlasticMatrix( matl, stress, istat, fstat, plstrain, D, temp, hdflag )
    real(kind=kreal),   intent(in)  :: matl(:)
    real(kind=kreal),   intent(in)  :: stress(6)
    integer(kind=kint), intent(in)  :: istat
    real(kind=kreal),   intent(in)  :: fstat(:)
    real(kind=kreal),   intent(in)  :: plstrain
    real(kind=kreal),   intent(out) :: D(:,:)
    real(kind=kreal),   intent(in)  :: temp
    integer(kind=kint), intent(in)  :: hdflag
  • matl: Array som lagrar materialkonstanter (1-100: systemdefinierade materialkonstanter, 101-200: användardefinierade materialkonstanter)
  • stress: 2:a Piola-Kirchhoff-spänning
  • istat: Heltalsvariabel för tillstånd
  • fstat: Array med reella tillståndsvariabler
  • plstrain: Plastisk töjning i början av det aktuella delsteget
  • D: Elastoplastisk matris
  • temp: Temperatur
  • hdflag: Beräkna alla komponenter (0), endast deviatoriska komponenter (1) eller endast volymetriska komponenter (2)

(3) Subrutin för beräkning av spänningsåterföring

  subroutine uBackwardEuler( matl, stress, plstrain, istat, fstat, temp, hdflag )
    real(kind=kreal),   intent(in)    :: matl(:)
    real(kind=kreal),   intent(inout) :: stress(6)
    real(kind=kreal),   intent(in)    :: plstrain
    integer(kind=kint), intent(inout) :: istat
    real(kind=kreal),   intent(inout) :: fstat(:)
    real(kind=kreal),   intent(in)    :: temp
    integer(kind=kint), intent(in)    :: hdflag
  • matl: Array som lagrar materialkonstanter (1-100: systemdefinierade materialkonstanter, 101-200: användardefinierade materialkonstanter)
  • stress: 2:a Piola-Kirchhoff-spänning som erhålls genom att anta elastisk deformation för provspänningen
  • plstrain: Plastisk töjning i början av det aktuella delsteget
  • istat: Heltalsvariabel för tillstånd
  • fstat: Array med reella tillståndsvariabler
  • temp: Temperatur
  • hdflag: Beräkna alla komponenter (0), endast deviatoriska komponenter (1) eller endast volymetriska komponenter (2)
AI-assisted translation May contain errors Official docs Status