OpenFOAMの使い方・動かし方?

3,689 views
Skip to first unread message

Sakuma

unread,
May 15, 2009, 8:14:55 AM5/15/09
to OpenFOAM
 OpenFOAMの超初心者です。5/13に開催されました講習会で初めてOpenFOAMを触りました。今までオールインワンタイプの誰にでも簡単
に使える汎用の構造解析ソフトしか触った経験がないため,色々と戸惑いました。そこで,OpenFOAMに詳しい諸先輩方々に教えて頂きたいのですが,
商用のメッシャーでモデルを作成し,FLUENTやSTAR-CD形式のメッシュファイルを書き出し,そのデータをOpenFOAMで読めるデータに変
換し,境界条件や物理量の設定を行い,OpenFOAMを走らせ,結果をPARAVIEWで可視化することをしたいのですが,具体的な操作方法が分かり
ません。また,OpenFOAMを走らせるには,スクリプトと言いますかコマンドといいますか,バッチファイルのような命令ファイルを一から作成しない
とできないのでしょうか?。超初心者向けの資料などはありますでしょうか?分からないこといっぱいです。よろしくお願いします。

Giro

unread,
May 15, 2009, 9:06:26 AM5/15/09
to OpenFOAM
Giroです。

> 商用のメッシャーでモデルを作成し,FLUENTやSTAR-CD形式のメッシュファイルを書き出し,
> そのデータをOpenFOAMで読めるデータに変換

もちろん、そのような利用方法は可能です。
OpenFOAMには、それに対応可能な各種コマンドが用意されています。
一般的なお話は可能ではありますが
おそらくは一般的な表現では、経験上 ご理解が難しいと仰っているのだと思います。
お使いのソフトウェアは何でしょうか?
お使いのソフト名をこちらで書き込んでいただければ
もしかしたら、利用方法をご説明可能な方がいらっしゃるかもしれません。

また、そのあたりの初歩的な部分について
有料のレクチャーをお願いするのも一つの手であろうかと思います。
希望のソフト名を挙げれば、ここをご覧のどなたかに
有料レクチャーを企画していただける かも? とも思います。


私個人のURLにて以下についてある程度の記述をしています。
・FEMAPという市販ソフトを利用したOpenFOAM用のメッシュ利用方法
 → http://giropenfoam.web.fc2.com/openfoam/mesh/mesh.html
・Salomeというオープンソースソフトでメッシュ作成しOpenFOAMで利用する方法
 → http://giropenfoam.web.fc2.com/salome/sample3/sample3.html
 → サンプルファイル http://giropenfoam.web.fc2.com/sample/salome/index.html
・enGridというオープンソースソフトでの方法
 → http://giropenfoam.web.fc2.com/enGrid/index_enGrid.html
 → サンプルファイル http://giropenfoam.web.fc2.com/sample/enGrid/index.html

記述が古かったり、分かり難かったり、中途半端だったり...
時間を見つけて、もっと良い記述に とは思いますが
ご希望の方の数にもよりますので...

上述のソフトについて、利用例紹介資料を希望の方はどの程度いらっしゃるでしょうか?
SALOME と enGrid については、オープンソースソフトですので
OpenFOAMの勉強会において、講習希望を出してみるというのも手では?

ある程度の声があれば...今は異常に忙しいので、近々の対応はなかなかに難しいのですが
そのうち、なんとか とは思いますので ご希望の方は手を挙げていただけるでしょうか?
多ければ、少し考えます。

注)
といいつつも、メッシュを作成する というのは、それはそれで技術ですので
あくまでお伝えできるのは基礎的なところだけですので、ご認識のほど。
解くべき問題に適したメッシュの作成ができるようになるには
それ相当の経験を要しますので、地道な努力を続ける必要があります。
メッシャーの自動メッシュ(多くの場合 テトラメッシュ)で計算する所からスタートして
ある程度の時点で六面体メッシュ等に移行する 等。


以上、参考となりましたでしょうか?

Giro

unread,
May 15, 2009, 9:41:17 AM5/15/09
to OpenFOAM
SALOMEは、WINDOWS版を実現しようと がんばっているようです。
→ http://www.salome-platform.org/forum/?groupid=11&forumid=12&thread=2648

参考まで。

E.Mogura

unread,
May 15, 2009, 5:49:20 PM5/15/09
to OpenFOAM
E.Mogura です。

超初心者向け。。。ということですが、多分、マニュアルがどこにあるか?
ということから始めたほうが良さそうですね。

