目次
9.2 使用法
9.2.1 Spyderでの使用法
データ入力はWindows版のGUIプログラムであるOpenMOM.exeを使用し、
計算と図形出力はPython(Spyder)で行います。
操作手順は以下の通りです。
- OpenMOM.exe(GUI)を起動します。(注1)
- Spyderを起動し、[ファイル]→[開く]メニューで
pythonフォルダにあるomm.pyとomm_post.pyを開きます。(注2)
- GUIで[全般]と[物体形状]のデータ入力を行い、
pythonフォルダにpython.ommというファイル名で保存します。(注3)
- Spyderのエディタペインでomm.pyタブをアクティブにした状態で
プログラムを実行してください。(注4)
- 計算を実行すると、python.ommを読み込んで計算を開始し、
計算結果がコンソールペインに表示されます。
同時に計算結果がファイルomm.npzに保存されます。(注5)(注6)
- GUIで[図形出力制御(1)(2)]のデータ入力を行い、
pythonフォルダにpython.ommというファイル名で保存します。(注3)
- Spyderのエディタペインでomm_post.pyタブをアクティブにした状態で
プログラムを実行してください。(注4)
1個以上の図形出力ウィンドウが開きます。(注7)
図形出力をやり直すには6.に戻ります。
計算をやり直すには3.に戻ります。(注5)(注6)
(注1)
適当なエディターを使って入力データpython.ommを直接編集するときはGUIは不要です。
Spyderで編集することもできます。
(注2)
Spyderでは初回に以下の設定を行ってください。
・Tools > Preferences > Application > Advanced settings > Language > 日本語 (再起動が必要)
・IPythonコンソール > グラフィックス > グラフィックスのバックエンド > 自動
・プロットペインの右上の三マークをクリックして[インラインプロットをミュートする]をOFFにする
(注3)
ファイルpython.ommは毎回上書きされるので、保存が必要なときは名前を変えて保存してください。
(注4)
プログラムを実行する方法には下記の3通りがあります。
・[ファイルを実行]ボタン(|>マーク)をクリックする。
・[実行]→[実行]メニューをクリックする。
・キーボードでF5を入力する。
なお、プログラム実行時に"ModuleNotFoundError"というエラーメッセージが出たときは、
[コンソール]→[カーネルの再起動]を行ってください。
(注5)
ファイル名python.ommはソースコードomm.pyとomm_post.pyの変数"omm_in"
を変えると変更することができますが、
間違えやすいので慣れないうちはpython.omm固定としてください。
(注6)
計算とポスト処理を行うと標準版と同じlogファイルも出力されています。
(注7)
ウィンドウの大きさ、文字のフォント、文字のサイズを変更するには、
omm_post.py の該当行を変更してください。
既定状態ではタイトルが日本語を含むと文字化けします。
日本語を表示するには、plt.rcParams['font.family'] 行の数字を3または4にしてください。
9.2.2 計算環境の設定
計算環境を設定するにはソースコードomm.pyを以下のように変更してください。
表9-2-1 計算環境の設定(ソースコードomm.py)
設定項目 | 設定法 |
CPU/GPU | CPUのとき"GPU = 0"、GPUのとき"GPU = 1" |
スレッド数 | "thread = 8" の数値を適当に変更する。GPUで計算するときもCPU部分で有効 |
複素数の型 | 単精度のとき c_dtype = 'c8'、倍精度のとき c_dtype = 'c16' |
9.2.3 コマンドラインでの実行法
Python版OpenMOMは"Anaconda Prompt"を起動してコマンドラインで実行することもできます。
OpenMOMフォルダの下のpythonフォルダに移動したのち以下のように実行してください。
表9-2-1の設定よりコマンドラインの引数が優先されます。
> python omm.py -cpu -n 8 -single ..\data\sample\1st_sample.omm (CPU8スレッドで計算する、単精度)
> python omm.py -cpu -n 8 -double ..\data\sample\1st_sample.omm (CPU8スレッドで計算する、倍精度)
> python omm.py -gpu -n 8 -single ..\data\sample\1st_sample.omm (GPUで計算する、単精度、CPU部分は8スレッド)
> python omm.py -gpu -n 8 -double ..\data\sample\1st_sample.omm (GPUで計算する、倍精度、CPU部分は8スレッド)
> python omm.py --help (使い方の説明)
9.2.4 Python版と標準版の違い
Python版と標準版の違いは以下の通りです。
表9-2-2 Python版と標準版の違い
No. | キーワード | 機能 | Python版 | 標準版 |
1 | geom3dnode | 物体形状の節点を表示する | 常に行うので不要 | オプションで指定可能 |
2 | far2dobj | 遠方界全方向パターンに物体形状を上書きする | 実装していないので無視される | オプションで指定可能 |
3 | near2ddim | 近傍界面上分布図を2D/3D表示する | 2Dのみ実装しているので無視される | オプションで指定可能 |
4 | near2dscale | 近傍界面上分布図の等高線の数 | 第3パラメーターで指定可能 | 無視される(常に20本) |
5 | near2dframe | 近傍界面上分布図を動画表示する | 実装していないので無視される | オプションで指定可能 |
9.2.3 使用メモリー
Python版OpenMOMは行列の対称性を利用していないので、
標準版の2倍のメモリーを必要とし以下のようになります。
- 単精度: 8 * Ne2 [バイト]
- 倍精度: 16 * Ne2 [バイト]
ここで、Ne=線状要素数=行列の大きさです。
これはスレッド数に無関係です。
例えば、単精度でNe=10000のとき0.8GBです。