Hyppää sisältöön

Aliohjelmat elastoplastiselle muodonmuutokselle (uyield.f90)

Elastoplastisen jäykkyysmatriisin ja jännityksen palautuskuvauksen laskentaa varten on saatavilla aliohjelmia. Kun käytetään käyttäjän määrittelemää myötöfunktiota, aseta ensin syötetiedostossa !PLASTIC, YIELD=USER ja anna tarvittavat materiaalivakiot, minkä jälkeen on luotava funktio uElastoPlasticNumStatus sekä aliohjelmat uElastoPlasticMatrix ja uBackwardEuler.

(1) Reaalisten tilamuuttujien lukumäärän palauttava funktio

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: Taulukko materiaalivakioiden tallentamiseen (1–100: järjestelmän määrittelemät materiaalivakiot, 101–200: käyttäjän määrittelemät materiaalivakiot)

(2) Aliohjelma elastoplastisen jäykkyysmatriisin laskentaan

  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: Taulukko materiaalivakioiden tallentamiseen (1–100: järjestelmän määrittelemät materiaalivakiot, 101–200: käyttäjän määrittelemät materiaalivakiot)
  • stress: toinen Piola–Kirchhoffin jännitys
  • istat: Kokonaislukutyyppinen tilamuuttuja
  • fstat: Reaalisten tilamuuttujien taulukko
  • plstrain: Plastinen venymä nykyisen alavaiheen alussa
  • D: Elastoplastinen matriisi
  • temp: Lämpötila
  • hdflag: Laske kaikki komponentit (0), vain deviaattorikomponentit (1) tai vain tilavuuskomponentit (2)

(3) Aliohjelma jännityksen palautuskuvauksen laskentaan

  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: Taulukko materiaalivakioiden tallentamiseen (1–100: järjestelmän määrittelemät materiaalivakiot, 101–200: käyttäjän määrittelemät materiaalivakiot)
  • stress: Toinen Piola–Kirchhoffin jännitys, joka saadaan olettamalla koejännitykselle elastinen muodonmuutos
  • plstrain: Plastinen venymä nykyisen alavaiheen alussa
  • istat: Kokonaislukutyyppinen tilamuuttuja
  • fstat: Reaalisten tilamuuttujien taulukko
  • temp: Lämpötila
  • hdflag: Laske kaikki komponentit (0), vain deviaattorikomponentit (1) tai vain tilavuuskomponentit (2)
AI-assisted translation May contain errors Official docs Status