DEXCSランチャーのメニューから、
  ヘルプ - OpenFoam User's Guide
にて、英文マニュアルを
  ヘルプ - 同上(和訳版)
がご覧になれることをご存知でしょうか?
(但し、後者はインターネット接続が出来ているという前提ですが)

そのマニュアルの 5.5 あたりにメッシュコンヴァージョンに関する記述があるので、
まずそのあたりから初めたらどうでしょう?

そこで色んなコマンドが存在することを理解できたら、実際に端末でコマンドを入力してみる

seminar@ubuntu-vm:~$ starToFoam

Usage: starToFoam <STAR mesh file prefix> [-case dir] [-scale scale
factor] [-help] [-doc] [-srcDoc]



Wrong number of arguments, expected 1 found 0


となるので、何となくわかりませんか?

あとは実際にファイルを用意して実践あるのみ。
まずは、なるべく簡単なモデルで始めることをお勧めします。

エラーが出て困ったら。。。
⇒様々な対処の方法がありますが、簡単には説明しきれないので、
 まずは、この掲示板を利用して状況を書き込んで下さい。

また、やりたい事(境界条件や物理量の設定)を書いて、
モデルをアップロードしていただければ、
誰かがチュートリアルケースを作成してくれるかもしれません。

Sakuma

unread,
Jun 21, 2009, 2:54:13 AM6/21/09
to OpenFOAM
OpenFOAM超初心者です。色々とアドバイスを頂きありがとうごさいます。まだ
まだ理解出来ていない部分が多く,6/20日に岐阜高専で開催されたDEXCS-
OPENFOAMの講習会に参加しました。基本的な例題と操作方法を先生から解
説して頂き,このシステム内でのOpenFOAMの利用方法は大分理解が進みま
した。しかし,まだ理解出来ていない部分があります。3Dモデルのメッシュ実行,
境界条件の設定,解析の実施を1ステップずつOpenFOAMでするには,どのよう
にやっていけばよいのでしょうか?。OpenFOAMユーザーガイド1.5の和訳は
ダウンロードしたばかりで良く見ていませんが,どこかの章に書かれているでしょう
か?色々と教えて頂けたら嬉しく思います。

E.Mogura

unread,
Jun 21, 2009, 5:25:55 PM6/21/09
to OpenFOAM
E.Mogura です。

質問の趣旨がよくわからないのですが。。。

DEXCSのコマンドボタンを順番に押していくことは、
OpenFOAMで、解析の実施を1ステップずつ実施していることになるのですが、

DEXCSのコマンドボタンを押す変わりに、
OpenFOAMのコマンドを直接入力する方法ということでしょうか?

ボタンを押さなくとも実行できる部分(デフォルトで組み込んである部分)の
作成方法ということでしょうか?

それとも、
simpleFoam以外の解析をやるには、だとか、
DEXCSでは自分のやりたい解析にはマッチしそうにないということなんでしょうか?

noge

unread,
Jul 14, 2009, 6:06:22 AM7/14/09
to OpenFOAM
突然申し訳ありません。
初心者のものですが、教えてください。

現在、円柱の片面から流体を流入して、もう片面から流体が流出
するようなシミュレーションを考えております。

円柱のメッシュを3DCAD→gmsh→enGridの流れで作成しました。
円柱は4面体(三角錐)でメッシュされています。

このファイルをSTL形式でOpenFoamにimportし、blenderを
用いてblockMeshDictにexportしました。ここでblockMeshを実行しましたが
次のエラーが表示されました。

blockMeshは6面体でないといけないのでしょうか。
そもそもblockMeshとは一体何でしょうか。


## EXEC ... gedit ./constant/polyMesh/blockMeshDict ... Completed.
/
*---------------------------------------------------------------------------
*\
| =========
| |
| \\ / F ield | OpenFOAM: The Open Source CFD
Toolbox |
| \\ / O peration | Version:
1.5.x |
| \\ / A nd | Web: http://www.OpenFOAM.org
|
| \\/ M anipulation
| |
\*---------------------------------------------------------------------------
*/
Exec : blockMesh
Date : Jul 13 2009
Time : 20:21:28
Host : ubuntu-vm
PID : 16304
Case : /home/seminar/デスクトップ/test7/mesh1
nProcs : 1

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * //
Create time


Creating block mesh from
"/home/seminar/デスクトップ/test7/mesh1/constant/polyMesh/blockMeshDict"

Creating blockCorners

Creating curved edges

Creating blocks

Creating patches

