Gå til indholdet

Subrutiner til elastoplastisk deformation (uyield.f90)

Der leveres subrutiner til beregning af den elastoplastiske stivhedsmatrix og return mapping af spænding. Ved brug af en brugerdefineret flydefunktion skal !PLASTIC, YIELD=USER først angives i inputfilen sammen med de nødvendige materialekonstanter, hvorefter funktionen uElastoPlasticNumStatus og subrutinerne uElastoPlasticMatrix og uBackwardEuler skal oprettes.

(1) Funktion, der returnerer antallet af reelle tilstandsvariable

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: Array, der lagrer materialekonstanter (1-100: systemdefinerede materialekonstanter, 101-200: brugerdefinerede materialekonstanter)

(2) Subrutine til beregning af den elastoplastiske stivhedsmatrix

  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, der lagrer materialekonstanter (1-100: systemdefinerede materialekonstanter, 101-200: brugerdefinerede materialekonstanter)
  • stress: 2. Piola-Kirchhoff-spænding
  • istat: Heltallig tilstandsvariabel
  • fstat: Array af reelle tilstandsvariable
  • plstrain: Plastisk tøjning ved begyndelsen af det aktuelle deltrin
  • D: Elastoplastisk matrix
  • temp: Temperatur
  • hdflag: Beregn alle komponenter (0), kun deviatoriske komponenter (1) eller kun volumetriske komponenter (2)

(3) Subrutine til beregning af return mapping for spænding

  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, der lagrer materialekonstanter (1-100: systemdefinerede materialekonstanter, 101-200: brugerdefinerede materialekonstanter)
  • stress: 2. Piola-Kirchhoff-spænding opnået ved at antage elastisk deformation for trial-spændingen
  • plstrain: Plastisk tøjning ved begyndelsen af det aktuelle deltrin
  • istat: Heltallig tilstandsvariabel
  • fstat: Array af reelle tilstandsvariable
  • temp: Temperatur
  • hdflag: Beregn alle komponenter (0), kun deviatoriske komponenter (1) eller kun volumetriske komponenter (2)
AI-assisted translation May contain errors Official docs Status