OpenFOAM を使い始める人へのアドバイス

投稿日時: 2016/04/17 S Nakagawa

OpenFOAM を使い始める人へのアドバイス

OpenFOAM の使用環境

OpenFOAM の種類,バージョン

OpenFOAM 枝分かれ バージョン など

2016年4月15日現在,最も一般的なOpenFOAMのバージョンは,下記である。

OpenFOAM® version 3.0.1 OpenFOAM Foundation 15th December 2015
http://www.openfoam.org/download/
Documentation http://www.openfoam.org/docs/
Source code documentation http://www.openfoam.org/docs/cpp/


OpenFOAM は,ソフトウェアである。ソフトウェアには、バグがある。正しい結果が得られているかは、使用者が確認しなければならない。(開発者によるテストは実行されています。)

OpenFOAMは,日々,開発がすすめられている。世界中からバグの報告があり,改善されている。
OpenFOAM Bug Tracker
http://www.openfoam.org/mantisbt/

OpenFOAM バグトラッキングシステムの見方


常に最新のOpenFOAMを利用したい場合には,開発版を使用することができる。

OpenFOAM-dev
OpenFOAM Foundation
次期リリースに向けた開発版
Documentation
www.openfoam.org/docs/
Source code documentation openfoam.github.io/Documentation-dev/html/

OpenFOAMをベースとし,独自の機能を追加したものが存在する。
OpenFOAM® v3.0+
foam-extend-3.2

OS

OpenFOAM は,Linux環境上で開発されている。Linux環境上で使うことが主流となっている。

OpenFOAM のwinndows対応版も存在する。しかし,すべての機能が利用できるとは限らない.

いろいろなバージョンについての,ほぼ完全なインストール方法解説が,`openfoam wiki にまとめられている。
https://openfoamwiki.net/index.php/Installation

Linuxには,様々なディストリビューションがある。OpenFOAMを使っている人が最も多いのは,Ubuntu であると想像する。

Ubuntuは,半年ごとに,新バージョンがリリースされる。ただし,これらのサポート期間は短いため,注意が必要である。長期的に使用する環境としては,LTS版が存在する。LTS版は,2年毎にリリースされる。2016年4月21日に,新しいLTS版(Ubuntu16.04)がリリースされる予定である。

Ubuntu リリース時期とサポート期間
https://www.ubuntulinux.jp/ubuntu

OpenFOAMを自分でコンパイルする場合には,OSとの相性は,あまり問題とならない。しかし,パッケージインストールの場合には,OpenFOAMとUbuntuとのバージョン組合わせに制限がかかることがある。

OpenFOAM の練習方法


取組みたい問題に対応できるソルバの選定


そのソルバの例題の実行

・ まずは,その例題のAllrunスクリプトを実行する。
・ その結果を表示し,例題の概要を知る。(対象となっている計算領域,どのような値か,など)
・ Allrunスクリプトの中身を見て,どのようなコマンドを実行しているか確認する。
・ 各設定ファイル(Dictファイル)を読み,どこで,何を,どのように,設定しているかを読み解く.
・ その例題から,自分の解きたい問題に近い例を考え,それに合せた設定に修正する.
・ 改造した例題で,思った通りに結果が得られるかを確認する。
・ 上記のような改造を重ねて,実際の問題に対するケースをつくりあげる.

OpenFOAM の利点

OpenFOAM の利点は,オープンソースであることである.ソースコードを見る必要がないのなら,使う意義は少ない.

習得に必要な時間,設定に必要な時間,計算に必要な時間,これらにかかるコストを考えると,商用ソフトウェアや,インハウス専用コードを使うほうが効率的なことが多い.


OpenFOAM について知りたいことがあれば,究極的には,ソースコードを見ればよい。

OpenFOAM 使用方法習得のコツ


自分のやったことを,正確に把握する。

その結果として起ったことを,正確に把握する。


自分がやったと思っていることと,OpenFOAMが実際に受けた命令とが同一であることを,結果やログから確認する。思い込みは,最大の敵である。


OpenFOAMのユーティリティーや,Linuxコマンドの使用方法と意味を,正確に把握する。


1つの命令を実行したとき,どのファイルが読み込まれ,何が計算され,どのファイルが書き出されるのか,把握する。


エラーメッセージを,正確に,はじめから最後まで,読む。ほとんどの場合,エラーメッセージを読めば,解決策が分かる。


上手く動かないと思ったとき,9割以上は,使用者の間違いが原因である。まずは,自分を疑う。


状況を正確に把握した上で,経験者に相談する。あいまいな説明では,誰も助けられない。


再現性のある行動を取る。スクリプトを作るなど,自動化を心がける。


数値シミュレーションを実施する人間が考えることは,世界で共通している。自分がやりたいと思ったことは,すでに誰かも考えている。運が良ければ,ツールが開発されている。それを探し,使い方を学び,使用する。


英語を学ぶ。英語を ”普通に” 使えるようにする。


自分のために,ドキュメントを作成する。人に説明する。勉強会で発表する。理解を深める。あいまいさを排除していく。