3
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

OpenFOAM ソースコードの探し方

OpenFOAMはオープンソース

OpenFOAMはマニュアル等がないわけではないが、機能の使い方を網羅しているドキュメントはない。場合のよっては処理内容を知るためにソースコードを読んだ方が早い場合がある。
今回はソースコードの探し方についてのメモ。

ソースコードの場所

OpenFOAMが実行可能な状態で以下コマンドを実行。

境界条件、乱流モデルのソースの場所
$ echo $FOAM_SRC
ソルバのソースの場所
$ echo $FOAM_SOLVERS
ユーティリティのソースの場所
$ echo $FOAM_UTILITIES

検索してみる

場所が分かってもたくさんあるソースコードをひとつづつ探すと手間だし、めんどくさい。
なのでfindとgrepを使って検索する。

例えば乱流モデルのk-ωモデルに関するソースコードは以下のようにして探す。

$ find $FOAM_SRC | grep "kOmega"

inletOutetの境界条件のソースを探すときは次のような形で探す。

$ find $FOAM_SRC | grep "inletOutlet"

simpleFoamソルバのソースは以下のように探す。

$ find $FOAM_SOLVERS | grep "simpleFoam"

ユーティリティmapFieldsのソースは以下のように探す。

$ find $FOAM_UTILITIES | grep "mapFields"

それぞれ実行するとgrepで指定したキーワードの付いたファイルパスのリストが帰ってくる。
OpenFOAMではケースフォルダのインプットファイルで指定する各項目の名前がファイル名になっていることが多いため、似た名称のファイルを調査する。
特に、.H、.Cのファイルを読むようにする。

拡張子を絞って検索するには次のようにすればよい。

$ find $FOAM_UTILITIES -name *.C | grep "ideasUnvToFoam"

まとめ

OpenFOAMはオープンソースなので、ソースコードもドキュメントである。ネットで出てこない情報はソースコードを見た方が早いこともあるので、検索の方法は知っておくと便利だと思う。
特にカスタマイズをするときは類似のコードをベースにした方が早いし、参考になる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
3
Help us understand the problem. What are the problem?