Ana içeriğe geç

Elastoplastik Deformasyon Alt Yordamları (uyield.f90)

Elastoplastik rijitlik matrisini ve gerilme dönüş eşlemesini hesaplamak için alt yordamlar sağlanır. Kullanıcı tanımlı bir akma fonksiyonu kullanırken önce giriş dosyasında !PLASTIC, YIELD=USER ayarlanmalı ve gerekli malzeme sabitleri girilmelidir, ardından uElastoPlasticNumStatus fonksiyonu ile uElastoPlasticMatrix ve uBackwardEuler alt yordamları oluşturulmalıdır.

(1) Gerçek durum değişkenlerinin sayısını döndüren fonksiyon

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: Malzeme sabitlerini saklayan dizi (1-100: sistem tanımlı malzeme sabitleri, 101-200: kullanıcı tanımlı malzeme sabitleri)

(2) Elastoplastik rijitlik matrisini hesaplayan alt yordam

  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: Malzeme sabitlerini saklayan dizi (1-100: sistem tanımlı malzeme sabitleri, 101-200: kullanıcı tanımlı malzeme sabitleri)
  • stress: 2. Piola-Kirchhoff gerilmesi
  • istat: Tamsayı durum değişkeni
  • fstat: Gerçek durum değişkenleri dizisi
  • plstrain: Geçerli alt adımın başlangıcındaki plastik gerinim
  • D: Elastoplastik matris
  • temp: Sıcaklık
  • hdflag: Tüm bileşenleri (0), yalnızca deviatorik bileşenleri (1) veya yalnızca hacimsel bileşenleri (2) hesapla

(3) Gerilme dönüş eşlemesi hesabı için alt yordam

  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: Malzeme sabitlerini saklayan dizi (1-100: sistem tanımlı malzeme sabitleri, 101-200: kullanıcı tanımlı malzeme sabitleri)
  • stress: Deneme gerilmesi için elastik deformasyon varsayılarak elde edilen 2. Piola-Kirchhoff gerilmesi
  • plstrain: Geçerli alt adımın başlangıcındaki plastik gerinim
  • istat: Tamsayı durum değişkeni
  • fstat: Gerçek durum değişkenleri dizisi
  • temp: Sıcaklık
  • hdflag: Tüm bileşenleri (0), yalnızca deviatorik bileşenleri (1) veya yalnızca hacimsel bileşenleri (2) hesapla