« 2012年2月 | トップページ | 2012年4月 »

2012年3月

2012年3月31日 (土)

自由度連結の方法(LIAISON_UNIF)と反力の出力

節点自由度の連結方法を試してみましたので、ご紹介します。
今回、下記の情報を参考にさせていただきました。

●OpenCAE Users Wiki - 「SALOME-Mecaの活用技術」の「AFFE_CHAE_MECAの使い方」資料

http://opencae.gifu-nct.ac.jp/pukiwiki/index.php?plugin=attach&refer=SALOME-Meca%A4%CE%B3%E8%CD%D1%B5%BB%BD%D1&openfile=AFFE_CHAR_MECA_LIAISON_1.pdf

●Code_Aster V10の英文マニュアル u4.44.01
http://www.code-aster.org/V2/doc/v10/en/man_u/u4/u4.44.01.pdf

前回、塑性変形の荷重と変位の関係をプロットしましたが、荷重面を拘束していなかったので、正確な結果とは言えませんでした。そこで今回、荷重面の変位を連結して試行してみました。

Code_Asterでは、この自由度連結に「AFFE_CHAE_MECA」の「LIAISON_UNIF」を用います。

###

まず、前回と同じく上面に荷重を与える条件での試行です。

荷重を与える点(press面とZ軸が交差する点)に「pressP」というグループ名を付けました。このグループはGeometryで作成し、その後Meshにて「Mesh_1」を右クリックし、「Create Group from Geometry」を選択し、「Elements」の方にObject BrowserのGeometryの下の「pressP」を指定して作成しています。

07201

下図は、拘束・荷重に関して前回から変更した部分です。

07202

荷重面の荷重方向(つまりZ方向)の変位を「LIAISON_UNIF」で連結しました。ここで荷重に直角方向(X方向、Y方向)の変位については拘束していません。荷重に直角方向への変形を妨げないようにするためです。

荷重は「pressP」点のみに与えました。前回の荷重値が200MPaだったので、

  200 (MPa) × 5 (mm) × 5 (mm) = 5000 (N)

としました。

計算・結果出力についてですが、下図のとおり追加しました。

07203

節点値の計算(CALC_NO)では、FORC_NODA(節点力)とREAC_NODA(節点反力)を追加しました。

結果出力指定(IMPR_RESU)では、RESU_5にFORC_NODA、RESU_6にREAC_NODAのそれぞれ追加して、ポスト処理で参照できるようにしました。

これで計算した結果が下図です。
変位は10倍表示で、4000N(160MPa)で引っ張った状態です。

07204

荷重はpressP点の1点のみに与えていますが、応力や変形は均等になっていることが分かります。

ここで、pressP点について、DEPL(変位)、FORC(節点力)、REAC(節点反力)を出力してエクセルでグラフにしました。

07205


これを見ると、pressP点の荷重値(FORC・青色の線)は、引っ張り側への荷重最高点で10Nしかありません。この時点では外部から4000Nの荷重が作用していますが、残りの3990Nは連結されている他の節点に振り分けられています。そしてpressP点は、それら他の節点からの反力を受けています(REAC・赤色の線)。

変位連結した面のいずれかの節点に荷重を与えた場合、その荷重値は、荷重節点のFORC値からREAC値を引いた値となります。上の例では、「10 - ( -3990) = 4000」です。

これはデータ書き出し後に計算する必要があり、間違いの元になります。したがって、このような場合の荷重値としては、結果からプロットするのではなく、Timeを元にして、与えた荷重値を計算するべきと思います。

なお、pressP点の荷重値ですが、全体荷重4000Nのうち10Nということで、10/4000=1/400となっています。
press面には均等な応力が作用しており、同じ面積の正方形要素面が10x10=100面あります。したがって、要素1面あたりの荷重は全体の1/100です。要素1面には節点が4つあるので、節点1個あたりの荷重値は、1/400となります。pressP点は要素1個のみに所属しており、他の要素と共有されていませんので、全体の1/400(つまり10N)がそのまま荷重値となります。

press面の辺上の節点は2要素で共有されているので20N、面内の節点は4要素で共有されているので、40Nとなります(下図参照)。

07206

この事例のメッシュファイル(mmed)とAsterファイル(comm)は下記にzip圧縮して置いています。

http://salome-meca.cocolog-nifty.com/samples/07-20d.zip

###

次に、press面を変位で制御する方法での試行を行いました。

本来ならLIAISON_UNIFを用いる必要は無く、press面の全節点をDDL_IMPOでZ方向に一律変位させれば済む話ですが、変位を連結した上で、変位条件を与える点を1点のみとしたとき、その点に反力が集中すれば、反力を読み取る点が一つで済むのではないかという目論見です。

commファイルの変更点は下図の通りです。

07207

時間とともに変化するpressP点へのZ方向変位を1辺の初期長さである「5mm」として、DEFI_FONCTIONによる時間変化を
(0,0)
(1, 0.0015) *弾性範囲
(2,0.016)  *塑性範囲
とひずみ値にすることで、5mm×(ひずみ)=(変位)になるようにしました。

DEFI_LIST_REELは、time=1を超えたところ(塑性域のはじめのところ)を細かい刻みにしています。

なお、この試行については、引っ張りの片道だけ(ひずみ0.16まで)にしています。

これで計算させて反力を表示させたところ、反力はpress面全体に均等分布してしまいました。

07208

pressP点の1点に反力がまとめられるという目論見が外れたことになります。

私が普段仕事で使っているFEM解析ソフト(Marc)では、この方法によって1節点に全反力を集約できるので、よく使う手法なのですが、Code_Asterの場合はどうすればよいのか調べる必要がありそうです。

ビーム要素を剛体扱いにしてpress面と結合させれば出来そうな気もしますが、結果出力のためだけにそのようなモデルを作るのもちょっと面倒です。

この事例のメッシュファイル(mmed)とAsterファイル(comm)は下記にzip圧縮して置いています。

http://salome-meca.cocolog-nifty.com/samples/07-20e.zip

ParaviewによるデータのプロットとCSVファイル出力

前回、日本語例題7.2(塑性-結果の検証)を実施しましたが、データをグラフにプロットして結果を確認するとことが未実施でした。

解説文書「07-20.pdf」では、データをPost-Proで表示させて値を読み取っているようですが、STEP数が多いとそれも大変なので、私は「Paraview(ParaViS)を用いてグラフを表示させる」方法と、「CSVファイルへの出力->WindowsのEXCELででグラフ化する」方法の2通りを試してみました。

Paraviewの使い方、特に今回使用した「選択機能」、「時間に沿ってプロットする」については、下記の日本語解説文書を参考にしました。

サイト
http://paraview.org/Wiki/The_ParaView_Tutorial

ファイル名
http://paraview.org/Wiki/images/0/03/ParaViewTutorial38-jp.pdf

まず、プロット対象となる節点(ポイント)を選択する必要がありますので、その準備として、メニューから「View」-「Windows」-「Selection Inspetor」を表示させました。

