Přeskočit obsah

Podprogramy související s elastoplastickou deformací (uyield.f90)

Jsou poskytovány podprogramy pro výpočet elastoplastické matice tuhosti a návratového mapování napětí. Při použití uživatelsky definované funkce plasticity je nejprve nutné ve vstupním souboru nastavit !PLASTIC, YIELD=USER a zadat potřebné materiálové konstanty, poté vytvořit funkci uElastoPlasticNumStatus a podprogramy uElastoPlasticMatrix a uBackwardEuler je nutné vytvořit.

(1) Funkce vracející počet reálných stavových proměnných

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: Pole uchovávající materiálové konstanty (1-100: systémem definované materiálové konstanty, 101-200: uživatelem definované materiálové konstanty)

(2) Podprogram pro výpočet elastoplastické matice tuhosti

  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: Pole uchovávající materiálové konstanty (1-100: systémem definované materiálové konstanty, 101-200: uživatelem definované materiálové konstanty)
  • stress: Druhé Piola-Kirchhoffovo napětí
  • istat: Celočíselná stavová proměnná
  • fstat: Pole reálných stavových proměnných
  • plstrain: Plastické přetvoření na začátku aktuálního subkroku
  • D: Elastoplastická matice
  • temp: Teplota
  • hdflag: Vypočítá všechny složky (0), pouze deviátorové složky (1) nebo pouze objemové složky (2)

(3) Podprogram pro výpočet návratového mapování napětí

  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: Pole uchovávající materiálové konstanty (1-100: systémem definované materiálové konstanty, 101-200: uživatelem definované materiálové konstanty)
  • stress: zkušební napětí, druhé Piola-Kirchhoffovo napětí získané za předpokladu elastické deformace
  • plstrain: Plastické přetvoření na začátku aktuálního subkroku
  • istat: Celočíselná stavová proměnná
  • fstat: Pole reálných stavových proměnných
  • temp: Teplota
  • hdflag: Vypočítá všechny složky (0), pouze deviátorové složky (1) nebo pouze objemové složky (2)