SALOME-Mecaの活用技術(MK2)

オープンCAE初心者勉強会?
Code_Aster、SALOMEの使用方法、事例を解説します。
Google Groupを開設しています。Code_Aster&Salome-Mecaユーザーズグループ

SALOME(プリポスト)、ASTK(GUI)、Eficas(commファイルエディター)、公式Validationの利用方法など

グループ名の文字数制限(Salome-Mecaウィザード、Code_Aster 共通)

 Code_Asterでは、点、辺、面などのグループ名が9文字以上になると、計算実行時にエラーが出て止まります。Salome-Mecaウィザードを使った場合も同様で、設定の際には何のエラーも出ずに、計算実行時にエラーで止まるという状況に陥りますので、注意してください。

Salome-Mecaでのメッシュ作成

 4面体メッシュの基本的な作成方法、サブメッシュ、境界層メッシュの作成

ASTKの使用方法、公式Validationの利用、Eficasでのcommファイル編集例

 ホームフォルダに日本語のファイルがあるとASTKにキーボードから入力できなくなる不具合があります。日本語のファイルを英語にするなどして対応してください。

Eficas Importerの使用

 EficasではGROUP_MAなどで複数のグループ名を記入できますが、これをテキストファイルから読み込む方法です。

要素・境界条件の設定

シェル要素(DKT、COQUE_3D)の扱い方、メッシュアセンブリ(LIAISON_MAIL)

 シェル要素として、DKTとCOQUE_3Dがあり、大きな回転などを扱う場合に、COQUE_3Dを使うようです。

 メッシュ変位回転歪み計算
DKTTRIA3,QUAD4smallsmallsmallLinear,Non linear
COQUE_3DTRIA7,QUAD9largelargesmallLinear,Non linear

断面性能の計算(MACR_CARA_POUTRE)

ビーム要素(BARRE、POU_D_E)の扱い方、ビーム要素とシェル要素・3D要素との結合(LIAISON_ELEM)

 ビーム要素は2つのタイプがあり、回転の自由度を持たない:BARRE、回転の自由度を持つ:POU_D_E 他、を使い分けます。

Modelisation 自由度
BARREピン接合DX, DY, DZ
POU_D_E 他剛接合DX, DY, DZ, DRX, DRY, DRZ

AFFE_CHAE_MECAの使い方

 AFFE_CHAR_MECA一覧
 機械的境界条件を与えるコマンドのAFFE_CHAE_MECAのうち比較的よく使うものを解説しています。

境界条件を関数形式で与える方法(DEFI_FONCTION, FORMULE)

 非定常の場合を例に関数形式で境界条件を与える方法を解説しています。

ポスト処理

MECA_STATIQUEの場合の一例(応力・等価応力の出力、Post-Pro・Paraviewモジュールでの結果表示)

Salome-Meca 2011.2 Asterモジュールの計算結果をParaviewモジュール(ParaVis)で表示させる

 計算結果は作業フォルダの拡張子:rmed のファイル(linear-static.rmed など)に保存されているので、この拡張子を rmed → med に書き換えれば、Paraviewモジュールで表示できます。
 Salome 6.4.0からは拡張子:rmed のファイルもParaviewモジュールで読み込めるようになりました。


並列化、AmazonEC2の利用

Code_Aster の並列化

 Code_Aster の並列化 10.6、11.1対応


並列化の方法

 dataはメッシュなどの並列化の方法、solverは行列解法の並列化の方法、hybridは領域分割法です。
 Code_Asterでは1b+2bが推奨されています。

名称通信推奨自由度[per core]推奨自由度[total]備考
data1aIndependent---独立したケースをASTKから同時に実行する方法
data1bElementaryMPI/OpenMP--ASTKから実行できる一般的な並列計算
data1cLinear algebraMPI&OpenMP?--高度な方法(詳細不明)
solver2aMULT_FRONTOpenMP1*10^5-デフォルトのソルバー(直接法)
solver2bMUMPSMPI3*10^4-EDFの推奨するソルバー(直接法)
solver2cPETSCMPI3*10^4>5*10^6大規模計算で推奨されているソルバー(反復法)
hybrid3aFETIMPI5*10^4>5*10^6領域分割法


バージョン、ソルバー、並列化の比較(100万自由度 STAT_NON_LINE での計算)

 バージョンアップにより並列化効率が向上しています。ソルバーはMUMPSのほうが速いです。

 STA10.6PAR10.6PAR10.6NEW11.1PAR11.1PAR11.1
Processors114114
SolverMULT_FRONTMUMPSMUMPSMULT_FRONTMUMPSMUMPS
time [sec]269510066992632969686


 STA10.3PAR10.3PAR10.3NEW11.0PAR11.0PAR11.0
Processors114114
SolverMULT_FRONTMUMPSMUMPSMULT_FRONTMUMPSMUMPS
time [sec]3619147411182734968766


MUMPSでのメモリ使用量低減オプション

 MUMPSソルバーを使用した際にメモリ使用量を削減できるオプション設定です。ただし計算時間が長くなります。
 MECA_STATIQUE>SOLVEUR>b_mumpsから選択できます。

オプションメモリ低減量計算時間
OUT_OF_CORE長くなる
MATR_DISTRIBUEE変わらない
LIBERE_MEMOIRE長くなる