それから、変形表示のために表示状態にしていた「Warp by Vector」フィルタを非表示にして、元形状「07-20b.med」の方を表示し、ツールバーのドロップダウンリストで表示の方法を「Points」にしました。

これで節点が選択できる状態になったので、ツールバーのアイコンから「Select Points through」をクリックし、画面に表示されているポイントから、press面とZ軸の交差しているところの節点を囲むようにして選択しました。

0720c1

本来は「Selects Points On Surface」で選択すべきかと思いますが、今回の例では目標の点がどうしても選択できませんでした。これについては、メッシュ作成時点で対象節点にグループ名を付けておけば、Selection Inspectorでその名前にて選択できたかもしれません。

選択した節点番号は、「Selection Inspector」-「Point Label」で「Visible」のチェックを入れ、Label Modeを「MED_POINT_ID」にすると表示されました。

対象の節点が選択できたら、次にグラフの作成です。

メニューから「Filters」-「Data Analysis」-「Plot Selection Over Time」を選択してから、「Object Inspector」-「Properties」タブ上の「Apply」ボタンをクリックすると、Object browserに「PlotSelectionOverTime」が追加され、表示領域にグラフが表示されました。

0720c2

このグラフは初期状態で、横軸が時間、縦軸が選択した節点のパラメータになっていましたので、これをカスタマイズしていきました。

Object Browserで「PlotSelectionOverTime」を選択した状態で、「Object Inspector」-「Display」タブを表示させ、「X Axis Data」に「RESU_DEPL(2)」、Line Seriesの中で「RESU_SIEF_NOEU(2)」のみにチェックが入った状態にしました。

RESU_DEPL(2)は変位(Z成分)、RESU_SIEF_NOEU(2)は応力(Z成分)です。これらのカッコ内の数字は各成分の順になっており、0がX成分、1がY成分、2がZ成分になります。

プロット点は●にしました(Maker Style -> Circle)

0720c3

更に軸見出しやフォントなどを調整しました。これは下図の赤丸の部分(グラフの左上)をクリックすると、「View Settings」画面が立ち上がりますので、そこで行いました。

0720c4

これで「応力-変位グラフ」が完成しました。解説文書(07-20.pdf)の荷重ー変位のグラフと同じになっていると思います(縦軸の符号が逆ですが)。

#######################

完成したグラフをキャプチャするなどしてレポートに貼り付けてもいいのですが、データやグラフを加工するなら慣れたエクセルで行いたいと思いましたので、データのCSV出力も行いました。

これはまず、「PlotSelectionOverTime」のグラフの右上のView分割ボタン(日)を押して、新たに作られたViewで「Spreadsheet View」を選択します。

0720c5

これでスプレッドシートが現れますので、Showingが「PlotSelectionOverTime」になっていることを確認します。また、精度(有効数字)を必要に応じて変えます。それから「File」-「Export」でcsvファイル名を指定して書き出します。

0720c6

これでCSVファイルが出力できました。ファイルの内容はグラフの内容にかかわらず、結果出力されている全ての節点値が書き出されています。これをエクセルに取り込んで編集とグラフ作成を行いました。

下図は、横軸を変位(Z成分)から計算したひずみ(Z成分)として、縦軸を応力(Z成分)としたものです。

0720c7

これはZ方向の応力とひずみですが、解説文書の相当応力-相当ひずみのグラフと近い結果になっています(全く同じではありません)。今回の事例が単軸変形に近い状態であるためと思われます。

今回は以上です。

2012年3月25日 (日)

日本語例題 7.2 塑性-結果の検証

今回は、こちらの例題の「7.2 塑性-結果の検証」、解説文書ファイル名は「07-20.pdf」です。
DEXCS2011-Salome-A3(64)(SALOME6.3 + Code_Aster STA10.5)の利用です。

前回に引き続き塑性変形(材料非線形解析)なのですが、今回、解説文書どおりの設定ではなかなか計算が収束しませんでした。そこで、どうせ試行錯誤するのであれば、モデル化の方法や境界条件の与え方などについて、自分の分かりやすいやり方に変えることにしました。

そのため、今回は解説文書どおりのやり方になっていません。

さて、まずモデル化ですが、形状と境界条件の対称性から、本来10x10x10の立方体を、x,y,z方向にそれぞれ半分とした1/8モデル(つまり5x5x5)としました。そして、3つの対称面に、fixX,fixY,fixZというグループ名、荷重面にはpressというグループ名を付けました。

0720b1

解説文書では、下面が固定・上面に荷重でしたが、私のモデルでは、上下面から均等な荷重で挟まれることになります。

メッシュは1次の六面体要素としました。Maxsize=1.25で、メッシュは10x10x10となりました。

0720b2

このメッシュを「07-20b.mmed」という名前でエクスポートしました。

次に、前回の例題(07-10)の円柱圧縮のcommファイルを複製し、07-20b.comm という名前にして、これをEficasで編集していきました。

材料物性値は解説文書どおりで、塑性部分のデータに(2,1000)を追加しています。

fixX, fixY, fixZ の対称面はそれぞれDX, DY, DZ の自由度を拘束し、press面には200MPaの圧力荷重としました。

前回はpress面の変形を拘束する「LIAISON_UNIF」を入れていましたが、今回はこれを削除しています(収束しにくかったため)。
荷重の変化も解説文書どおりです(160MPaで引っ張り->200MPaで圧縮->荷重ゼロ)。

0720b3

荷重ステップの刻み方(DEFI_LIST_REEL)ですが、下図の通り、解説文書より細かい刻みにしています。特に荷重が反転した直後で収束しにくいため、その部分を細かくしました。

収束判定は最大残差力による相対判定(対・最大反力&節点荷重)としました(RESI_GLOB_RELA)。値は0.05です。また最大リサイクル数(ITER_GLOB_MAXI)は300としました。

0720b4

以後の計算結果・出力関連の部分は分からないことが多く、試行にかなり時間がかかりました。

要素と節点の計算内容を指定するところ(CALC_ELEM, CALC_NO)ですが、解説文書はVon Mises相当応力と相当ひずみを出しています。しかし私としては、荷重方向(Z軸方向)の応力成分が欲しいところだと思いました。そこで、CALC_ELEMで「SIGM_ELNO」を追加しようとしたのですが、これが選択肢に見当たりませんでした。

Code_Aster 10の英文解説「U4.81.01」(下記URL)の2.5.1項辺りを見ると、どうも「SIGM」は線形解析の場合に使うもので、非線形解析の場合は「SIEF」というものがあるようです。変位からの応力計算時に材料非線形を考慮するかどうかの違いでしょうか?。あまり時間が無く英文を斜め読みして式をちゃんと見ていないので、間違っていたらすみません。

http://www.code-aster.org/V2/doc/v10/en/man_u/u4/u4.81.01.pdf

とりあえず、ここでは「SIEF_ELNO」を追加指定しました。

また、CALC_NOでは「SIGM_NOEU」と「SIEF_NOEU」の両方があったので、両方とも入れました。

0720b5

