Hide のすべての投稿

Hideです。インサイト所属では有りませんが、外部からADVENTURE関連事業等を支援しております。 この度開設されたインサイトさんのHPのブログに執筆者の一人として参加させて貰う事になりました。 どうぞ宜しくお願いします。

ADVENTURE_Solid 並列コア数スケーラビリーティーのテスト

Adventure Solid Ver.2.1による大規模解析モデルを使って、並列計算のCPUコア数スケーラビリティーを調べてみました。
用意した計算機はHPワークステーション Z820 , XEON E5-2680(8core, 2.7GHz, オーバードライブ3.5GHz) x 2, 256GBメモリです。
この計算機をWindows上でCINEBENCHを動かすと、以下のような計算速度となります。
      H/T    OD    CINEBENCH
計算スピード
     Yes    Yes      2038cb
Yes    No       1763cb
No     No       1392cb
(H/Tは ハイパースレッディング有無
、ODはCPUオーバードライブ有無)H/T 、ODの設定により、それなりに計算スピードが変わっていく様子がわかります。
今回のテストの目的は、Adventure Solidで並列計算させるときにCPUコア数スケーラビリティー(CPUコア数に従って、計算スピードが上がってゆくのか)、H/Tの影響を調べることにあります。
計算モデルは、Adventure HPからダウンロード可能なPantheonモデルです。BaseDistanceを20.0に設定してメッシュを作成すると
要素数 : 2522万個
節点数 : 3507万個 (自由度1億オーバー)
のメッシュモデルが出来上がります。このモデルを下面固定、自重による弾性応力計算を行います。
部分領域はCPUコア数にかかわらず、1領域あたりの要素数が312になるように設定しています。
Adventure Solidでは領域分割によるハイブリッド計算のため、1領域あたりの要素数を変えることにより、計算スピード、必要メモリ量が変化します。
詳細はAdventure Solidマニュアルをご覧ください。
並列計算の指定は、mpiexec -n ** advsolid-p で実行しています。
今回のメッシュモデルで標準BDD法繰り返し計算させると、215GBメモリが消費されていました。
Fig.1はH/Tをオフにした場合の計算時間のコア数依存性です。

は、マトリクス組み立てに要した時間、は、マトリクス組み立て+繰り返し計算時間(1×10-6以下で収束打ち切り)です。
このグラフを見ると、いろいろ興味深いことが理解できます。
1.(少なくとも弾性計算では)繰り返し計算よりもマトリクス組み立てに3倍ほどの時間が、かかっている。
2.総計算時間は単純に並列コア数に反比例しない。
3.ODの効果は、このように継続的な計算の場合にも効果がある。
4.グラフには載せていませんが、H/Tをオンにして32コアで計算させると16コアの場合よりも、少なくとも2倍以上の時間が必要でした。
次に繰り返し計算の1繰り返しあたりの時間を、コア数依存でプロットしたグラフがFig.2です。
5.(1繰り返しあたり)計算時間はコア数に応じて逆比例の関係にある。
6.ODの効果は、このように繰り返し計算の場合にも効果がある。
繰り返し計算では、きれいなコア数と逆比例した結果が、得られています。
Adventure Solidの領域分割BDD繰り返し計算では、コア数依存の並列計算スケーラビリティーに優れていることが、明白です。
このことは非線形などの大規模計算では、大きなメリットとなります。
マトリクス組み立て時間については、なぜ並列コア数に比例してスピードが上がってゆかないのか理由ははっきりとわかっていません。
考えられる理由として、領域分割の指定方法が適切でない、あるいは1CPUあたりのマルチコア並列(OpenMP)指定とマルチCPU間の並列(OpenMPI)指定の仕方(すなわちmpiexecのオプション指定)に一工夫必要なのかもしれません。
H/Tをオンにすると計算時間が増えてしなうのは、H/Tをオンにすると各コアの処理能力が異なり、静的負荷分散方式では、能力の高いコアの待機時間が生じてしまうためと推測されます。
プロセス並列動的負荷分散法(Advsolid-h)で、改善される可能性があると思われます。
いやあ、BDDの並列繰り返し計算早いですね。1億自由度超えモデルでも高々、1繰り返しあたり十数秒です。恐れ入りました。

A14_ADVENTURE_Magnetic_On_Windows テスト(3)

