انتقل إلى المحتوى

الروتينات الفرعية للمواد المعرّفة من المستخدم (umat.f)

يوفر واجهة لتحليل تشوه المواد العامة، بصرف النظر عما إذا كانت مرنة أو فائقة المرونة أو مرنة-لدنة. لاستخدام مادة معرّفة من المستخدم، اضبط أولًا !USER_MATERIAL في ملف الإدخال وأدخل ثوابت المادة المطلوبة، ثم أنشئ الروتينين الفرعيين uMatlMatrix وuUpdate.

(1) روتين فرعي لحساب مصفوفة الصلابة

subroutine uMatlMatrix( mname, matl, strain, stress, fstat, D, dtime, ttime, temperature )
        character(len=*), intent(in)  :: mname
        real(kind=kreal), intent(in)  :: matl(:)
        real(kind=kreal), intent(in)  :: strain(6)
        real(kind=kreal), intent(in)  :: stress(6)
        real(kind=kreal), intent(in)  :: fstat(:)
        real(kind=kreal), intent(out) :: D(:,:)
        real(kind=kreal), intent(in)  :: dtime
        real(kind=kreal), intent(in)  :: ttime
        real(kind=kreal), optional    :: temperature
  • mname: اسم المادة
  • matl: مصفوفة لتخزين ثوابت المادة (بحد أقصى 100)
  • strain: انفعال Green-Lagrange
  • stress: إجهاد Piola-Kirchhoff من الرتبة الثانية
  • fstat: متغيرات الحالة
  • D: العلاقة التكوينية
  • dtime: زيادة الزمن
  • ttime: الزمن الكلي عند بداية زيادة الزمن الحالية
  • temperature: درجة الحرارة

(2) روتين فرعي لتحديث الانفعال والإجهاد

subroutine uUpdate(  mname, matl, strain, stress, fstat, dtime, ttime, temperature )
        character(len=\*), intent(in)    :: mname
        real(kind=kreal), intent(in)    :: matl(:)
        real(kind=kreal), intent(in)    :: strain(6)
        real(kind=kreal), intent(inout) :: stress(6)
        real(kind=kreal), intent(inout) :: fstat(:)
        real(kind=kreal), intent(in)    :: dtime
        real(kind=kreal), intent(in)    :: ttime
        real(kind=kreal), optional      :: temperature
  • mname: اسم المادة
  • matl: مصفوفة لتخزين ثوابت المادة (بحد أقصى 100)
  • strain: الانفعال
  • stress: إجهاد Piola-Kirchhoff من الرتبة الثانية
  • fstat: متغيرات الحالة
  • dtime: زيادة الزمن
  • ttime: الزمن الكلي عند بداية زيادة الزمن الحالية
  • temperature: درجة الحرارة