ข้ามไปที่เนื้อหา

ซับรูทีนที่เกี่ยวข้องกับการเปลี่ยนรูปอีลาสโตพลาสติก (uyield.f90)

มีซับรูทีนสำหรับคำนวณเมทริกซ์ความแข็งอีลาสโตพลาสติกและการแม็ปกลับ (return mapping) ของความเค้น เมื่อใช้ฟังก์ชันครากที่ผู้ใช้กำหนด ให้ตั้งค่า !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: ความเค้น 2nd Piola-Kirchhoff
  • 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: ความเค้น 2nd Piola-Kirchhoff ที่ได้โดยสมมติการเปลี่ยนรูปแบบยืดหยุ่นสำหรับความเค้นทดลอง
  • plstrain: ความเครียดพลาสติก ณ จุดเริ่มต้นของซับสเต็ปปัจจุบัน
  • istat: ตัวแปรสถานะชนิดจำนวนเต็ม
  • fstat: อาร์เรย์ของตัวแปรสถานะชนิดจำนวนจริง
  • temp: อุณหภูมิ
  • hdflag: คำนวณทุกองค์ประกอบ (0), เฉพาะองค์ประกอบเบี่ยงเบน (1), หรือเฉพาะองค์ประกอบเชิงปริมาตร (2)
AI-assisted translation May contain errors Official docs Status