4.ParaViewデータ表示
計算の終わったデータを可視化します。
可視化ソフトはParaView、およびParticle Viewerを使います。最初はParaViewです。
ParaViewは大規模データの可視化を目的とした、オープンソースソフトウェアです。
FEMとの相性も良く、任意の断面表示、変形図、グラフ化など多彩なポスト処理が可能です。
http://www.paraview.org/
のホームページからプログラム、マニュアルのダウンロードが可能です。
日本語のチュートリアルなども、いろいろ公開されているので、インターネットで検索、参考にしてください。
4.1.ParaViewインストール
ParaViewホームページから適当なOS用プログラムをダウンロードし、インストールします。
インストールに関しては、特に注意することはありません。
4.2.ParaViewデータ読み込み
ParaViewを立ち上げ、メニューバーの「File」→「Open」コマンド()で、ADVENTURE_Magnetic_On_Windowsで計算し、ParaView用データとして保存していた”res.vtu”を開きます。
ParaViewのウィンドー配置は自由に設定できるので、上図と必ずしも同じようなウィンドー配置になっている訳ではありませんが、Pipeline Browser、Properties/Information、Layout #1ウィンドーが見えているはずです。
Pipeline Browserでは、データに施したフィルタリング等の経歴、および各処理結果の可視化が選択できるようになっています。
今はres.vtuデータの可視化が行われていることが、わかります。
Propertiesウィンドーの「Apply」ボタン()をクリックします。CADモデル、Air領域のソリッド図が、上図のようにLayout#1に表示されます。
4.3.ParaViewデータ可視化
Toolbarの”Solid Color”と表示されているコマンドウィンドー()右の”▼”をクリックし、”Magnetic Flux Density”を選択します。
“Magnitude”は絶対値強度表示であることを表しています。X, Y, Z成分表示も可能ですが、とりあえず”Magnitude”のままにしておきます。
“Surface”はCADモデル最外面の値を色表示します。こちらも、とりあえず”Surface”のままにしておきます。
Layout#1ウィンドーのモデルを、マウス左ボタン押ししながらマウス移動させて、モデルの表示角度を決めます。
Toolbarの「Rescale to Custom Data Range」ボタン()をクリックして、表示データ範囲を決めます。
最初はプログラムが最小値、最大値を探し、表示範囲を自動的に決めています。
筆者の場合、最小値”6.60102e-8″、最大値”0.135178″でしたが、最小値に”0.0″、最大値に”0.001″を入力、「Rescale」ボタン()をクリックします。
モデル最外面の一部が、赤く表示されます。
後はParaViewに慣れていただき、気にいるように可視化させる、ということになるのですが、もう一表示例を挙げておきます。
先ほどの状態からtoolbarの「Glyph」ボタン()をクリックします。
ParaViewにはデータ処理のための、様々なフィルターが準備されています。
Menu bar「Filter」→「Alphabetical」にマウスポインタを移動させると、インストールされているフィルタが表示、実行させることが出来ます。
また必要であれば、各自でフィルタをプログラミングして、ParaViewから呼び出すことも可能です。
「Glyph」はフィルタの一つで、磁束の流れ、強度を矢印で可視化させることが出来ます。
「Glyph」ボタン()をクリックすると、Pipeline Browse”に”Glyph1″という表示が追加され、データ処理に移ることがわかります。
Propertiesウィンドーの「Apply」ボタン()を、クリックすると処理が行われます。
モデル最外面データと重なって見難いので、最外面データを見えないようにします。
Pipeline Browserの「res.vtu」左側の眼印()をクリックし、最外面データを消します。
矢印の大きさが少し大きく見難いので、少し小さくしてみます。
Propertiesウィンドー「Scaling」項目、Scale Mode「off」→「Scalar」を選択します。
Scale Factorに入力されている数字を”0.01500…..”→”0.007″と入力し直し、「Apply」ボタン()をクリックします。
矢印の長さを磁束密度強度に比例させて、表示させることも出来るのですが、今回は矢印の色で強度を表すことにします。
Toolbar「Rescale To Custom Data Range」ボタン()をクリック、最大値を”0.001″と入力、「Rescale」ボタン()をクリックします。
これで強度の強い部分の矢印が赤くなり、磁束の流れ、強度が可視化できました。

いかがでしょうか?

A13_ADVENTURE_Magnetic_On_Windows テスト(2)