Creating block mesh topology

Default patch type set to empty

Check block mesh topology

Basic statistics
Number of internal faces : 0
Number of boundary faces : 0
Number of defined boundary faces : 0
Number of undefined boundary faces : 0

Checking patch -> block consistency

Creating block offsets
#0 Foam::error::printStack(Foam::Ostream&) in "/home/seminar/OpenFOAM/
OpenFOAM-1.5.x/lib/linuxGccDPOpt/libOpenFOAM.so"
#1 Foam::sigSegv::sigSegvHandler(int) in "/home/seminar/OpenFOAM/
OpenFOAM-1.5.x/lib/linuxGccDPOpt/libOpenFOAM.so"
#2 Uninterpreted:
#3 Foam::blockMesh::createBlockOffsets() in "/home/seminar/OpenFOAM/
OpenFOAM-1.5.x/applications/bin/linuxGccDPOpt/blockMesh"
#4 Foam::blockMesh::blockMesh(Foam::IOdictionary&) in "/home/seminar/
OpenFOAM/OpenFOAM-1.5.x/applications/bin/linuxGccDPOpt/blockMesh"
#5 main in "/home/seminar/OpenFOAM/OpenFOAM-1.5.x/applications/bin/
linuxGccDPOpt/blockMesh"
#6 __libc_start_main in "/lib/tls/i686/cmov/libc.so.6"
#7 __gxx_personality_v0 in "/home/seminar/OpenFOAM/OpenFOAM-1.5.x/
applications/bin/linuxGccDPOpt/blockMesh"
Segmentation fault (core dumped)



Giro

unread,
Jul 14, 2009, 10:17:49 AM7/14/09
to OpenFOAM
Giroです。

> このファイルをSTL形式でOpenFoamにimportし、blenderを
> 用いてblockMeshDictにexportしました。ここでblockMeshを実行しましたが
> 次のエラーが表示されました。
>
> blockMeshは6面体でないといけないのでしょうか。
> そもそもblockMeshとは一体何でしょうか


blockMeshは、メッシュ作成用のツールです。
ぜひ、マニュアルをご覧になってください。
or
手前味噌で恐縮ですが、メッシュの構成について簡単な記述を以下に記しています。
http://giropenfoam.web.fc2.com/openfoam/mesh/mesh.html#check
簡単に目を通してみてください。


さて、nogeさんの場合、

> 現在、円柱の片面から流体を流入して、もう片面から流体が流出
> するようなシミュレーションを考えております。
> 円柱のメッシュを3DCAD→gmsh→enGridの流れで作成しました。

とありますので、既にメッシュは作成済み となります。
→ つまり、blockMeshを実行する必要はありません。
enGridのメニューで、OpenFOAM用のメッシュファイルを出力することができますので、それをお使いください。


noge

unread,
Jul 15, 2009, 10:42:45 PM7/15/09
to OpenFOAM
Giroさん ありがとうございます。

enGridでOpenFOAM用ファイルを含むフォルダ「constant」を出力することはできました。


この後の操作はどのような手順を踏んでいけばよいでしょうか。

DEXCSのGUIで操作する場合、blockMeshが必要でないのであれば、
メッシュ作成の操作を飛び越えても動作してくれるのでしょうか。
それとも端末で操作するほうが良いのでしょうか。

また、境界条件設定時に現れるpatchというものは何でしょうか。

Giro

unread,
Jul 16, 2009, 8:26:29 AM7/16/09
to OpenFOAM

> DEXCSのGUIで操作する場合、blockMeshが必要でないのであれば、
> メッシュ作成の操作を飛び越えても動作してくれるのでしょうか。
> それとも端末で操作するほうが良いのでしょうか。

どうでしょう。私は、端末操作しかしないので...。

例えば、以下においてあるサンプルファイルをダウンロードしてみていただけますか?
http://giropenfoam.web.fc2.com/sample/simpleFoam/index.html

zipファイルを解凍すると、必要なファイルが一式おいてあります。
端末上で、
sh ./run.sh
とすると、計算がスタートするようになっています。


解凍すると、ディレクトリが3つでてきます。
/0
/constant
/system

/constant には、/polyMeshというディレクトリがあり
作成されたメッシュファイルが格納されています。
その横には、2つのファイルがあり、中に大事な設定が記述されています。

/0 には、境界条件が設定されています。
例えば、 U というファイルを開くと
Wall において 速度=0 の設定がなされている事がわかると思います。
で、この Wall は /constant/polyMesh にある boundary ファイルにおいて
typeやFaceの指定内容が指定されています。

