Skip to content

សាប់រូទីនសម្រាប់ការខូចទ្រង់ទ្រាយអេលាស្តូប្លាស្ទិក (uyield.f90)

ផ្ដល់សាប់រូទីនសម្រាប់គណនាម៉ាទ្រីសភាពរឹងអេលាស្តូប្លាស្ទិក និងការផ្គូផ្គងត្រឡប់នៃស្ត្រេស។ នៅពេលប្រើអនុគមន៍យីលដ៍ដែលកំណត់ដោយអ្នកប្រើ ដំបូងកំណត់ !PLASTIC, YIELD=USER ក្នុងឯកសារបញ្ចូល ហើយបញ្ចូលថេរសម្ភារៈដែលត្រូវការ បន្ទាប់មកត្រូវបង្កើតអនុគមន៍ uElastoPlasticNumStatus និងសាប់រូទីន uElastoPlasticMatrix ព្រមទាំង uBackwardEuler ត្រូវបានបង្កើត។

(1) អនុគមន៍ដែលត្រឡប់ចំនួនអថេរស្ថានភាពប្រភេទចំនួនពិត

integer function uElastoPlasticNumStatus( matl )
    real(kind=kreal),   intent(in)  :: matl(:)
  • matl: អារេសម្រាប់រក្សាទុកថេរសម្ភារៈ (1-100: ថេរសម្ភារៈកំណត់ដោយប្រព័ន្ធ, 101-200: ថេរសម្ភារៈកំណត់ដោយអ្នកប្រើ)

(2) សាប់រូទីនគណនាម៉ាទ្រីសភាពរឹងអេលាស្តូប្លាស្ទិក

  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: អារេសម្រាប់រក្សាទុកថេរសម្ភារៈ (1-100: ថេរសម្ភារៈកំណត់ដោយប្រព័ន្ធ, 101-200: ថេរសម្ភារៈកំណត់ដោយអ្នកប្រើ)
  • stress: ស្ត្រេស Piola-Kirchhoff លំដាប់ទី 2
  • istat: អថេរស្ថានភាពប្រភេទចំនួនគត់
  • fstat: អារេអថេរស្ថានភាពប្រភេទចំនួនពិត
  • plstrain: ស្ត្រេនប្លាស្ទិចនៅពេលចាប់ផ្ដើមជំហានរងបច្ចុប្បន្ន
  • D: ម៉ាទ្រីសអេលាស្តូប្លាស្ទិក
  • temp: សីតុណ្ហភាព
  • hdflag: គណនាសមាសភាគទាំងអស់ (0), តែសមាសភាគឌីវីអាទ័រ (1), ឬតែសមាសភាគមាឌ (2)

(3) សាប់រូទីនគណនាការផ្គូផ្គងត្រឡប់នៃស្ត្រេស

  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: អារេសម្រាប់រក្សាទុកថេរសម្ភារៈ (1-100: ថេរសម្ភារៈកំណត់ដោយប្រព័ន្ធ, 101-200: ថេរសម្ភារៈកំណត់ដោយអ្នកប្រើ)
  • stress: ស្ត្រេសសាកល្បង គឺស្ត្រេស Piola-Kirchhoff លំដាប់ទី 2 ដែលទទួលបានដោយសន្មតការខូចទ្រង់ទ្រាយអេឡាស្ទិច
  • plstrain: ស្ត្រេនប្លាស្ទិចនៅពេលចាប់ផ្ដើមជំហានរងបច្ចុប្បន្ន
  • istat: អថេរស្ថានភាពប្រភេទចំនួនគត់
  • fstat: អារេអថេរស្ថានភាពប្រភេទចំនួនពិត
  • temp: សីតុណ្ហភាព
  • hdflag: គណនាសមាសភាគទាំងអស់ (0), តែសមាសភាគឌីវីអាទ័រ (1), ឬតែសមាសភាគមាឌ (2)