Sari la conținut

Subrutine pentru deformație elastoplastică (uyield.f90)

Sunt furnizate subrutine pentru calculul matricei de rigiditate elastoplastică și pentru maparea de revenire a tensiunii. Când se utilizează o funcție de curgere definită de utilizator, setați mai întâi !PLASTIC, YIELD=USER în fișierul de intrare, introduceți constantele de material necesare, apoi trebuie create funcția uElastoPlasticNumStatus și subrutinele uElastoPlasticMatrix și uBackwardEuler.

(1) Funcție care returnează numărul variabilelor de stare reale

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: Tabou care stochează constantele de material (1-100: constante de material definite de sistem, 101-200: constante de material definite de utilizator)

(2) Subrutină pentru calculul matricei de rigiditate elastoplastică

  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: Tabou care stochează constantele de material (1-100: constante de material definite de sistem, 101-200: constante de material definite de utilizator)
  • stress: A doua tensiune Piola-Kirchhoff
  • istat: Variabilă de stare întreagă
  • fstat: Tabou de variabile de stare reale
  • plstrain: Deformația plastică la începutul subpasului curent
  • D: Matrice elastoplastică
  • temp: Temperatură
  • hdflag: Calculează toate componentele (0), numai componentele deviatorice (1) sau numai componentele volumice (2)

(3) Subrutină pentru calculul mapării de revenire a tensiunii

  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: Tabou care stochează constantele de material (1-100: constante de material definite de sistem, 101-200: constante de material definite de utilizator)
  • stress: A doua tensiune Piola-Kirchhoff obținută presupunând o deformație elastică pentru tensiunea de încercare
  • plstrain: Deformația plastică la începutul subpasului curent
  • istat: Variabilă de stare întreagă
  • fstat: Tabou de variabile de stare reale
  • temp: Temperatură
  • hdflag: Calculează toate componentele (0), numai componentele deviatorice (1) sau numai componentele volumice (2)
AI-assisted translation May contain errors Official docs Status