Pāriet uz saturu

Apakšprogrammas elastoplastiskai deformācijai (uyield.f90)

Tiek nodrošinātas apakšprogrammas elastoplastiskās stinguma matricas un sprieguma atgriezeniskās kartēšanas (return mapping) aprēķināšanai. Ja izmanto lietotāja definētu plūšanas funkciju, vispirms ievades failā jāiestata !PLASTIC, YIELD=USER un jāievada nepieciešamās materiāla konstantes, pēc tam jāizveido funkcija uElastoPlasticNumStatus un apakšprogrammas uElastoPlasticMatrix un uBackwardEuler.

(1) Funkcija, kas atgriež reālo stāvokļa mainīgo skaitu

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: masīvs materiāla konstantu glabāšanai (1-100: sistēmas definētas materiāla konstantes, 101-200: lietotāja definētas materiāla konstantes)

(2) Elastoplastiskās stinguma matricas aprēķināšanas apakšprogramma

  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: masīvs materiāla konstantu glabāšanai (1-100: sistēmas definētas materiāla konstantes, 101-200: lietotāja definētas materiāla konstantes)
  • stress: otrais Piolas–Kirhofa spriegums
  • istat: vesela skaitļa stāvokļa mainīgais
  • fstat: reālo stāvokļa mainīgo masīvs
  • plstrain: plastiskā deformācija pašreizējā apakšsoļa sākumā
  • D: elastoplastiskā matrica
  • temp: temperatūra
  • hdflag: aprēķināt visus komponentus (0), tikai deviatoriskos komponentus (1) vai tikai tilpuma komponentus (2)

(3) Sprieguma atgriezeniskās kartēšanas aprēķināšanas apakšprogramma

  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: masīvs materiāla konstantu glabāšanai (1-100: sistēmas definētas materiāla konstantes, 101-200: lietotāja definētas materiāla konstantes)
  • stress: otrais Piolas–Kirhofa spriegums, kas iegūts, pieņemot elastīgu deformāciju izmēģinājuma spriegumam
  • plstrain: plastiskā deformācija pašreizējā apakšsoļa sākumā
  • istat: vesela skaitļa stāvokļa mainīgais
  • fstat: reālo stāvokļa mainīgo masīvs
  • temp: temperatūra
  • hdflag: aprēķināt visus komponentus (0), tikai deviatoriskos komponentus (1) vai tikai tilpuma komponentus (2)
AI-assisted translation May contain errors Official docs Status