ユーザー定義材料に関わるサブルーチン (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: 2nd 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: 2nd Piola-Kirchhoff応力fstat: 状態変数dtime: 時間増分ttime: 現在の時間増分開始時点のトータル時刻temperature: 温度