この回では、前回のデータセットを使って解析を進めてゆきます。
解析手順はAdvMagOnWinマニュアルにも詳細な手順が記載されています。そちらも御参照ください。
3.解析
プログラムをスタートさせた後、新規解析ケースを作成します。メニューウィンドーの「ファイル(F)」→「新規解析ケース作成(N)」を選択します。
現在の解析ケースを保存するか聞いてきますが、「いいえ(N)」を選択します。解析ケースの作成ウィンドーが開き、「次へ」を選択します。
解析するジャンルは、「電磁界解析」で変更せず、「次へ」を選択します。
解析するより細かいジャンルは、「非線形静磁界解析」で変更せず、「次へ」を選択します。
モデル形状のファイルタイプは、「IGES」、「四面体1次辺要素」で変更せず、「次へ」を選択します。
3.1.メッシュ作成
3.1.1.CADモデルの選択
DataSet2.zipを適当なフォルダーに解凍します。
soft.ptn, magnet.ptn, coil.ptn, air.ptn, al.ptn, coil.dat, magnet.dat, material3.dat, magnet.igs, soft.igs, al.igs, coil.igs, air.igs, bh_curveのファイルが出来ているはずです。
メニューウィンドーの「メッシュ(M)」→「IGESファイル選択(I)」を選択します。
IGESリスト ウィンドーが開きますので、「追加」ボタンをクリックします。
ファイル読込ダイアログが表示されるので、解凍したigsファイルを5個順番に「追加」ボタンで追加し読み込んでいきます。
5個のファイルを読み込むとIGES読込ウィンドーの「OK」ボタンをクリックします。
3.1.2.節点密度の設定
次に「メッシュ(M)」→「節点密度設定(D)」を選択します。節点密度設定ウィンドーが開きます。
節点密度の指定方法は幾つかありますが、ここではptnファイルを使って設定します。
節点密度設定ウィンドーの「ファイル」ボタンをクリックし、解凍した適当なptnファイルを選択します(どの解凍ptnファイルも内容同じなので、どれでも可です)。
ファイルの読み込みに成功すれば、基本節点間隔が0.006に変更されているはずです。成功すれば「OK」ボタンをクリックし設定終了です。
3.1.3.表面パッチの作成
CADデータから表面パッチを作成します。「メッシュ(M)」→「表面パッチ作成(P)」を選択します。
表面パッチ作成ウィンドーが開くので「OK」ボタンをクリックすると、表面パッチの計算が始まります。
3.1.3.メッシュの作成
次はメッシュの作成です。「メッシュ(M)」→「メッシュ作成(M)」をクリックします。
メッシュ作成ウィンドーが開きます。ウィンドー内の「表面形状を補正する」のチェックは入れたままで、「OK」ボタンを押すとメッシュ作成が始まります。
計算はしばらく続き、完了すると総要素数、および総節点数が報告されます。筆者の場合、要素数64125、接点数92093でした。「OK」ボタンクリックします。
3.2.解析条件の設定
3.2.1.物性値の設定
Al材はLinux版 渦電流解析をテストするため定義してありますが、Windows版では未だ渦電流解析がサポートされていないので、その他領域と定義します。
air材も磁気抵抗率=795774.7の、その他領域と定義します。
magnet材は永久磁石領域と定義します。
soft材は磁性体領域と定義します。
coil材はコイル領域と定義します。
初期値は適用ボリュームID=0から4までが、磁気抵抗率=795774.7の物性ID=1に定義されています。
これを順番に追加、修正してゆきます。
どの材料が、どの適用ボリュームに設定されているかは、「メッシュ(M)」→「IGESファイル選択(I)」をクリックすることで確認できます。
筆者の場合、air.igs, al.igs, coil.igs, magnet.igs, soft.igsの順にファイルを追加したので、airはボリューム=0、alはボリューム=1、coilはボリューム=2、magnetはボリューム=3、softはボリューム=4に設定されています。
物性値は「解析(A)」→「物性値設定(M)」→「電磁界解析」を選択します。物性データの設定ウィンドーが開きます。
適用ボリュームIDは、選択したIGESファイルの順番に従って、0から4に設定されます。
物性データの設定ウィンドーの物性ID=1の行をクリックすると物性の変更ウィンドーが開きます。
まずcoil材の物性値を設定してみます。左側の「物性の種類」を「その他」から「コイル」に選択しなおします。
「コイル」の設定欄が有効になり、「コイル」の「定義方法」を「RF」から「MD」に変更します。「定義ファイル」は解凍したcoil.datを選択します。
「適用するボリューム」は、筆者の場合、coilはボリューム=2でしたので、「2」に変更します。
「OK」をクリックして物性データの設定ウィンドーに戻ります。
次に磁性体の物性値を設定します。「物性の追加」をクリックします。
物性の追加ウィンドー左側の「物性の種類」を「磁性体」を選択し、物性値の設定欄 磁気抵抗率=757.1、磁性体の定義ファイルに解凍したbh_curveファイルを選択、適用するボリューム=4と入力し「OK」をクリックします。
これで物性ID=1のコイル、ID=2の磁性体が定義されました。
さらに「物性の追加」をクリックします。
物性の追加ウィンドー左側の「物性の種類」を「永久磁石」を選択し、物性値の設定欄 磁気抵抗率=795774.7、「定義方法」を「MD」選択、「定義ファイル1」を解凍したmagnet.dat選択、適用するボリューム=4と入力し「OK」をクリックします。
さらに「物性の追加」をクリックします。
物性の追加ウィンドー左側の「物性の種類」を「その他」を選択し、物性値の設定欄 磁気抵抗率=795774.7、適用するボリューム=0,1と入力し「OK」をクリックします。
以上で領域ボリューム0から4の材料に物性ID=1から4が設定されました。「OK」をクリックします。
3.2.2.境界条件の設定
「解析(A)」→「境界条件設定(B)」を選択します。
境界条件設定ウィンドーが開き、バッチ識別分解能を角度で設定できるようになります。今回は修正せず、このまま「OK」をクリックします。
境界条件設定画面が起動します。
画面では以下のようにモデルを操作します。
*回転 : ホイールボタン(中ボタン)を押しながらマウスを動かすと、モデルが回転します。
*平行移動 : マウスの左ボタンを押しながらマウスを動かすと、モデルが平行移動します。
*ズーム : 右ボタンを押しながらマウスを上に動かすとズームアウト、下に動かすとズームインします。
*節点の選択 : マウスで希望の節点をクリックすると、節点を選択できます。選んだ節点には(ちょっと見にくいですが)黒い四角が表示されます。
*面の選択 : 節点を選択した状態で右クリッすると、節点が所属する面を選択できます。右クリックを続けると、次の面が選択状態になります。
今回の解析では、初期画面の全面にベクトルポテンシャル法線方向ベクトルポテンシャル成分を0に定義します。
上面に属する節点・面を選択します。下図のようになってるはずです。
境界条件設定ウィンドーの「BC」→「BC(Magnetic)」→「Add Magnetic Vector Potentia」を選択します。
「Normal」にチェックを入れ「OK」をクリックします。
同じくした他の面も節点・面を選択、ベクトルポテンシャル「Normal」を選択します。
境界条件の設定が終了したら、境界条件を確認してみます。境界条件設定ウィンドー「View」→「Boundary Condition」→「Cnd format」を選択すると確認できます。
確認ウィンドー「OK」をクリックします。
境界条件設定ウィンドー「File」→「Quit」をクリックすると確認ウィンドーが表示されますので、「OK」をクリックすると、条件が自動保存され設定が終わります。
3.2.3.ソルバー入力ファイル作成
続いて、「解析(A)」→「ソルバー入力ファイル作成(C)」を選択し、入力ファイル作成ウィンドー「OK」をクリックし、作成を行います。
3.3.解析実行
3.3.1.領域分割
領域分割の詳細説明については、マニュアルをご参照ください。
「解析(A)」→「領域分割(D)」を選択すると、領域分割ウィンドーが開きます。
初期条件から変更せずに「OK」をクリックします。
3.3.3.ソルバーの実行
解析計算を始めます。「解析(A)」→「ソルバー実行(R)」を選択すると、ソルバー実行ウィンドーが開きます。
ソルバー実行オプションの詳細については、マニュアルを参照ください。
今回は初期条件から変更なしに、実行してみます。
「スタート」をクリックすると計算が始まります。
計算中は、どのような計算状態にあるのかわからないため若干不安になりますが、じっと待ちます。
約10分ほどで計算終了します。
3.4.解析データの書き出し
解析結果は、AVS、ParaView、Meshman_ParticleViewer_HPCといった可視化ソフトウェアでチェックすることができます。
まず解析結果をParaView可視化データファイルに書き出してみます。
「解析(A)」→「解析結果のエクスポート」を選択すると、解析結果のエクスポートウィンドーが開きます。
出力する物理量として「磁束密度」、「電磁力」、出力形式として「VTK形式(ParaViewなど)」にチェックを入れます。
出力フォルダを指定して「OK」をクリックします。
3.5.AdvMagWinの終了
これでAdvMagWinの操作は終了です。
「ファイル(F)」→「解析ケースの保存(S)」で解析ケースを保存することが出来ます。後日解析条件などを変えて、再実行する場合便利です。
「ファイル(F)」→「終了(X)」で終わります。
次回は、解析データを可視化ソフトで見てゆくことにします。

