blockMeshについて教えてください。

652 views
Skip to first unread message

WATARU SUZUKI

unread,
Jan 17, 2013, 1:02:53 AM1/17/13
to open...@googlegroups.com

OpenFOAMを勉強させていただいてます、鈴木と申します。
計算のメッシュ作成について悩んでおります。

メッシュをBlockMeshで記述し計算したいと思っているのですが、
頂点の座標を導くと平方根を含んだ点が出てきます。 (たとえば ( 2.5×√3 ,0 )といった形です。)
この場合blockMeshDictファイルはどのように記述すればよいのでしょうか?
皆様のご教示をいただきたいです。
よろしくお願いします。

ohbuchi

unread,
Jan 17, 2013, 1:56:10 AM1/17/13
to open...@googlegroups.com
2.5 x √3 = 4.330127019.... と必要な桁数で指定してください。



2013年1月17日木曜日 15時02分53秒 UTC+9 WATARU SUZUKI:

satoshi

unread,
Jan 17, 2013, 10:28:04 AM1/17/13
to open...@googlegroups.com
onayaです。

2.5*sqrt(3)と入力した場合は、
#calc "sqrt(1.0)*1.0";
とすれば可能です。

チュートリアルの
incompressible/simpleFoam/pipeCyclic
を参考にしてください。

また、以下も参考にしてください。
http://www.openfoam.org/version2.1.0/runtime-control.php

以上、


2013年1月17日木曜日 15時02分53秒 UTC+9 WATARU SUZUKI:

satoshi

unread,
Jan 17, 2013, 10:30:01 AM1/17/13
to open...@googlegroups.com
onayaです。

記入ミスです。
#calc "sqrt(1.0)*1.0";

x #calc "2.5*sqrt(3)";

以上,


2013年1月18日金曜日 0時28分04秒 UTC+9 satoshi:
Message has been deleted

ohbuchi

unread,
Jan 17, 2013, 11:07:18 PM1/17/13
to open...@googlegroups.com
補足説明させて頂きます。blockMeshDictをはじめとしてDictionary内にプログラムコードを埋め込む機構が
OpenFOAM-2.0から導入されています。これを#codeStreamと呼びます。satoshiさんがご指摘された方法は
これにあたります。
チュートリアルでは、incompressible/simpleFoam/pipeCyclic でも利用されています。
#code ” "で指示されたコードを実行時にコンパイルして計算します。

また、blockMeshDictにコードを埋め込まずに、m4マクロを使って計算結果の数値でblockMeshDictを自動生成
する例が、incompressible/MRFSimpleFoam/mixerVessel2Dなどに見られます。ここではm4マクロ言語で書かれた
プログラムblockMeshDict.m4を使って、下記の様にしてblockMeshDictを作成します。
m4 < blockMeshDict.m4 > blockMeshDict

同様に、任意のスクリプト言語(python, ruby, perlなど)でもblockMeshDictを生成させることができます。
pythonの場合、pyFoamという優れたツールが存在し簡単にDictionaryを扱えるので、pythonスクリプトで
生成するのが最も便利だと思います。

以上、ご参考まで。


2013年1月18日金曜日 0時30分01秒 UTC+9 satoshi:

WATARU SUZUKI

unread,
Jan 18, 2013, 2:46:41 AM1/18/13
to open...@googlegroups.com

ohbuchi様、onaya様ご助言ありがとうございます。
便利なツールや表記まで詳しい説明で勉強になりました。
ご助言をもとに作ってみたいと思います。
ありがとうございました。
Reply all
Reply to author
Forward
0 new messages