Zum Inhalt

Subroutinen für elastoplastische Verformung (uyield.f90)

Für die Berechnung der elastoplastischen Steifigkeitsmatrix und der Spannungsrückführung stehen Subroutinen zur Verfügung. Bei Verwendung einer benutzerdefinierten Fließfunktion ist zunächst !PLASTIC, YIELD=USER in der Eingabedatei zu setzen und die erforderlichen Materialkonstanten einzugeben; anschließend müssen die Funktion uElastoPlasticNumStatus sowie die Subroutinen uElastoPlasticMatrix und uBackwardEuler erstellt werden.

(1) Funktion, die die Anzahl reeller Zustandsvariablen zurückgibt

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: Array zur Speicherung von Materialkonstanten (1-100: systemdefinierte Materialkonstanten, 101-200: benutzerdefinierte Materialkonstanten)

(2) Subroutine zur Berechnung der elastoplastischen Steifigkeitsmatrix

  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 zur Speicherung von Materialkonstanten (1-100: systemdefinierte Materialkonstanten, 101-200: benutzerdefinierte Materialkonstanten)
  • stress: 2. Piola-Kirchhoff-Spannung
  • istat: Ganzzahlige Zustandsvariable
  • fstat: Array reeller Zustandsvariablen
  • plstrain: Plastische Dehnung zu Beginn des aktuellen Unterschritts
  • D: Elastoplastische Matrix
  • temp: Temperatur
  • hdflag: Alle Komponenten (0), nur deviatorische Komponenten (1) oder nur volumetrische Komponenten (2) berechnen

(3) Subroutine zur Berechnung der Spannungsrückführung

  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 zur Speicherung von Materialkonstanten (1-100: systemdefinierte Materialkonstanten, 101-200: benutzerdefinierte Materialkonstanten)
  • stress: 2. Piola-Kirchhoff-Spannung, die unter Annahme elastischer Verformung für die Versuchsspannung erhalten wird
  • plstrain: Plastische Dehnung zu Beginn des aktuellen Unterschritts
  • istat: Ganzzahlige Zustandsvariable
  • fstat: Array reeller Zustandsvariablen
  • temp: Temperatur
  • hdflag: Alle Komponenten (0), nur deviatorische Komponenten (1) oder nur volumetrische Komponenten (2) berechnen