最後の出力設定(IMPR_RESU)も、分かりにくいところです。これについては、解説文書にある「変位(DEPL)」、「相当応力(SIEQ_NOEU)」、「相当ひずみ(EPSI_NOEU)」の3つに、「応力(SIEF_NOEU)」を加えました。ただし、成分を指定するところ(b_cmp)は良く分からなかったので、全部(TOUT_CMP)にしました。とにかく、「分からない場合は、とりあえず全部入れとけ」という考えです。

0720b6

これでEficasでの編集は完了。ASTKの設定を下図の通りとして計算を実行しました。

0720b7

警告は出ますが、一応計算完了です(実際は、収束判定値やステップ刻みを何度も変えて試行錯誤しています)。

結果はParaViS(Paraview)で出力しました。変形前の形状をワイヤーフレーム、変形後の形状をサーフェスとし、SIEF_NOEUのZ方向の成分(SIZZ)でコンター表示させました。変形のスケールは10倍としています。

160MPaで引っ張ったときの図です(time=1)
0720b8


200MPaで圧縮したときの図です(time=3)
0720b9


最後に荷重ゼロとしたときの図です(time=5)
塑性ひずみによって変形が残っていることが分かります。
0720b10

一連のアニメーションです。

これらの表示方法については、「Paraviewでのアニメーション」(下記URL)で解説しています)。
http://salome-meca.cocolog-nifty.com/blog/2012/03/paraview-951b.html

さて、解説文書ではこのあと荷重と変位の関係について、データをプロットして検証しています。しかし、Post-ProやParaviewの表示を見て、1ステップずつ値を書いていくのは大きな手間です。特にステップ数が多くなると、とても手作業ではやっていけません。

そこで、Paraviewによるプロットとデータ出力の機能を用いることにしました。
それに関しては次回に紹介します。今回は以上です。

2012年3月17日 (土)

Paraviewでのアニメーション

Salome-Mecaでの解析結果の可視化には、Paraview(SALOMEのメニューではParaViS)が使えます。

前回実施した日本語例題「07-10」についても後半の結果はParaviewで表示させてみましたが、やはりPost-Proより高機能だし、説明書を見なくても直感的に使える部分が多いです。

とはいえ、細かい部分は説明を見ないと分かりにくい部分もあります。これについては、下記URLに詳しい日本語解説があります。

http://www.paraview.org/Wiki/The_ParaView_Tutorial

(Japanese Translation of the ParaView Tutorial for version 3.8.)というリンクです。

これを読めばほとんど問題なく使えると思いますので、ここでは使用法の説明は省略し、使ってみた例を紹介します。

前回の日本語例題(塑性変形-負荷を変化)の結果について、変形前形状をメッシュのワイヤーフレームで、変形後の形状をサーフェース&Mises応力のコンターで表示し、それらを半分のカット図にしてみました。

0710b1

Paraviewの表示は、元の状態に色々なフィルターを多段接続してカスタマイズしていけますが、これは元の形状に「Warp By Vector」を接続して変形とMises応力のコンター表示をさせ、更に「Clip」フィルターでカットしています。そして表示させるのは「Clip」の方であり、元の形状は非表示にしています。

それから元の形状にもう一つ「Clip」フィルターを繋ぎ、変形前のワイヤーフレームも半分にカットしました。これらフィルターの接続状況は画面左のブラウザーで確認できます。

細かいことを言えば、ワイヤーフレームの色をデフォルトの白から黒に変えたり、カット面を非表示にするなどの変更もしています。

アニメーション表示も簡単で、単に画面上部のアニメーション制御のボタン類を押すだけで表示できます。ここで私が感心したのは、アニメーションの表示モードの「Real Time」です。これは、「View」-「Windows」-「Animation View」で画面下がアニメーション制御画面になり、そこで選択できます。

0710b2

通常パラパラ漫画形式のアニメーションでは、コマ間隔が等間隔になりますので、「07-10」のように、時間軸方向にコマが不均等に並んでいる場合、細かい出力間隔の所ほどスロー再生となってしまします。しかし「Real Time」モードでは、時間の進みを一定にしてアニメーションを進行させてくれます。実時間に対する倍数も設定できます(解析時間の1秒を実時間の10秒で再生するなど。今回はそうしてます)。

さて、このアニメーションは動画出力も出来ます。

「File」-「Save animation」で表示される画面にて、出力する動画の設定を行いました。

0710b3

出力時間は10秒、フレームレート15fps、解像度は表示されているまま(874x481)としました。これで「Save Animation」を押すだけです。

ただし、出力されるのは「ogv」形式の動画となります。DEXCS-Salomeでは、OSに「動画プレーヤー」が入っており、これでogv形式動画を見る事が出来ますが、Windows機やWEBに出したい場合は変換する必要があります。

これも都合良く、DEXCS-SalomeのOS(Ubuntu)に「PiTiVi」という動画編集ソフトが有り、これでAVI形式に変換できました。

0710b4

「クリップの取り込み」で作成したogvファイルをライブラリに追加し、それをタイムライン部分にドラッグ&ドロップするだけで、編集はしていません。そのまま「プロジェクト」-「プロジェクトのレンダリング」で、ファイルの出力を行いました。

ここでサイズを640×480とし、フレームレートを15fps、コンテナをAvi muxerとしました。音声は入っていないのですが「無し」という設定が無かったので、そのままです。
(後で気が付きましたが、アスペクト比を全く考慮せずサイズ変更していました。今後はちゃんと計算が必要です)。

これで出力ファイル名をaviの拡張子で設定して、「レンダリング」を押すと、avi形式の動画ファイルが書き出されました。

これはWindows機でもメディアプレーヤーで見る事が出来ます。後は、WMVやMP4に変換したり、WEBにアップロードしたり好きなように出来ますが、ブログに貼り付けるならYouTubeにアップロードするのが簡単そうです。

このように、Paraviewは色々と凝ったことが出来そうですが、凝り出すとどんどんと時間を食っていきそうなので、程々にしておく必要がありそうです。

今回は以上です。

日本語例題 7.1 塑性(負荷を変化)

今回は、こちらの例題の「7.1 塑性-負荷を変化させる」、解説文書ファイル名は「07-10.pdf」です。
DEXCS2011-Salome-A3(64)(SALOME6.3 + Code_Aster STA10.5)の利用です。

Geometryでモデルのファイル「pole.stp」を読み込んで、いつものとおり1000倍し、fix面とpress面のグループ指定を行った後、Meshに移動してメッシュ作成を行いました。メッシュのオプションは下図の通りで、Automatic_length = 0.3 としています。

また今回は「ASTK」を用いてCode_Asterを実行する方法を用いるため、Msehの下にグループが必要となります。そこで、解説文書どおりに「Mesh_1」の上で右クリックし、「Create Group」を選択、そこで「Face」と「Group on geometry」をチェック、「Geometrical Object」の矢印をクリックしてObject Browser上の「fix」を選択して、「Apply」でグループ作成しました(「press」も同様)。

07101

メッシュ作成と、メッシュのグループ作成後の状態が下図です。