このあたりは、マニュアルを見ながら、構成を確認してみてください。


とはいえ、分かり難い でしょうか?

E.Mogura

unread,
Jul 16, 2009, 8:55:50 AM7/16/09
to OpenFOAM
>
> また、境界条件設定時に現れるpatchというものは何でしょうか。
>

patchというのは、メッシュ(解析領域)全体の外表面のことです。
境界問題なので、外表面で境界条件を定義してやらないと、内部の特性が計算できません。

問題は、patchが物理的な性質(壁とか、開口部)に応じて区分けできているかどうかです。
たとえば nogeさんの問題では、円柱の端面と側面とでは別の名前で定義してある必要があります。

enGridで出力されたメッシュがそうなっていればDEXCSでの操作は簡単です。

メッシュ1またはメッシュ2のパネルで、メッシュ確定ボタンを押して、
enGridで出力されたメッシュ(constant/polyMesh)を選択。

あとは境界条件のパネルで、patch名取得ボタンを押せば、
0フォルダの下の各データにその名前が自動的に反映される。
但し、境界条件のtypeとしては、すべて zeroGradient という設定になっているので、
必要な部分は、fixedValueなど、書き換えねばなりません。
あとはDEXCSチュートリアル問題と同じです。
> > enGridのメニューで、OpenFOAM用のメッシュファイルを出力することができますので、それをお使いください。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

noge

unread,
Jul 23, 2009, 5:35:52 AM7/23/09
to OpenFOAM
nogeです。

丁寧に教えていただきありがとうございます。


Giroさん、

サンプルファイルをダウンロードし、端末より「simpleFoam_141」のファイルに移動し、
sh ./run.sh
と入力したのですが、以下のようなメーセージが表示され、計算されません。

  Wrong number of arguments, expected 0 found 2

  FOAM exiting


どのような手順で進めていけばよいのでしょうか?



E.Moguraさん、

DEXCSの操作で
DEXCS2009を起動後、enGridで出力されたファイルとは別に
解析フォルダ新規作成で解析フォルダを設定すればよいのでしょうか?

また、DEXCSでソルバの選択はどのようにすればよいのでしょうか?


理解不足で的外れかも知れませんがどうぞよろしくお願いします。
> > - 引用テキストを表示 -- Hide quoted text -
>
> - Show quoted text -

E.Mogura

unread,
Jul 23, 2009, 8:13:41 AM7/23/09
to OpenFOAM
> DEXCSの操作で
> DEXCS2009を起動後、enGridで出力されたファイルとは別に
> 解析フォルダ新規作成で解析フォルダを設定すればよいのでしょうか?
>

そういうことです。

> また、DEXCSでソルバの選択はどのようにすればよいのでしょうか?

残念ながら、現在のDEXCSランチャーでは、ソルバーの選択はできません。
simpleFoamだけです。
DEXCS2009で、他のソルバーを使いたい場合は、ツール-端末(OF-1.5.x)にて
ターミナル画面を出して、コマンド入力にて実行してください。
> > - Show quoted text -- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

Giro

unread,
Jul 23, 2009, 10:20:10 AM7/23/09
to OpenFOAM
DEXCSから起動できる端末には、
1.5用 と 1.4.1用 とがあったと思います。
今回、どちらをお使いでしょうか?

OpenFOAMでは、バージョンUpの毎に
少しずつ設定ファイルの構成が変更されていたりするので
バージョンが異なる設定ファイルでは、
計算が実行できないケースがあります。
1.4.1用のサンプルファイルは、1.4.1の端末で実行してみてください。



しかし、この用に 文面だけでのやりとりは限界を感じますね。
直接お会いして、お話したほうが圧倒的に早いのでしょうが...
何か良い手は...。


On 7月23日, 午後6:35, noge <nogeno...@gmail.com> wrote:

noge

unread,
Jul 24, 2009, 5:33:56 AM7/24/09
to OpenFOAM
ありがとうございます。

E.Moguraさん、
境界条件の「patch名取得」までは出来ました。
(boudaryファイルのpatch名がp、Uファイルに反映されました。)

境界条件の定義について調べてみます


Giroさん、
現在使用しているバージョンは1.5用です。

お会いできるのであれば有難いのですが、
せめてファイルを添付できればもう少し明確にお伝えできるかもしれません...
> > > - Show quoted text -- Hide quoted text -
Reply all
Reply to author
Forward
0 new messages