コンテンツにスキップ

ユーザー定義材料に関わるサブルーチン (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: 温度