07102

それからASTKの利用のため、このメッシュを解説文書どおりに「pole-1.med」という名前でexportし、また「7.0 塑性変形の基本(2)」で作成した円柱解析のcommファイルを複製して、「pole-1.comm」の名前で保存しました。、medファイルにはメッシュとメッシュグループの情報が入っています。また、commファイルには、これまでのEficasでの編集で分かるように、解析条件やオプションの情報が入っています。

さて、いよいよ初めて「ASTK」の使用を行っていきます。これまではSALOMEのWizardで線形解析のコードを作成して、それを修正していました。しかし非線形解析を行うには修正箇所が多い上に、複数のケースを実施する場合には、何度もWizardと修正の実施を繰り返すことになるため非効率でした。

ASTKは、メッシュファイル(medファイル)と、解析条件・オプションの指定(commファイル)を別々に指定できるため、形状やメッシュ分割が変わっても、解析条件が同じならばメッシュファイルを差し替えるだけで計算できますし、解析条件が変わっても、commファイルの該当部分のみをEficasで変更するだけで済みます。

解説文書「07-10.pdf」には、まずASTKファイルの作成を「NEW-FE-Study」で行う、と書かれていますが、このようなプログラムは見当たらないため、とりあえずASTKを立ち上げてみました。
モジュールをAsterにして、「Aster」-「Tools」-「Run ASTK」です。
立ち上げ時に下図のメッセージが出ましたが、フランス語ですし、これもとりあえず無視です。
(これはドメインの設定をしていない場合の警告ですが、localで計算する場合、解説文書に書かれているような設定はしなくても動くようです)。

07103

ASTKが立ち上がりましたが、これも表示がフランス語でした。これでは操作が分からないので、英語表示にしました。「Configuration」-「Preferences」-「Generales」で表示される画面にて、Langueを「ENG」に変えて、「OK」で英語表示になりました。これで一安心です。

07104

次に各ファイルの設定をしていきました。

07105

「med」と「comm」はフォルダのアイコンを押して選択画面から既存のファイルを指定するだけです。「resu」、「mess」、「rmed」は、新規ファイルのアイコンを押して入力行を作成し、手入力しました(既存のファイルがあって上書きする場合は、ファイル指定で良いです)。

「resu」は結果出力ファイルのようです。「mess」は解析の進行や収束状態を書き出すlogのような情報で、「rmed」はメッシュ形式(med)で結果を書き出すファイルのようです。後から気がつきましたが、ポスト処理で読み込むことを考えると、入力メッシュの拡張子を「mmed」にして、出力メッシュの拡張子を「med」にしておいたほうが良いかと思います。

なお、この「手入力」ですが、最初キーボードからの入力が効かず焦りました。どうやらOSのインプットメソッドが有効になっていると何故か入力できないようです。下図のようにUbuntuの画面上部のキーボードのマークをクリックし、「終了」させる必要がありました。

07106

それから、Total MemoryとTimeも状況に応じて増やしておいたほうが良さそうです。

この状態で、「File」-「Save as」でASTKファイルを「pole-1.astk」として保存し、まずASTKでの解析が正常に動作することを確認するため、何も変えずに実行しました(つまり、07-01と同じく圧縮するだけ)。実行は、右下の「RUN」ボタンを押します。

ASJOB画面にメッセージが表示され、警告はありますが計算が正常に完了しました(Refreshボタンで、最新の状況に更新されるようです)。結果はPost-Proにて「File」-「Import」-「MED File」で読み込めますが、File Typeを「*.med」からAll Files「*.*」にしないと「.rmed」ファイルが出てきません。そのため結果のmedの拡張子は「.med」のほうが良さそうです。

07107

ASJOB画面で不要なJOB情報は、それを選択して「Remove」で消せます。

##########################

次に、解説文書にあるとおり、圧縮して元に戻す解析です。

これは解説どおりの設定ではなかなか収束せず、試行錯誤を繰り返した結果、下図の設定でやっと計算できました。

07108

荷重の変化(「DEFI_LIST_RELL」)ですが、0.5まで荷重を増やした後、すぐに荷重を反転させず、0.55までの間一定荷重を保持しています。これで収束しやすくなりました。この解析は静解析なので時間に依存する慣性や粘性などの効果は無いですし、収束許容値も十分小さいはずなのですが、一定荷重で余分に繰り返し計算することで何かコンディションが良くなるのかもしれません。

イタレーション(「ITER_GLOB_MAXI」)の回数は600に増やしています。

材料物性値も、塑性部分で(2,3000)と(4,6000)のデータを追加しています。

圧縮時の変形・Mises応力図です。

07109

伸張時の変形・Mises応力図です。

071010

#####################

次に、「塑性変形の形状確認」です。
これまでは変位で圧縮->伸張していましたが、これは荷重で圧縮して、それから荷重を抜くため、変形が残ったままになります。

メッシュファイルは「pole-1.med」をそのまま使い、commファイルは「plole-1.comm」を複製して「pole-2.comm」としました。その他の出力ファイル類は全て「pole-2.xxx」の名前にしました。
ASTKファイル名も、「pole-2.astk」にしています。

071011


解説文書通りに荷重を設定し、計算を実行したのですが、これもかなり難航しました。計算が600リサイクルでも収束しないため、メッシュを細かくしたり、荷重増分を細かくしたり、収束許容値を変えるなど、かなり多くの試行錯誤が必要でした。結局、メッシュは元に戻し、下図のような設定で、警告は出るものの曲がりなりにも結果が出ました。

071012

荷重が反転した直後の刻み幅をかなり細かくし、さらに収束判定値「REGI_GLOB_RELA」を「1e-2」と大幅に緩めました。この収束判定値ですが、

http://www.code-aster.org/V2/doc/v10/en/index.php?man=U4

の英文マニュアルの 

[U4.51.03] Operator STAT_NON_LINE

3.14.1項にて解説されています。

最大残差力が、反力または荷重の最大値にこの値を乗じた値より小さければ収束となるようです。私が使っている商用ソフトでもデフォルトの判定方法は概ね同じですが、そのデフォルト値は0.1となっています。これはちょっと緩すぎるのでいつも0.01程度にしています。

結果はParaVIS(Paraview)で出してみました。

負荷状態
071013

除荷状態
071014

Paraviewで読み込むためには、結果の「.rmed」ファイルの拡張子を「.med」に修正しておきます。
(はじめから、「.med」の拡張子で出しておいたほうが手間が少なくて済みそうです)。

モジュールを「ParaViS」にして、「File」-「Open Paraview File」で「.med」ファイルを読み込み、上部のアイコンが並んでいる部分で、「RESU_SIEQ_NOEU」「VMIS」を選択してApplyを押すと結果がMises応力で表示されます。解析時間に従いコマ送り・戻しをするには、右上のアニメーション制御関係のボタンか、「TIME」を使います。

また、変形した状態で表示するには、フィルターを用います。「Filters」-「common」-「Warp By DEPL」を選び(または“梁が変形しているアイコン”を押す)、Vectorsに「RESU_DEPL」、Scale Factorに変形表示倍率(今回は1)を入れてApplyを押すと、変形状態で表示されます(上図参照)。

