使用者自訂材料相關副程式 (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: 溫度