次へ 上へ 前へ 目次へ
次へ:User-defined nonlinear equations 上へ:User subroutines. 前へ:ABAQUS umat routines 目次へ


ユーザー定義の熱材料則

CalculiX で使用できない熱的挙動についてはサブルーチン「umatht.f」でコードを追加することができます。これは浅水理論などの熱方程式モデルによる任意の挙動についても言えます。例えば潤滑における油膜の厚みは伝導係数と同等なもののひとつです。  熱材料ユーザーサブルーチンでの油膜厚みの機械的挙動の効果と組み合わせることで機械挙動を油領域と連成することが可能です。umatthr ルーチンのヘッダーと入出力変数は以下の通りです。

      subroutine umatht(u,dudt,dudg,flux,dfdt,dfdg,
     &  statev,temp,dtemp,dtemdx,time,dtime,predef,dpred,
     &  cmname,ntgrd,nstatv,props,nprops,coords,pnewdt,
     &  noel,npt,layer,kspt,kstep,kinc,vold,co,lakonl,konl,
     &  ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,mi)
!
!     熱伝達材料サブルーチン
!
!     入力:
!
!     statev(nstatv)      インクリメント開始時の内部変数
!     temp                インクリメント開始時の温度
!     dtemp               温度増分
!     dtemdx(ntgrd)       温度の空間勾配の現在の値
!     time(1)             インクリメント開始時のステップ時間
!     time(2)             インクリメント開始時の総時間
!     dtime               時間インクリメント
!     predef              不使用
!     dpred               不使用
!     cmname              材料名
!     ntgrd               温度の空間勾配の数
!     nstatv              *DEPVAR カードで定義された内部状態変数の数
!     props(nprops)       キーワードカード *USER MATERIAL,TYPE=THERMAL で定義されたユーザー定義定数
!     nprops              *USER MATERIAL,TYPE=THERMAL カードで指定されたユーザー定義定数の数
!     coords              積分点でのグローバル座標
!     pnewd               不使用
!     noel                要素番号
!     npt                 積分点番号
!     layer               不使用
!     kspt                不使用
!     kstep               不使用
!     kinc                不使用
!     vold(0..4,1..nk)    全節点で解かれる場
!                         0: 温度
!                         1: グローバル X 方向の変位
!                         2: グローバル Y 方向の変位
!                         3: グローバル Z 方向の変位
!                         4: 静圧
!     co(3,1..nk)         全節点の座標
!                         1: グローバル X 方向の座標
!                         2: グローバル Y 方向の座標
!                         3: グローバル Z 方向の座標
!     lakonl              要素ラベル
!     konl(1..20)         要素に属する節点
!     ipompc(1..nmpc)     ipompc(i) は場 nodempc の MPC i の最初の項を指す
!     nodempc(1,*)        MPC の項の節点番号
!     nodempc(2,*)        MPC の項の座標方向
!     nodempc(3,*)        0以外の場合:場 nodempc の MPC の次の項を指す
!                         0の場合:MPC 定義終了
!     coefmpc(*)          MPC の項の係数
!     nmpc                MPC の数
!     ikmpc(1..nmpc)      順序付けられたMPCのグローバルな自由度
!                         グローバルな自由度は MPC の依存項の 8*(node-1)+direction(direction = 0:温度, 1-3:変位, 4:静圧, 5-7:回転)
!     ilmpc(1..nmpc)      ilmpc(i) は ikmpc(i) での参照番号に対応する MPC 番号
!     mi(1)               要素あたりの積分点の最大数(全要素にわたる最大値)
!     mi(2)               場での節点あたりの最大自由度(全節点にわたる最大値)。例 v(0:mi(2))。
!
!     出力:
!     
!     u                   不使用
!     dudt                不使用
!     dudg(ntgrd)         不使用
!     flux(ntgrd)         インクリメント終了時の熱フラックス
!     dfdt(ntgrd)         不使用
!     dfdg(ntgrd,ntgrd)   熱フラックスの空間温度勾配に対する変動
!     statev(nstatv)      インクリメント終了時の内部状態変数
!



guido dhondt 2016-03-08