Paraviewは、このようにフィルターを繋げて目的の表示状態を作り出していくことが出来ます。

なお、Paraviewの使用方法については、下記のサイトに詳しい日本語の解説文書があります(“Japanese Translation of the ParaView Tutorial for version 3.8”のリンクです)。私もこれを参考に使わせて頂いていております。

http://paraview.org/Wiki/The_ParaView_Tutorial

今回は以上です。

日本語例題 7.0 塑性変形の基本(2)

今回は、こちらの例題の「7.0 塑性変形の基本(2)」、解説文書ファイル名は「07-01.pdf」です。
DEXCS2011-Salome-A3(64)(SALOME6.3 + Code_Aster STA10.5)の利用です。

今回から塑性変形(材料非線形解析)を扱っていきます。
この「07-01.pdf」の前に「07-00.pdf」があるのですが、これまでの経験から、これは古い方法での例題であると思われるので、省略しました。

まず、いつものように形状ファイル「bar-100x20x10.stp」を読み込んで、1000倍し、fixとloadのグループを設定しました。
メッシュは四面体1次で、Maxsize=5で作成しました。

それからWizardで基本のコードを作成し、Eficasにて解説文書どおり、コードの編集を行いました。

解説文書ではSI単位を用いていますが、私はmm単位なので、材料の応力や弾性率はMPaとしています。

07011

07012

解説文書では、「STAT_NON_LINE」の下の「ARCHIVAGE」に、「ARCH_ETAT_INIT(OUI)」があるのですが、私の環境ではこれが出てきませんでした。また、CHAM_EXCLUについては設定を忘れていたことに後で気づいたのですが、計算には影響なかったようです。

計算結果は下図です。

07013

降伏点(105MPa)以上が赤色の部分です。

次の線形解析との比較は省略し、円柱の圧縮を行いました。

「Pole.stp」を読み込んで、いつもどおり1000倍し、グループを作成しました。
メッシュは四面体1次要素で、Maxsize=2 です。

07014

Eficasによるコード編集は、barと同様に行い、更に、材料の応力-ひずみの定義に「(2,3000)」のデータを追加、また、DEFI_LIST_REELについても、解説文書どおりに圧縮はじめの0.0~0.1までを5分割、0.1~1.0までを5分割としました。

これで計算開始したのですが、どうもインクリメント回数の上限に達したようで、途中で停止してしまいました。そこで、ITER_GLOB_MAXIを300にして再計算したところ、最後まで計算できました。

07015

なお、今回は練習問題ということで1次要素を使っていますが、実際には四面体の1次要素は推奨できません。四面体要素を使うのであれば、2次要素を使うべきだと思います。

今回は以上です。

2012年3月11日 (日)

日本語例題 6.1 接触解析(摩擦あり2)

今回は、こちらの例題の「6.1 接触(摩擦あり)(2)」、解説文書ファイル名は「06-11.pdf」です。
DEXCS2011-Salome-A3(64)(SALOME6.3 + Code_Aster STA10.5)の利用です。

前回「06-10.pdf」は接触の定義方法が古かったためコード編集が出来ず中断しましたが、今回は新しい方法での実施です。

モデルについては、解説文書では“「baseTop-1.stp」を読み込む”とありますが、前回Geometryから作成したモデルがあるので、私の方では前回のモデルをそのまま用いて進めました。

メッシュの作成、WizardでのAster基本コードの作成までは前回と同一です。

Eficasでのコード編集ですが、接触の設定として「DEFI_CONTACT」を用いました。これは「06-01.pdf」と同じく、新しい設定方法となります。

●まずは、3-1項「変位拘束(摩擦無し)」です。

後は基本的に解説文書と同じですが、私の方ではモデルをmm単位で作成していますので、変位の単位は[mm]、ヤング率は[MPa]となります。
最終的な設定は下図の通りとなりました。

06111

06112

結果は下図です。

06113


問題なく解析できました。
摩擦が無いので、円柱の応力に偏りはありません。

●次に、3-2項「変位拘束(摩擦あり・ペナルティ法)」です。

解説文書どおり、ペナルティ法、摩擦係数=1.5、最大イタレーション数=30を設定しました。

06114

結果は下図の通りです。
摩擦があるため、円柱のが傾いて、応力がX方向に偏っていることがわかります。

06115

●次に、3-3項「荷重拘束(摩擦あり・ペナルティ法)」です。

荷重拘束では剛体移動を防ぐために「弱いバネ」を設定しますので、Geometryにてバネを追加する点のグループ「addSp」を作成しました。それからMeshに移動しましたが、MeshモデルにaddSpグループは追加されませんでした(解説には追加されると書かれています)。しかし、ここはそのまま進めました。

それから、既存の.commファイルを複製し、「Aster」-「Add study case」でnew_caseを作成して、それに複製した.commファイルを適用しました。
また,Memoryは256MB、Timeは1000secに増やしています。

Eficasによるコードの編集ですが、おおむね解説文書どおりです。ただし、バネ定数はN/mmの単位になりますので、1e2,1e2,1e2としました。
なお、バネの設定のところ(AFFE_CARA_ELEM)については解説文書と若干違っているようです。

06116

Top上面に与える圧力も、解説文書とは異なり1.0[MPa]です。
節点荷重の出力設定も行いました。

結果は下図の通りです。

06117

摩擦係数が1.5のままなので、Topが引っかかっている様子がわかります。そこで解説文書どおり摩擦係数を0.2に変えて計算しました。

06118

こちらには引っかかりはありません。

節点反力ですが、「new_case.resu」ファイル内に出力されていました。

06119

これをエクセルに取り込んでX方向の値を全て足し合わせると、4.92[N]となり、解説文書とおおむね一致しました。

●次に、3-4項「荷重拘束(摩擦あり・ラグランジュ法)」です。

解説文書どおりコードを書き換えて実行したのですが、収束しないというエラーが生じます。
イタレーションや、荷重増加の分割数を変えましたが、ダメなようでした。

解説文書では、Baseの0.5mm移動について、分割するとエラーになるので、1回で一気に移動するというようなことが書かれています(それだと上手くいくようです)。しかし、非線形解析の目的としては、最終状態のみならず、途中の履歴を検証したいということもあります。

非線形解析の中でも、接触・摩擦は難しい分野です。収束させるには解析ソフトウェアの処理内容をよく理解し、問題によって設定を上手くしていかないとなかなか収束解は得られません。

なので、今回はこのぐらいにしておき、接触・摩擦機能の検証はまたの機会にしたいと思います。

日本語例題 6.1 接触解析(摩擦あり1)

今回は、こちらの例題の「6.1 接触(摩擦あり)」、解説文書ファイル名は「06-10.pdf」です。
DEXCS2011-Salome-A3(64)(SALOME6.3 + Code_Aster STA10.5)の利用です。

前回に引き続き接触問題で、今回は摩擦の考慮をしていきます。

