跳轉至

使用者自訂材料相關副程式 (umat.f)

提供一般材料變形分析的介面,不論材料為彈性、超彈性或彈塑性材料。 使用使用者自訂材料時,首先在輸入檔中設定 !USER_MATERIAL 並輸入所需的材料常數,接著必須建立副程式 uMatlMatrixuUpdate

(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: 溫度