TOP > プリポスト > 自作ツール > ユーザーサブルーチン |
汎用ソフトの中には、サブルーチンの一部がユーザーに解放されていて自由にコーディングできるようになっているものがある。 これを用いることで、 ・境界条件の設定の自動化 ・結果の処理の自動化 などが可能となる。 また、非線形な境界条件や材料モデルの定義にも使える。 |
<UMATについて>
# 2003年3月26日 # No.5028 # ハッピー #
> 上記の”UMAT”の概念や使用法について詳しく説明している本などあるでしょうか?
by エムさん
UMAT(User Material)は構成式を自分で定義&コーディングする、「独自材料モデル」のためのユーザーサブルーチンですね。ユーザーサブルーチンの中でもハイレベルユーザー向けかな?
マニュアルには「充分気を付けて作成のこと」とか書いてあったと思います。
まぁABAQUSのマニュアル以外には、説明書はないのではないでしょうか。
カルト(?)なUMATの使用事例が多いとのことですが、どういう問題なのでしょう?
# 2003年3月26日 # No.5033 # チャーリー #
> 現在、有限要素法を用いて金属の変形挙動の解析を行おうとしています。
> マクロ的には金属の塑性変形は殆どの場合、「すべり」によって起き
> ますが、この「すべり」を再現するために様々な工夫が行われている
> ようです。
> 現在のところ、ANSYSを使用しているのですが、このような「す
> べり」を再現したモデルを作成するのは難しそうで、私の調べた限り
> では、ABAQUSのユーザーサブルーチン”UMAT”を使用して
> いるのが多い(というか殆ど)ようです。
詳しくありませんが、塑性では、Rezorningが、汎用ソフトでは一般的機能としてあるかと思います。
歪の大きい要素を、分割したり、発生した節点箇所を別の要素節点と接続したりとか今時のANSYSでしたらなんかしら、なんかしら機能がありそな気がします。
> 上記の”UMAT”の概念や使用法について詳しく説明している本な
> どあるでしょうか?
> また、上手くいけばABAQUSで作ったサブルーチンをANSYS
> にも適用したいのですが可能でしょうか?
> これも私の調べた範囲ですが、”Z-mat”という異なるソフト同
> 士でもサブルーチンのやり取りができる専用のソフトもあるようなの
> ですが、もしご存知でしたら詳しく教えていただけないでしょうか?
あくまで、憶測ですが、MATっていうぐらいですから、ハピーさん指摘の材料構成則かと思います。
異方性で、(εx、y、z、xy、、、、)と言う感じでMatrix定義できるんではないでしょうか?
おそらくユーザーサブルーチン系ソフトウエアでは、似たようになる気がしないでもないので。
それが、Z-MATとかいうExchangeソフトで流通してるのでしょうか??
ちょっとちんぷんかんぷんですが、許してください。
(編集担当:Happy 2003/10/18)
<Marcのユーザーサブルーチン>
# No.1834 # 2001年9月3日 # MARC初心者 #
Marcの熱伝導解析でユーザーサブルーチンにFILMとかFLUXというのがありますが、どのような時に使うのでしょうか。
また典型的なプログラム例などがあればお教え頂けないでしょうか。
よろしくお願いします。
# No.1835 # 2001年9月3日 # tos #
Marc使用歴9ヶ月の初心者です。MarcのマニュアルE編で表1-6にユーザーサブルーチン相互参照表というのがあります。これを見れば、 どの機能がどの例題に使われているかがまとめられています。
ちなみに、FILMが6件、FLUXが1件あります。
# No.1838 # 2001年9月4日 # ハッピー #
簡単な問題では、熱伝達や熱流束の境界条件は入力データの中で、それぞれFILMやFLUXというコマンドで定義しますが、複雑な条件を設定するときにユーザーサブルーチンを用いて自由にプログラミングできます。MARCはこの手のユーザーサブルーチンの種類が多く、さすがに研究者向けといわれる所以と思います。ABAQUSも最近充実してきましたがMARCは内部変数まで公開しちゃう。
FILMユーザーサブルーチンについて言えば、熱伝達係数hと雰囲気温度Tsinkを引数として渡されてくる変数を使って自由にコーディングできます。
使える変数には、時間time、要素番号、積分点座標coord(要素表面上の積分点)他がありよく使うのが、
(1)hやTsinkをtimeの式で定義して時間によって変化させる。
入力データで与える場合はステップ的な変化しか表現できませんが
サブルーチンを使うことで任意の時間的変化が設定できる。
(2)hやTsinkをcoordの式で定義して空間的に変化させる。
入力データで与える場合は、要素毎に異なる値を一々定義する
必要があり面倒ですし、メッシュを変えるとまた作り直す必要
がある。
サブルーチンを使うと、簡単な式で済み、しかもメッシュに依存
しない。
MARCの場合、境界条件に識別番号を与えることが出来ます(ABAQUSにはない)。
場所によって異なる式を適用する場合、この識別番号(Index番号)を用いると簡単に使い分けが出来ます。
tosさんが紹介された表にあるu5x8はかなり凝ったことをしているようです。
境界条件を熱伝達と輻射にわけています。熱伝達に関しては平板に沿う流れの熱伝達の式がコーディングされているようで、まず流体温度と壁面温度の平均Taveを求め、これと板の端からの距離(coord)からhを求めているようです。なお流体の物性値と思われる量を温度に対する関数としてDATA文で与えていてTaveに対し線形補間で求めているようです。
(例題は読まずにプログラムだけを見ました)
輻射については、最近のソフトは入力データで輻射が扱えますが、この例では昔流の「非線形なh」として定義していますね。 輻射による熱流束は、q=F×(T^4-Trad^4)と、壁温と放射源温度の4乗の差で与えられます(Fにステファンボルツマン係数、放射率、形態係数)が、これを
q=G×(T-Trad)
という熱伝達と同じ形に因数分解で変形し、このG、即ち
G=F×(T^2+Trad^2)(T+Trad)
をユーザーサブルーチンで定義します。
ユーザールーチンは使い出すとこれ程便利なものはありません。複数のユーザールーチンをリンクしたり、オリジナルルーチンを追加するとさらに機能が広がります。
(編集担当:Happy 2001/12/24)