はじめにモデルの読み込みですが、解説文書では“「GraphiteOne」で作成した”、となっていますが、私の環境にはそれは無いので、この機会にSALOMEのGeometryで作成する練習をしてみました。

まず、「New Entity」-「Primitives」の「BOX」でBaseとなる直方体を作成しました。作成方法はいくつか選べますが、デフォルトの、3方向の長さを指定する方法としました。おなじくTopとなる円柱を「Cylinder」にて作成しました。

両方とも原点を基準で作成されるので、重なっています。位置を指定して作成することも出来ますが、今回は、「原点を基準にて作成」->「所定の位置に移動」という手順としました。

06101

つぎに、円柱を対称面で半分にする必要がありますが、これはBooleanでCutすることにしました。Cutするのに用いる大きめの立方体(50x50x50)を、下図のように作成しました。この立方体も、原点を基準で作成し、所定の位置へ「Operations」-「Transformation」-「Translation」で移動させています。

06102

そして、「Operations」-「Boolean」-「Cut」で、円柱を大きい立方体でカットしました。

06103


それから、半分になった円柱を、所定の位置まで移動させました。

06104

解析に用いるのは、Baseとなる直方体と半円柱だけですので、この2つを「New Entity」-「Build」-「Compound」でまとめました。

最後に、解説文書どおりにグループ設定を行い、ソリッドモデル作成は完了です。

06105

メッシュについては、四面体1次要素で、Automatic Length = 0.2にて作成しました(オプションなどは下図参照)。

06106

さて、ここからAster Codeの作成になります。
Wizardを使って基本コードを作成し、Eficasを立ち上げて編集しました。

解説文書どおりに設定していったのですが、接触の設定を行うところで、「AFFE_CHAR_MECA」に「CONTACT」を設定できませんでした。

06107

これは、以前実施した「06-00.pdf」の例題と同じで、設定内容が古いバージョンに基づいているためです。現在は「DEFI_CONTACT」を用いる必要があります。

そういうわけで、この例題はここまでとします。次回、新しい方法での解説である「06-11.pdf」を実施します。

2012年3月 8日 (木)

アニメーションの作成と表示

こちらの日本語例題の06-00以降は非線形解析ということで、結果が段階的に出力されています。これらの結果は各時間毎に個別に表示することになるのですが、出来れば連続的に変化する様子をアニメーション表示(紙芝居表示)したいものです。

そこで、アニメーション表示機能を試してみることにしました。なお、アニメーションの作成方法は、こちらの日本語例題においても「12-00.pdf」にて紹介されています。

まず、オブジェクトブラウザのPost-Pro以下のツリーで、出力したい結果(今回は“RESU___DEPL,-”)の上で右クリックし、「Parallel Animation」を選択しました。その下に「Successive Animation」という選択肢もあるのですが、こちらも同様の内容であり、違いが分かりません。

0601b0

次に、表示されたアニメーション画面で「Setup Animation」をクリックし、セットアップ画面を出しました。ここでは、アニメーションの「コマ」の選択方法などを決めますが、今回は時間の範囲で指定する方式で、0-1の間としました。

0601b1

さらに「Properties」をクリックし、表示の内容設定を決めます。これは従来の表示設定と同じです。今回は下図のように設定しました。

0601b2

0601b3_2

表示の内容設定、およびアニメーションセットアップ画面を「OK」で閉じ、アニメーション画面で「Generate frames」をクリックして、フレーム作成を行いました。これで、1コマ目が表示されました。この段階では、表示画面の回転や移動などが行えます。

これで準備が完了しましたので、アニメーションを表示できます。
アニメーション画面中の再生ボタン(右向き三角)で順次表示していきます。再生ボタンの下の二重の三角ボタンはコマ送り・戻し、その下の二重三角+垂直線ボタンは、最初または最後のコマに飛びます。

0601b4


再生速度は再生ボタンの右側のホイールを上下にドラッグで回転させて変えます。私は最初これの操作がわからず、ホイール部分を何度もクリックしていたのですが何も変わらず、後で「ドラッグして回転させる」ということが分かりました。

また、アニメーション画面下半分の「Saving」で、「Saving pictures to directory」にチェックを入れ、画像の種類と保存場所を指定してから「再生」すると、各コマの静止画を連続で出力・保存できます。

0601b5

なお、その下の「Save animation to AVI file」では動画として出力できるようですが、これは「“jpeg2yuv”が必要」とのメッセージが出て、指定できませんでした。とりあえず、出力した連続のjpegファイルを、Windows機に移してGIFアニメ化してみました。

Anm0601

それから、アニメーション表示は、メッシュ分割線やソリッドの外形線が表示されていない状態で表示されます。私としてはメッシュ分割線を表示させたいのですが、アニメーション画面上で右クリックしても、表示を変えるメニューが出てきませんでした(静止画では、「Representation」->「Surface frame」でメッシュ分割線が表示されます)。SALOMEのメニューバーからも変更できませんでした。線が無い状態だと形状を把握しにくいので、せめて各ソリッド毎の外形線だけでも表示させたいのですが、その方法が分かっていません。

最後に、アニメーション画面の下の「Publish to study」、「Save Animation」ボタンですが、これらを押すと、オブジェクトブラウザ上にアニメーションが保存されたような表示になります。しかし私の環境では、この保存されたアニメーションを再度アニメーション画面で開いても、表示などの設定は初期に戻っていました。どうすればアニメーションの設定内容まで保存できるのかは今のところ分かりません。

いろいろと分からないことが多いですが、とりあえずは基本的なアニメーション表示は出来ました。

2012年3月 6日 (火)

日本語例題 6.0 接触解析の基本(2)

今回もこちらの例題の「接触解析の基本(2)」、解説文書ファイル名は「06-01.pdf」です。
DEXCS2011-Salome-A3(64)(SALOME6.3 + Code_Aster STA10.5)の利用です。

前回、「06-00.pdf」を実施しましたが、EficasによるAster Codeの編集段階で、AFFE_CHAR_MECAの下に「CONTACT」が設定できず、中断していました。それはおそらく古い設定方法であり、すでに削除されている可能性があります。
それに対し、今回は新しい接触設定方法ということだそうです。

まず、メッシュ作成とAsterのWizardによる解析ケース作成(.commファイル作成)までは前回「06-00」と同じです。

ただし、解説文書においては「モデルがメートル単位で作成されるので、変位の境界条件をメートル単位で入力する」とあります。どうやら、「06-00.pdf」と「06-01.pdf」の間のSalomeのバージョンアップで、STEPファイルがmm単位で読み込まれなくなったようです。

そのため、この文書の以後の操作では、SI単位系での設定になっています(変位はm、圧力はPa、ヤング率もPa)。しかし私としては慣れない単位系を用いるのには抵抗があります。したがって、私の方は、これまでどおりモデルを1000倍してmm単位とし、力はN、長さはmm、圧力はMPa、ヤング率はMPaを用いることにしました。したがって、Wizardで設定する銅のヤング率は「130300(MPa)」となります。