#ref(): File not found: "MUMPS_option.jpg" at page "SALOME-Mecaの活用技術"


AmazonEC2 並列化Code_Aster AMI

 AmazonEC2のサービスは従量課金制ですので、料金体系を良く理解した上で利用してください。オンデマンドインスタンス、データ転送、EBSボリュームは課金されます。Amazon EC2 料金表
 並列化Code_AsterのAMIを公開しています。Community AMIsから選択できます。

RegionTokyo
AMI IDami-ac51e0ad
AMI NameUbuntu_Lucid_P_Code_Aster_120328
Root StoreEBS 15GB
Architecture64bit
PlatformUbuntu 10.04
Code_Aster10.6, 11.1

 ASTKの起動

$ astk

 EFICASの起動

$ eficas

 Salome-Mecaの起動

$ salome

 並列環境の起動

$ mpd &

 root権限の取得(パスワードは不要です)

$ sudo su

 ホームフォルダに並列計算用チュートリアル(Piston_tutorial)があります。マイクロ以外のインスタンスで起動し、$ mpd & で並列環境を起動させ、ASTKから、/home/ubuntu/Piston_tutorial/test.astkを読み込んでRunボタンを押してください。
 /work に大容量(400GB超)のエフェメラルディスクをマウントしてますので、計算ファイルはここに置くと良いです。ただし、stop、terminate をするとエフェメラルディスクの内容は消去されますので、注意してください。


WindowsでX forwardingを行う

 AmazonEC2などのリモートマシン上のGUIアプリケーションを、ローカルマシンのWindowsから利用する方法です。

Code_Saturneとの連携(流体構造連成)

Code_Saturneのインストール

 Code_Saturneのインストール

Code_Saturne→Code_Asterの流体構造連成

 Code_Saturneの計算結果(構造体表面の圧力)を、Code_Asterで境界条件として読み込んで連成させる方法です。

Salome-Meca、Code_Aster、Salomeのバージョンについて

Salome-Meca のバージョン

Salome-MecabitCode_AsterSalome
2012.164bitSTA10.6, STA11.16.4.0
2011.264bitSTA10.56.3.0
2011.164bitSTA10.35.1.5
2010.232bitSTA10.25.1.4


Code_Aster のバージョンについて

 2011年12月の時点で、Salome-Meca 版、スタンドアローン版の主なバージョンとしては、STA10.2、STA10.3、STA10.5、STA10.6、STA11.1があります。このうち、STA10.3以前とSTA10.5以降では、コマンドファイルのポスト処理の書き方に違いがあります。(それ以外のコマンドファイルの書き方は変わっていないようです。)
 具体的には下表の例のように、CALC_ELEM、CALC_NO の OPTION の書き方が違います。そのため、STA10.3以前で作ったコマンドファイルを、STA10.5以降で計算する場合は、EFICAS などでポスト処理の部分を書き換える必要があります。逆もまた然りです。

バージョン応力(要素)等価応力(要素)応力(節点)等価応力(節点)
STA10.3以前SIGM_ELNO_DEPLEQUI_ELNO_SIGMSIGM_NOEU_DEPLEQUI_NOEU_SIGM
STA10.5以降SIGM_ELNOSIEQ_ELNOSIGM_NOEUSIEQ_NOEU


MED のバージョン対応

 Salome 6 は、MED 3 でしか出力できないので、Salome 6 で作った MED ファイルを用いて計算する場合は、STA10.5以降を使う必要があります。逆に、STA10.5以降で出力した MED ファイルは、Salome 6でしか読めません。
 MED : HDFライブラリ(Salome)とCode_Asterでデータをやり取りする際の中間データ(メッシュなど)

 readwrite
STA10.5以降2, 33
STA10.3以前22
Salome 62, 33
Salome 522



Code_Aster 参考ページ

Code_Aster公式、CAElinux Contribute

 Code_Aster公式ページ

 Code_Aster Documentation
 機械翻訳ですが、英語化公式ドキュメントが公開されています。

 Code_Aster Forum
 開発者がいますので非常に参考になります。言語は英語とフランス語ですが、英語の投稿の方が多いようです。

 Code_Aster Wiki
 有志が作成しています。完全に整理されてはいませんが参考になります。

 Contrib:Claws/Code Aster
 Contrib:Kees Wouters
  有志が公開されている解説書です。コマンドファイルを公開していますので非常にわかりやすいです。

 Code_Saturne公式ページ
 Salome公式ページ


上記の資料をもとに柴田が Code_Aster のコンパイルを練習した時のメモ

DEXCS-Salomeの有効活用:Code_Asterのコンパイル(1):http://blog.goo.ne.jp/dalab-gnct/e/fc5c4581f73b06bce7a977ae56379c2b
DEXCS-Salomeの有効活用:並列版Code_Asterのコンパイル(1):http://blog.goo.ne.jp/dalab-gnct/e/d3a33ad805388450e26dfdbd5049f4f6
DEXCS-Salomeの有効活用:並列版Code_Asterのコンパイル(2):http://blog.goo.ne.jp/dalab-gnct/e/f12c955436191d9783516214d7573f99
DEXCS-Salomeの有効活用:並列版Code_Asterのコンパイル(3):http://blog.goo.ne.jp/dalab-gnct/e/fdc6d30b81b008f9eec405945c4d9467


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS