ซับรูทีนสำหรับวัสดุที่ผู้ใช้กำหนด (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-Lagrangestress: ความเค้น 2nd Piola-Kirchhofffstat: ตัวแปรสถานะ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: ความเค้น 2nd Piola-Kirchhofffstat: ตัวแปรสถานะdtime: ช่วงเพิ่มของเวลาttime: เวลารวม ณ จุดเริ่มต้นของช่วงเพิ่มเวลาปัจจุบันtemperature: อุณหภูมิ