次にEficasを立ち上げ、Aster Codeの編集をしていきました。
古い方法では、「AFFE_CHAR_MECA」の下で「CONTACT」の定義をしましたが、今回の新しい方法では、最上位の「DEFI_CONTACT」を用いて接触定義をするようです。

AFFE_CHAR_MECAは解説文書どおりですが、loadPにおけるZ方向の変位はmm単位で、「-0.2」としました。

接触の定義「DEFI_CONTACT」、変位を徐々に変化させるための設定である「DEFI_FONCTION」、「DEFI_LIST_REEL」も解説文書どおりですが、DEFI_FONCTIONの下の「VALE」の入力方法は少し戸惑いました。下図のように、「0,0」、「1,1」というように、XとYをカンマで区切り、座標点ごとのセットで入力していく必要があるようです。

06011

非線形解析の設定は「STAT_NON_LINE」で設定し、線形解析の設定「MECA_STATIQUE」は削除しますが、この作業によって、その後のポスト出力設定部分などで何ヶ所か名前の付け直しが必要になります。これは結構煩雑なので、非線形解析についてもWizardが欲しいところです。

それから、Post処理設定のところですが、出力する応力やひずみなどの名称が、解説文書と異なっています。例えば解説文書では「相当歪」は「EQUI_NOEU_DEPL」となっていますが、そのようなパラメータは無く、文字列から推測も出来なかったので設定できませんでした。おそらく、またどこかの時点で変更があったのかもしれません。今回編集しているのはSTA10.5向けの書式ですが、例えば節点解は下図のようになっています。

06012

「SIEQ_NOEU」(相当応力?)や「REAC_NODA」(節点反力?)のようになんとなく分かるものもありますが、分からないものもあります。自分が出力したいものがどの文字列になるのか分からないのは困ります。公式の英訳解説があるようですが、詳細過ぎて分かりにくいです。

要素解(CALC_ELEM):http://www.code-aster.org/V2/doc/default/en/man_u/u4/u4.81.01.pdf

節点解(CALC_NO):http://www.code-aster.org/V2/doc/default/en/man_u/u4/u4.81.02.pdf

最終的な編集内容は下図の通りです(DEFI_FONCTIONとDEFI_LIST_REELは展開していませんが、解説文書どおりです)。

06013

06014

06014_2

この設定で、うまく計算できました。

06015

結果については、線形解析時は「0,-」だけでしたが、今回は0から1まで0.2刻みで出力されています。

############################

続いて「荷重拘束したときの接触解析」です。

上の解析で作成した「06-01.comm」をOS上で複製し、名前を「06-01-F.comm」にしました。それからSALOMEのAsterモジュールで「linear-static」ケースを右クリックで「EDIT」として、解析コードを「06-01-F.comm」に変えました。

その後のEficasによる編集は解説文書どおりで、特に迷ったところはありませんでした。
ただし、圧力の値はMPa単位として「0.0001」にしました(解説では100Pa)。

これで計算を実行したのですが、下記のエラーが生じました。これは解析したディレクトリにある「linear-static.mess」を開くと確認できました。

JDC.py : ERREUR A L'EXECUTION - INTERRUPTION
>> JDC.py : DEBUT RAPPORT
CR d'execution de JDC en MIXTE
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !  Exception utilisateur levee mais pas interceptee.                    !
   ! Les bases sont fermees.                                                  !
   ! Type de l'exception : ArretCPUError                                      !
   !                                                                          !
   !    Arret par manque de temps CPU au num駻o d'instant : 5                 !
   !       - Temps moyen par increment de charge : 21.030000                  !
   !       - Temps cpu restant      : 20.760000                               !
   !                                                                          !
   !    La base globale est sauvegard馥. Elle contient les pas archiv駸 avant !
   ! l'arret.                                                                 !
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
fin CR d'execution de JDC en MIXTE

これをGoggle翻訳で英訳してみました。

JDC.py: ERROR PERFORMANCE - INTERRUPTION
 JDC.py >>: START REPORT
 CR execution of JDC in MIXED
    !!!!!!!!!!!!!!!!! !!!!!!!!!
    ! Exception  User levee but not intercepted. !
    ! The bases are closed. !
    ! Exception type: ArretCPUError!
    ! !
    ! Stop by lack of CPU time to time o 駻 num: 5!
    ! - Average time per load increment: 21.030000!
    ! - Cpu time left: 20.760000!
    ! !
    ! The overall basis is sauvegard 馥. It contains the archived ? not before!
    ! the stop. !
    !!!!!!!!!!!!!!!!! !!!!!!!!!
 CR end of execution of JDC in MIXED

 JDC.py >>: END REPORT

どうやら、設定していたCPU時間が短すぎるようです(デフォルトの120秒のままでした)。
linear-staticのEDITで、timeを300秒に設定して再計算すると、正常に終了できました。

06016

06017_2

############################

最後に、弱いバネを付加したモデルでの解析です。
ただし、4.1項のBarのみでのバネの挙動検証は省略しました。

これまでの例題を実施したディレクトリを丸ごと複製して、新たなディレクトリで元の06-01を修正して進めました。

まず解説文書通りに、Geometryにてバネを接続する点のグループ(addSP)を作成しました。それからMeshに移動しましたが、Meshの下にaddSPのグループは作成されませんでした(解説には作成されると書かれています)。しかし、そのまま進めました。

次にEficasによるコード編集ですが、これも基本的には解説文書どおりです。
ただし、バネ定数は N/mmの単位にして 1e2,1e2,1e2 としました。また圧力は0.1MPaです。

06018

これで計算を実施すると、正常に完了できました。

06019

図では見えませんが、Meshの下にaddSPのグループも作成されていました。

なお、接触部の応力に偏りがあるのは、BaseとBarの接触部において、両ソリッドのメッシュの位置関係がずれているためです。

今回は以上です。

2012年3月 4日 (日)

日本語例題 6.0 接触解析の基本(1)

今回は、こちらの例題の、接触(基本)「06-00.pdf」です。
DEXCS2011-Salome-A3(64)(SALOME6.3 + Code_Aster STA10.5)の利用です。

今回から荷重や変位を段階的に与えていく、非線形解析の設定に入っていきます。
まずは、接触非線形です。

解説どおり「multi-bar-1.stp」読み込み、いつものように1000倍し、グループを設定しました。解説では、グループが階層的になっています(Baseの下にfixとcontBase、また、Barの下にcontBarとpress)。しかし私の環境では、このようにすると後のAster Code作成のWizardの段階にて、「Nodeの無いグループが云々・・・」というエラーが出て先に進めませんでした。そのため、ここではソリッドもフェイスも同列のグループにしました。

続いて、メッシュは2次の六面体要素で作成しました。
Meshの作成についても、解説とは少し異なっています。これは、私が使用しているSALOME6.3のMesh作成画面が、解説とは異なるためです(バージョン違いのためだと思います)。

GeometryとMeshの設定状況は下図の通りです。
MeshのLocal_Lengthは3にしています。

06001

