Przejdź do treści

Podprogramy dla odkształceń sprężysto-plastycznych (uyield.f90)

Dostępne są podprogramy do obliczania sprężysto-plastycznej macierzy sztywności oraz mapowania powrotnego naprężeń. W przypadku używania zdefiniowanej przez użytkownika funkcji plastyczności należy najpierw ustawić !PLASTIC, YIELD=USER w pliku wejściowym i wprowadzić wymagane stałe materiałowe, następnie funkcja uElastoPlasticNumStatus oraz podprogramy uElastoPlasticMatrix i uBackwardEuler muszą zostać utworzone.

(1) Funkcja zwracająca liczbę rzeczywistych zmiennych stanu

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: Tablica przechowująca stałe materiałowe (1-100: stałe materiałowe zdefiniowane przez system, 101-200: stałe materiałowe zdefiniowane przez użytkownika)

(2) Podprogram obliczający sprężysto-plastyczną macierz sztywności

  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: Tablica przechowująca stałe materiałowe (1-100: stałe materiałowe zdefiniowane przez system, 101-200: stałe materiałowe zdefiniowane przez użytkownika)
  • stress: Drugi tensor naprężeń Pioli-Kirchhoffa
  • istat: Całkowitoliczbowa zmienna stanu
  • fstat: Tablica rzeczywistych zmiennych stanu
  • plstrain: Odkształcenie plastyczne na początku bieżącego podkroku
  • D: Macierz sprężysto-plastyczna
  • temp: Temperatura
  • hdflag: Obliczanie wszystkich składowych (0), tylko składowych dewiatorowych (1) albo tylko składowych objętościowych (2)

(3) Podprogram obliczający mapowanie powrotne naprężeń

  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: Tablica przechowująca stałe materiałowe (1-100: stałe materiałowe zdefiniowane przez system, 101-200: stałe materiałowe zdefiniowane przez użytkownika)
  • stress: Drugi tensor naprężeń Pioli-Kirchhoffa uzyskany przy założeniu odkształcenia sprężystego dla naprężenia próbnego
  • plstrain: Odkształcenie plastyczne na początku bieżącego podkroku
  • istat: Całkowitoliczbowa zmienna stanu
  • fstat: Tablica rzeczywistych zmiennych stanu
  • temp: Temperatura
  • hdflag: Obliczanie wszystkich składowych (0), tylko składowych dewiatorowych (1) albo tylko składowych objętościowych (2)