A12_ADVENTURE_Magnetic_On_Windows テスト(1)

久しぶりにブログへの掲載を再開します。
ADVENTUREを動かすうえでの、課題の一つがLinuxでしか動かせないという制約です。
オープンソースの解析プログラムなので、Windows上にも容易に載せ替え出来そうにも思えますが、実際は困難を極めます。
それでも、なんとかWindows上で試せるように、制限はありますが、ADVENTURE_sold、およびADVENTURE_Magneticの移植が行われ公開されてきました。
最近、Microsoft社よりWindows Subsystem for Linux (WSL)が、64bit版Windows10に正式に導入されました。
WSLを使ってWindows上でも、ADVENTUREを走らせるれる可能性が出てきました。
ただしグラフィックスの問題、OpenMP上の並列計算が可能か、など懸念点があり一筋縄ではいかないようにも感じています。
筆者もWSL/OpenSUSE環境を構築し、ADVENTUREのテストを行おうと準備中です。
こちらについても後日、紹介してゆきたいと思います。
さて今回はADVENTURE_Magnetic_On_Windowsによる、サンプルデータ解析手順を紹介しようと思います。
ADVENTURE_Magnetic_On_Windowsは、Linux版ADVENTURE_Magneticに比べて、渦電流解析ができない、並列計算が出来ないなど、subset版との位置づけにはなります。
しかし取り扱いデータ、および出力データはLinux版とコンパチビリティーが取れています。非線形計算は可能です。
まずWindows版で磁場解析を試してみたい、という要求には答えることが出来ます。
また使用者が増え、ユーザーの声がADVENTUREプロジェクトにフィードバックされれば、渦電流解析を含むWindows版フルセットの開発を後押しする力となります。
ぜひ多くの皆さんに試していただきたいと思います。
1.ADVENTURE_Magnetic_On_Windowsのインストール
ADVENTURE_Magnetic_On_WindowsはADVENTUREプロジェクトのHP(http://adventure.sys.t.u-tokyo.ac.jp/jp/)に行き、ユーザー登録することで無償ダウンロード可能です。
配布ファイルサイズは、約175MBです。
配布されているzipファイルを任意のフォルダー下に展開します。
AdvMagOnWin-0.1bという名前のフォルダーが、展開フォルダーの下に作られます。
AdvMagOnWin-0.1bフォルダーの下にadvmagonwin.batファイルがありますので、そのファイルをダブルクリックするとプログラムが走り出します。
Fig.1のような開始ダイアログウィンドーが開くので、スタートボダンを押します。

スタートボタンを押すとFig.2のようにメインウィンドー、メッセンジャーウィンドー、手順ガイドの3つのウィンドーが開き準備完了となります。

プログラムは、毎回advmagonwin.batをダブルクリックして起動させます。
2.テスト解析CADデータ
ADVENTURE_Magnetic_On_Windowsには、残念ながらCAD機能が備わっていません。一般商用CADソフトで出力されたCADファイルを、ADVENTUREに使えるようにする方法を考慮中です。
現状取り扱えるCADデータは、Ver5.3準拠IGES形式です。
Linux版ADVENTUREプログラムと同じく複数材料のデータを取り扱う場合、接した面を同一形状、同一位相にしておく必要があります。
取り扱いCADデータについては、AdvTriPatchプログラムのマニュアルをご参照ください。
データはMKS単位系で作成してあります。結果もMKS単位系で出力されます。
ここではFig.3のようなデモ用CADファイルを使って、テスト行っていきます。

向かって右側の黄色い棒が、コイル(coil.igs)で上下方向に電流を流します。
青色棒は軟磁性体(soft.igs)です。赤色棒は永久磁石(magnet.igs)。コイル、軟磁性体、永久磁石の裏側に灰色の導電材料板(al.igs)が位置しています。
Windows版では渦電流解析がサポートされていないので、無用な導電板ですが、Linux版でコイルに交流電流を流すと、この導電板に渦電流が流れます。
これらの周りは大気(air.igs)で覆われています。
データは2016年9月18日に公開されていますが、再載しておきます。ファイル名DataSet2.zipです。
DataSet2
デモデータは実用的には、特に意味の無いモデルですが、Linux版を含めたADVENTURE_Magneticの全てのオプション計算が試せるようになっています。
次の回は、このデータセットを使って解析を進めてゆきます。

A09_ADVENTURE solid 大変形解析

ADVENTURE solidでは、大変形解析のオプションが用意されています。
大変形解析と言えば、陽解法の解析手法が一般的ですが、陰解法であるADVENTURE solidでも大変形解析が可能です。
ADVENTURE solidで、どのような大変形解析が可能か理解いただくため、解析事例を2例紹介したいと思います。
ADVENTURE solidで大変形解析を行うにあたり、注意すべき点が2点ほどあります。
1点目は、発散の問題です。陰解法で解く限り避けて通れないのですが、ステップ数を細かく設定する必要があり、かなりのCPUパワーを必要とします。
2点目は、接触の問題です。ADVENTURE solidには接触をチェックするコードが、現状では備わっていません。例えば1本のパイプを折り曲げるとします。折り曲げてゆくと実際の場合では、どこかで接触し始めます。しかしADVENTURE solidでは接触のチェックがされないので、接触してもお互いすり抜けるように計算されてしまいます。
以上の2点に気を付けると、大変形解析も可能となります。
1例目は、12mm x 9mm x t0.6mmのAl板のスタンピング加工例です。押し出し量5mmまで計算してみました。アニメーションは同じ解析結果を、表側からと裏側から同時表示しています。変形量1倍、すなわち実変形表示にしてあります。押し出しに伴い、周りの板部が引き込まれている様子などが良くわかります。

2例目は、135mm x 65mm x 200mm 厚み6mmの二重角Alパイプの大変形です。パイプ上面を100mm押し込んだ計算結果です。表示はパイプ外側、および断面を表示1倍で表示させています。押し込みに従ってパイプが、複雑に変形する様子が再現されています。

Hide (2016.10.9)

A08_ADVENTUREデータ用CADソフト

ADVENTUREで取り扱えるCADファイル形式は、Ver.5.3準拠IGESです。よく知られているようにIGES形式は方言が多く、互換性に問題があります。ADVENTUREでも、取り扱えるIGESデータを書き出せるCADは限られています。
ADVENTURE CADも一応準備されていますが、単純な形状のデータしか作成できず、実用性はありません。
筆者は株式会社フォトロンの頭脳RAPID3Dを使って、データを作成しています。最近、株式会社フォトロンのホームページで、頭脳RAPID3Dの販売が2017年2月28日で終了するとのアナウンスがされております。残念なことです。
筆者は、ADVENTUREで読み込み可能なIGESデータを書き出せる実用的なCAD、頭脳RAPID3D以外知りません。どなたか頭脳RAPID3D以外で、ADVENTUREに使えるCADソフトご存じでしたら、ぜひ教えてください。
1年ほど前にFreeCADが、使えないか試したことあります。
残念なことに、ADVENTUREで読み込めるIGESデータを書き出すこと出来ませんでした。しかし頭脳RAPID3Dで書き出したIGESファイルは、FreeCADで読み込むこと出来ました。少し頑張ればFreeCADでも、Ver5.3準拠のデータ書き出しできるのではないかと期待しています。

Hide (2016.9.19)

A07_ADVENTURE Magnetic チュートリアル解析編

次は、いよいよ解析です。と言っても解析自体は、各1行の入力だけです。各パラメータ、ファイル内記述の意味については、チャンスがあれば説明したいと思いますが、とりあえずmagneticのマニュアルを参照ください。

 

(A) 非線形解析

非線形解析はtest/staticフォルダーに移動し、advmagを実行します。以下のようになります。

> cd static
> advmag_static-s -mtrldat-file mtrl.dat ./

解析が成功したら、paraviewで結果を見る準備を行います。testフォルダー下にmodel_oneというフォルダーを新たに作成し、model1cs_18.advファイルをmodel_oneフォルダーにコピーします。その後、advmag_makeUCDプログラムでparaview用データに変換します。手順は以下です。

> mkdir ./model_one
> cp model1cs_18.adv ./model_one/input.adv
> advmag_makeUCD -vtkfile -mtrldat-file mtrl.dat ./

 

(B) 定常解析

定常解析は以下のコマンドで実行可能です。

> cd TH
> advmag_th_eddy-s -mtrldat-file mtrl_th.dat ./

解析が終了すると、同じくparaview用データを準備します。

> mkdir ./model_one
> cp model1cs_18.adv ./model_one/input.adv
> advmag_makeUCD -vtkfile -mtrldat-file mtrl_th.dat ./

 

(C) 非定常解析

非定常解析の場合、initialファイルの取り扱いが必要となります。initialファイル無しでも計算は可能ですが、せっかく定常解析が終わっているので、定常解析の結果をinitialファイルとして使うことにします。test/TH/resultフォルダー内のファイルをtest/NS/initialフォルダーにコピーすることで可能です。

> cd NS
> mkdir ./initial
> cd ../TH
> mv ./result/*.* ./initial

次に解析を行います。

> cd ../NS
> advmag_ns_eddy-s -mtrldat-file mtrl_ns.dat -delta-t 8.33333e-04 -time-step 20 -inivalue-type real ./

無事終了すれば、paraview用データを準備します。

> mkdir ./model_one
> cp model1cs_18.adv ./model_one/input.adv
> advmag_makeUCD -vtkfile -mtrldat-file mtrl_ns.dat ./

後は、paraviewを起動し解析結果を見ます。

 

文責 Hide (2016.9.18)

A06_ADVENTURE Magnetic チュートリアル メッシュ編

ADVENTURE Magnetic チュートリアルを行います。
メッシュ作成までを”メッシュ編”で、解析を”解析編”で公開します。

モデルは実用的には意味が無いですが、Magneticで使われるコイル、ハード材、ソフト材、渦電流解析のためのAl非磁性導電材を含んでおり、このモデルで非線形解析、定常渦電流解析、非定常渦電流解析が一通りテストできるようになっています。
練習に必要なCADデータ等はmagtest.zipで添付しておきます。必要に応じて解凍して使ってください。

magtest

モデルの外観は以下のようになっています。直方体が解析空間、黄色がコイル、青色がソフト材、赤色がハード材、灰色が非磁性導電材(Al)材を表しており、コイルには上下方向に電流が流れる設定にしてあります。

tmp3_2

フォルダーは以下のようなフォルダ形式を想定しています。testフォルダーでメッシュ作業を行い、非線形計算をtest/static、定常渦電流計算をtest/TH、非定常渦電流計算をtest/NSで行います。test
test / static
test / TH
test / NS
あらかじめzipファイルをtest、 test/static、test/TH、test/NSフォルダーで解凍します。
最初は、testフォルダーでメッシュデータを準備します。この部分は、ADVENTURE の標準手続きです。手順は以下です(> は、Linuxプロンプト)。

> ADVENTURE_TriPatch air air
> ADVENTURE_TriPatch coil coil
> ADVENTURE_TriPatch al al
> ADVENTURE_TriPatch soft soft
> ADVENTURE_TriPatch magnet magnet
> mrpach air.pcm air.pcg coil.pcm coil.pcg -o tmp1.pcm -g tmp1.pcg -v tmp1.wrl
> mrpach tmp1.pcm tmp1.pcg al.pcm al.pcg -o tmp2.pcm -g tmp2.pcg -v tmp2.wrl
> mrpach tmp2.pcm tmp2.pcg soft.pcm soft.pcg -o tmp3.pcm -g tmp3.pcg -v tmp3.wrl
> mrpach tmp3.pcm tmp3.pcg magnet.pcm magnet.pcg -o model1.pcm -g model1.pcg -v model1.wrl
> advtmesh9p model1 -d
> advtmesh9m model1c
> advtmesh9s model1c
> msh2pch model1cs.msh 18
> bcGUI model1cs_18.pch model1cs_18.pcg
> advmag_makefem model1cs.msh model1cs_18.fgr model1_18.cnd material3.dat model1cs_18.adv
> adventure_metis -HDDM -difn 1 model1cs_18.adv ./ 250

bcGUIでは、6面体全てを自然境界条件に設定し、model_18.cndという境界条件ファイル名でセーブします。model_18.cndファイルも一応添付されているので、bcGUIプロセスをスキップしても大丈夫です。

ここまでは、非線形、定常、非定常解析とも共通です。出来上がったmodel1cs_18.advファイルは、static、TH、NSフォルダーにコピーしておきます。

文責 Hide (2016.9.18)

A05_ADVENTURE複合材料モデルの取り扱い方法

複合材料モデルをADVENTUREで、解析する方法について説明します。
ADVENTUREシステムでは複合材料を解析する場合、異なった材料の接合面が完全に同一であることという制約があります。
このため図1のように材料Aと材料Bの接合面形状が異なっている場合、ADVENTUREではメッシュが切れずエラーとなります。
 Bbox0
このようなモデルを解析する場合、ちょっとした工夫で解析が可能となります。
具体的なやり方としては、2つのやり方があります。
パターン1:
最初の方法は、材料Aの接合面を解析結果に支障の無い程度、出張らせる方法です(図2)。こうすることで材料Aと材料Bの接合面を完全に同一にすることが出来ます。
Bbox1
この方法のデメリットは、材料Aの接合面が少し凸形状になってしまい正確な解析ができないことです。
解析的には凸量を小さくしてゆけば、凸量の影響を小さくすることが出来るのですが、それに伴いメッシュが小さくなり消費メモリ、計算時間も増えてしまうので、適当な凸量を選択する必要があります。
なおこの手法は、境界条件を平面の一部に適用する場合も使うことが出来ます。
具体的なメッシュ生成手順は、例えば以下のようになります。matA.igsが材料AのIGES CADファイル、matB.igsが材料BのIGES CADファイルです。
> ADVENTURE_TriPatch matA matA
> ADVENTURE_TriPatch matB matB
> mrpach matA.pcm matA.pcg matB.pcm matB.pcg -o model1.pcm -g model1.pcg -v model1.wrl
> advtmesh9p model1 -d -p
> advtmesh9m model1c -p
> advtmesh9s model1c
パターン2:
2つ目の方法は、材料Aを2分割する方法です。分割は図3のように、材料Bとの接合面が同一になる立体で材料Aを材料A0と材料A1の2つに分割してしまいます。
Bbox2
こうすることで、材料A0と材料A1の接合面は同一、材料A1と材料Bの接合面は同一となり、解析可能となります。
A0とA1には同じ材料パラメータを定義することで、A材、B材の複合材料解析が可能となります。
この手法のデメリットは、解析ステップ数が増えて、解析手順が煩雑になることです。
具体的なメッシュ生成手順は、例えば以下のようになります。matA0.igs、matA1.igsが材料AのIGES CADファイル、matB.igsが材料BのIGES CADファイル。
> ADVENTURE_TriPatch matA0 matA0
> ADVENTURE_TriPatch matA1 matA1
> ADVENTURE_TriPatch matB matB
> mrpach matA0.pcm matA0.pcg matA1.pcm matA1.pcg -o tmp1.pcm -g tmp1.pcg -v tmp1.wrl
> mrpach tmp1.pcm tmp1.pcg matB.pcm matB.pcg -o model1.pcm -g model1.pcg -v model1.wrl
> advtmesh9p model1 -d -p
> advtmesh9m model1c -p
> advtmesh9s model1c

A04_ADVENTURE Magnetic 大規模計算

Hideです
今回は、ADVENTURE Magneticによる大規模 非線形磁場解析、および非定常磁場解析の紹介を行います。
モデルは6極36スロットIPM(Interior Permanent Magnet Syncronous Motor)モーターのフルモデルです。
通常このようなIPMモーターはモデルの対称性を生かして、1/2 ~ 1/12モデルを自然境界条件で計算するのが得策です。
しかし今回の計算の目的が、大規模モデル計算の検証であるので、あえてフルモデルで計算を行っています。
実用的にも、回転軸の偏心、あるいは傾きの影響を考慮しようとすると、必然的にフルモデルでの計算が必要となります。
IPM4
上図が解析CADモデルの外観です。コイル電流は、隣り合ったコイル同士に120°位相をずらせたsin波3相電流を定義しています。
ローターは固定ですが、各コイルに時間依存sin波を定義し非定常磁場解析を行っています。
計算はローターのBH曲線を考慮した非線形磁場解析、および非定常磁場解析を其々行いました。
使用環境はHP Z800 6コア×2CPU (=12コア)、96GBメモリ、Open SUSE、Open MPIによる11コア並列計算です。
解析モデルのメッシュ要素数は約650万、接点数は約865万、自由度は約240万です。
ローターBH曲線を考慮した非線形計算ではメモリ84.7GBを使い、計算時間3531秒(約1時間)で計算終了しました。
非定常計算ではsin波電流を2π/20に分割し、20ステップ計算させました。
この時のメモリ使用量は43.1GB、計算時間6467秒(約1時間50分)で計算終了しました。
図2は非定常計算による磁場強度の時間変化を動画表示させています。
非定常計算が出来ていることが確認できます。
このようにADVENTURE Magneticでは、大規模なモデルでも実用的な速度で計算できることがわかります。
また計算オプションも、静磁場非線形計算、非定常計算、渦電流計算と多彩です。
次回は、熱伝導解析の紹介を予定しています。