次にAsterに移り、WizardでAster Codeのひな形を作成し、Eficasで編集を行いました。

しかしここで、AFFE_CHAR_MECAの下に「CONTACT」が設定できませんでした(選択候補にCONTACTが無い)。

06002

05-00」と同じく、どうやらこれも古い設定方法のようで、現在は削除されているようです。
これ以上はどうしようもないので、「06-00.pdf」はこれで中断しました。

次回、新しい設定方法である「06-01.pdf」の例題について実施してみます。

日本語例題 5.1 線形熱応力(2)

今回もこちらの線形熱応力の例題、「05-10.pdf」です。
DEXCS2011-Salome-A3(64)(SALOME6.3 + Code_Aster STA10.5)の利用です。

前回(05-00.pdf)、Eficasにて解説どおり設定できない項目があったので中断し、新しい方法である今回の例題に移ることにしました。

メッシュを作成するところまでは前回とまったく同じです。

続いてAsterに移動し、Aster Codeの編集をEficasで行いました。内容は解説の通り(下図)です。

05101


前回と異なる点として、参照温度(20℃)はAFFE_MATERIAUの下にAFFE_VARCを作成し、そこで定義することです。

ここで気を付けないといけないのは、AFFE_MATERIAUをCREA_CHAMPの下に持ってくるということです。AFFE_MATERIAUの下のAFFE_VARCにて、設定温度の関連付けとして「tempS」を用いているのですが、この「tempS」はCREA_CHAMPの名前として定義しているためです。

はじめ私はこの順番がわからず、AFFE_MATERIAUをCREA_CHAMPの上にしてしまい、AFFE_VARCの下のCHAMP_GDの設定でtempSが出てこなくて、しばらく悩みました。

また、CREA_CHAMPは、AFFE_MODELEの下でないといけないようです。基本的に、参照で用いる名前は、その上側で定義する必要があるようですが、このあたりの前後関係の制約については、慣れないうちは迷いそうです。

さて、上記の設定にて計算をすると、問題なく結果が得られました。

05102

上図は片端の拘束をはずした条件の、X方向の変位です。端の変位が0.234mmであり、前回例題の「05-00.pdf」の解説どおり、理論値とほぼ合致しています。

また下図は片端のX方向変位を拘束した条件の、X方向応力ですが、端部で約166MPaであり、これも前回の「05-00.pdf」の検算と一致しています。正確に計算されているようです。

05103

さて、前回「05-00.pdf」を途中でやめてしまったため、円形のバイメタルの解析検証ができませんでしたので、今回、新しい設定方法でやってみました。

Geometryで「circle2.stp」を取り込み、いつもの通り1000倍しました。また、Meshは2次の四面体としています。

次にAsterに移動してWizardを実施しました。拘束条件は下図の通りです。
(「Cline」は要らない気がしますし、「Cpoint」もDZの拘束だけで良いように思いますが、とりあえずそのままです)。

05104

「.comm」ファイル作成後、それをEficasで編集した結果は下図の通りです。

05105


スペースの都合でDDL_IMPOを展開表示していませんが、上の拘束条件の設定そのままです。

ここでも、AFFE_MATERIAUの下のAFFE_VARCで「set_temp」を参照していますので、「set_temp」の名前を定義しているCREA_CHAMPは、AFFE_MATERIAUの上に置いています。

それにしても、ちゃんとしたフランス語の単語でもよくわからないのに、それが略語となると、まったく意味が分かりません。例題では手順が解説されているのでそれに従えば一応できるのですが、自分で新しいこと(新しい項目や機能の利用)をやろうとするのは、現段階では無理そうです。

Open CAE Wikiの「Salome-フランス語対策」などを参考にして、地道に覚えていくしかなさそうです。

仏語英語の単語対応表へのリンクはこちらです。
http://www.code-aster.org/wiki/doku.php?id=en:p01_util:p120_terms

さて、話がそれましたが、これを計算させると無事に結果が出ました。

05106

対称面付近の応力が高いなど、ちょっと気になる点はありますが、計算自体はこれでできるようです。

ところで、今回私はMeshの下にグループを作成していません。Eficasにおけるグループ指定も、Geometryの下に作ったグループ名で指定しています(Lower,Upperなど)。

しかし結果が出た時点でオブジェクトブラウザを見ると、Meshの下にグループが出来ています。最初はこれが何時できたのか分からなかったのですが、もう一度順を追って操作して調べてみると、計算をRUNした後、結果が出力される段階で現れました。「03-00」では手動でMeshの下にグループを作り、Eficas上でMeshのグループを指定しないと上手くいかなかったのですが、このあたりの仕組みも分かりにくいところです。Wizardの中で、GeometryかMeshのどちらのグループを使うか聞いてくるところがあるのですが、それと関係しているのかもしれません。

05107

今回は以上です。

日本語例題 5.0 線形熱応力

引き続きこちらの日本語例題です。今回は「05-00.pdf」(線形熱応力)です。
DEXCS2011-Salome-A3(64)(SALOME6.3 + Code_Aster STA10.5)の利用です。

まず、Geometryにて形状ファイル「Bar-100x20x10.stp」を読み込みました。いつものようにm単位で読み込まれたので、Operations -> Transformation -> Scale Transformで、Scale factorに1000を入れて1000倍に拡大し、mm単位のモデルにしました。
また、解説通りに端面のグループ(fix0,fix100)も作成しました。

次にメッシュの作成です。
Meshに移動し、「Mesh」-「Create Mesh」で「Assign a set of Hypothees」をクリックし、「Automatic Hexahedralization」を選択しました。しかし、この部分の解説は現在私が使用しているSALOME6.3とは異なるようで、「Automatic Length」という項目は出てきませんでした。これまでもMeshの作成方法については今ひとつよく分からず、悩むことが多かったのですが、今回も色々試行錯誤した結果、下図のような設定で良いアスペクト比の2次六面体要素のメッシュを作成出来ました。

05001

「2D」と「0D」のタブについては、、「Automatic Hexahedralization」で自動設定されたまま触っていません。

これでメッシュが作成完了しました。

05002

次にAsterに移動し、Wizardでひな型となるAster Codeを作成しました。固定面については、拘束する自由度にゼロを入れ、フリーの自由度についてはゼロを消して空白にしておけば良いようです。

05003

それから、作成された「.comm」ファイルを右クリックし、「Run Eficas」でEficasを起動し、解説通りに設定をしていきました。

05004

しかしここで、下記の項目について解説通りに設定出来ないことが分かりました。

(1)材料の設定(AFFE_MATERIAU)に、参照温度(TEMP_REF)が追加出来ない。
(2)AFFE_CHAR_MECAに、温度設定(TEMP_CALCULEE)が追加出来ない。

私が見逃しているのかもしれませんが、この解説においても、「これは古いやり方である」という事が書かれていますので、もしかすると現在のバージョンでは既に削除されているのかもしれません。

次の「05-10」が新しいやり方の解説ですので、今回はこれで終了し、次に移ることにしました。

« 2012年2月 | トップページ | 2012年4月 »