高層ビル周りの気流解析 CaseDについて

812 views
Skip to first unread message

kazalogue

unread,
Feb 21, 2012, 3:28:34 AM2/21/12
to OpenFOAM
ビル風の解析を目標として、OpenFOAM勉強会の発表資料などを参考に、OpenFOAM1.7から勉強させていただいている近藤と申します。

CaseDなどの市街地モデルを作成し、大島先生の「建築分野向けチュートリアル」を参考にメッシュ作成の練習をしておりましたが、バージョンが合わな
いためかうまくいきませんでした。

そこで、ディスカッションの過去記事をあたりましたところ、「高層ビル周りの気流解析(simpleFoamMeans-20080808)」という記
事が見つかり、今野先生のスレッドを参考に、
Latest version: http://www.opencae.jp/svn/OpenFOAM-VandV-SIG/AIJ-PWEAB/trunk
から、CaseDをダウンロードし、DEXCS2011のOpenFOAM2.0で練習を始めたところです。

CaseDホルダーの格納場所は”~/OpenFOAM/user-2.0.x/run/CaseD"としています。
ターミナルから$プロンプトの後に ./Allrunとタイプし実行しましたところ、
次のメッセージが表示されて処理が中断してしましました。

何か、パスが通っていないのか、あるいはバージョンが違う等の原因がおわかりになれば、どなたかアドバイスをいただけたらたいへん助かります。
よろしくお願いいたします。

user@user:~/OpenFOAM/user-2.0.x/run/CaseD$ ./Allrun
Running blockMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running snappyHexMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running checkMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running renumberMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
link: `../share/Allrun'の次にオペランドが必要です
詳しくは `link --help' を実行して下さい。
link: `../share/Allrun'の次にオペランドが必要です
詳しくは `link --help' を実行して下さい。
link: `../share/Allrun'の次にオペランドが必要です
詳しくは `link --help' を実行して下さい。
user@user:~/OpenFOAM/user-2.0.x/run/CaseD$ link --help
使用法: link FILE1 FILE2
又は: link OPTION
FILE2 を既存の FILE1にリンクするためのリンク機能を呼び出して下さい。

--help この使い方を表示して終了
--version バージョン情報を表示して終了

Report link bugs to bug-co...@gnu.org
GNU coreutils のホームページ: <http://www.gnu.org/software/coreutils/>
GNU ソフトウェアを使用する際の一般的なヘルプ: <http://www.gnu.org/gethelp/>
Report link translation bugs to <http://translationproject.org/team/>

以上です

Masashi Imano

unread,
Feb 21, 2012, 3:45:06 AM2/21/12
to open...@googlegroups.com
今野です。

すいません、shareディレクトリの中のファイルにシンボリックリンクしているAllrun等のファイルが、
今見るとレポジトリ上ではおかしくなっていますね。

今日明日は時間が取れずに、レポジトリを直すのは時間がかかりそうなので、とりあえずこちらのある
CaseDをtarボールにしたものを送ります。こちらを試してもらえませんか?

2012年2月21日17:28 kazalogue <kko...@sepia.ocn.ne.jp>:

> --
> このメールは Google グループのグループ「OpenFOAM」の登録者に送られています。
> このグループに投稿するには、open...@googlegroups.com にメールを送信してください。
> このグループから退会するには、openfoam+u...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/openfoam?hl=ja からこのグループにアクセスしてください。
>

--
IMANO Masashi, Ph.D.
Assistant Professor
Department of Architecture, Graduate School of Engineering,
The University of Tokyo
7-3-1, Hongo, Bunkyo-ku, Tokyo, Japan, 113-8656
E-mail:im...@arch.t.u-tokyo.ac.jp
Phone:+81-3-5841-6164(direct), +81-3-5841-6179(Laboratory)
Facsimile:+81-3-5841-8511

CaseD.tar.gz

K.Kondo

unread,
Feb 21, 2012, 6:46:08 AM2/21/12
to open...@googlegroups.com
今野様

近藤です。
早速、お返事いただきましてありがとうございます。
”CaseDをtarボール”をトライアルしてみましたが、
結果は全く変わりませんでした。
こちらは、急ぎではありませんので、先生のお手すき折りに解決していただければ幸いです。
では、気長にお返事お待ちしています。

K.Kondo

unread,
Feb 21, 2012, 8:49:34 PM2/21/12
to open...@googlegroups.com
今野様

近藤です。たびたび恐縮です。
パーミッションを再度確認し、$ chmod 755 で下位の階層まですべて変更しましたところ、$ ./Allrun でプログラムは起動しましたが、やはりエラーが発生し処理が中断してしましました。
初歩的なミスかもしれませんが、エラーの内容をお送りしますので、よろしくご教授くださいますようお願いいたします。

なお、最初に投稿しましたエラーはパーミッションを再度変更しても状況は変わりませんでした。
また、meshとshareホルダーにあるdecomposeParDictのコア数は4から2に変更しています。

user@user:~/OpenFOAM/user-2.0.x/run/CaseD$ ./Allrun
Running blockMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running snappyHexMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running checkMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running renumberMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh

Running changeDictionary on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running setDiscreteFields on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running simpleFoam on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running foamCalc on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running foamLog on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running sample on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
nohup: ignoring input and appending output to `nohup.out'
./Allrun: 42: Syntax error: Bad fd number
Running changeDictionary on /home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
Running setDiscreteFields on
/home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
Running simpleFoam on /home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
Running foamCalc on /home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
Running foamLog on /home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
Running sample on /home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
nohup: ignoring input and appending output to `nohup.out'
./Allrun: 42: Syntax error: Bad fd number
Running changeDictionary on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
Running setDiscreteFields on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
Running simpleFoam on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
Running foamCalc on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
Running foamLog on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
Running sample on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
nohup: ignoring input and appending output to `nohup.out'
./Allrun: 42: Syntax error: Bad fd number
user@user:~/OpenFOAM/user-2.0.x/run/CaseD$

以上です

-----Original Message-----
From: Masashi Imano
Sent: Tuesday, February 21, 2012 5:45 PM
To: open...@googlegroups.com
Subject: Re: [OpenFOAM] 高層ビル周りの気流解析 CaseDについて

Masashi Imano

unread,
Feb 21, 2012, 9:29:36 PM2/21/12
to open...@googlegroups.com
今野です。

> ./Allrun: 42: Syntax error: Bad fd number

このエラーは確か、sh が bashでなくて、dash にリンクされている時に出るものですね。

ls -al `which sh`

を実行すると、以下のようになっていると思います。

lrwxrwxrwx 1 root root 4 Oct 7 2010 /bin/sh -> dash

この場合には各ディレクトリのAllrunの先頭を #!/bin/bash に変更してください。

もしくは、shをbashにリンクし直すという手もあります。

参考:
http://masaoo.blogspot.com/2009/10/ubuntu-binsh-bindash-binbash.html

2012年2月22日10:49 K.Kondo <kko...@sepia.ocn.ne.jp>:

K.Kondo

unread,
Feb 22, 2012, 1:39:49 AM2/22/12
to open...@googlegroups.com
今野様

先生がおっしゃるとおりでした。
ls -al `which sh` を実行したところ、


lrwxrwxrwx 1 root root 4 Oct 7 2010 /bin/sh -> dash

と表示されました。

そこで、
http://masaoo.blogspot.com/2009/10/ubuntu-binsh-bindash-binbash.html
を参考に、$ sudo dpkg-reconfigure dash を実行し、
dash から bash に切り替えたところ、今度は $ ./Allrun で次のメッセージまで進んで止まりました。
*deg ディレクトリでvelocityThermistor.epsなどの生成が確認できましたので、途中まではうまくいっているものと思います。
ただ、このプログラムはこれで完了なのかよくわかりません。初歩的な質問で申し訳ありませんがよろしく御指導お願いいたします。

user@user:~/OpenFOAM/user-2.0.x/run/CaseD$ ./Allrun
Running blockMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running snappyHexMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running checkMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running renumberMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running changeDictionary on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running setDiscreteFields on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running simpleFoam on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg

/home/user/OpenFOAM/OpenFOAM-2.0.x/bin/tools/RunFunctions: line 37: 8704
Floating point exception$APP_RUN $* > log.$APP_NAME 2>&1


Running foamCalc on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running foamLog on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running sample on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
nohup: ignoring input and appending output to `nohup.out'

Running changeDictionary on /home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
Running setDiscreteFields on
/home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
Running simpleFoam on /home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg

/home/user/OpenFOAM/OpenFOAM-2.0.x/bin/tools/RunFunctions: line 37: 9131
Floating point exception$APP_RUN $* > log.$APP_NAME 2>&1


Running foamCalc on /home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
Running foamLog on /home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
Running sample on /home/user/OpenFOAM/user-2.0.x/run/CaseD/22.5deg
nohup: ignoring input and appending output to `nohup.out'

Running changeDictionary on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
Running setDiscreteFields on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
Running simpleFoam on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg

/home/user/OpenFOAM/OpenFOAM-2.0.x/bin/tools/RunFunctions: line 37: 9554
Floating point exception$APP_RUN $* > log.$APP_NAME 2>&1


Running foamCalc on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
Running foamLog on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
Running sample on /home/user/OpenFOAM/user-2.0.x/run/CaseD/45deg
nohup: ignoring input and appending output to `nohup.out

user@user:~/OpenFOAM/user-2.0.x/run/CaseD$
以上。

Masashi Imano

unread,
Feb 23, 2012, 5:42:47 AM2/23/12
to open...@googlegroups.com
今野です。

> /home/user/OpenFOAM/OpenFOAM-2.0.x/bin/tools/RunFunctions: line 37:  8704
> Floating point exception$APP_RUN $* > log.$APP_NAME 2>&1

0degの下だけ見て頂ければ良いのですが、log.simpleFoamの最後のほうで
Floating point exception と書いてある行がありませんか?
その行までの15行位を貼ってください。

あと、​setDiscreteFields ユーティリティは正常に動いてますか?
log.​setDiscreteFields も見てください。
これが正常に動いていないと、流入風が正しく設定されないので、
Floating point exception になる可能性があります。

もしOF Ver-2.*用のsetDiscreteFields をインストールされていないのであれば、
インストールする必要があります。

Ref:
http://www.opencae.jp/wiki/OpenFOAM-VandV-SIG/AIJ-PWEAB

2012年2月22日15:39 K.Kondo <kko...@sepia.ocn.ne.jp>:

K.Kondo

unread,
Feb 23, 2012, 7:09:43 PM2/23/12
to open...@googlegroups.com
今野様

log.simpleFoamで”Floating point exception”と書いてあるのはファイルのヘッダほうで、
log.simpleFoamの最後のほうには見当たりませんでした。
ヘッダの内容は次のとおりでした。

/*---------------------------------------------------------------------------*\
| ========= |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
| \\ / O peration | Version: 2.0.x
|
| \\ / A nd | Web: www.OpenFOAM.com
|
| \\/ M anipulation |
|
\*---------------------------------------------------------------------------*/
Build : 2.0.x-68952d880745
Exec : simpleFoam
Date : Feb 22 2012
Time : 12:18:49
Host : user
PID : 8704
Case : /opt/OpenFOAM/user-2.0.x/run/CaseD/0deg
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using
timeStampMaster
allowSystemOperations : Allowing user-supplied system call operations

またlog.​setDiscreteFields は次のエラー、
”/home/user/OpenFOAM/OpenFOAM-2.0.x/bin/tools/RunFunctions: line 47:
setDiscreteFields: コマンドが見つかりません”
を返していました。

そこで、http://www.opencae.jp/wiki/OpenFOAM-VandV-SIG/AIJ-PWEAB
にあります、Common prerequisites から、gnuplot-4.4.4 と ​setDiscreteFields
utility をダウンロードし、
gnuplotは格納ホルダー(~/temp/gnuplot-4.4.4$)から  ./configure を実行しました。

さらに、​setDiscreteFields utility  は格納ホルダーより  wmake を実行しましたところ、
../user-2.0.x/platforms/linux64GccDPOpt/bin/setDiscreteFields が作成されています。

次に、CaseDの初期状態から、./Allrunを実行したところ、以前と違って、処理時間が長くなっていますが、


user@user:~/OpenFOAM/user-2.0.x/run/CaseD$ ./Allrun
Running blockMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running snappyHexMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running checkMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running renumberMesh on /home/user/OpenFOAM/user-2.0.x/run/CaseD/mesh
Running changeDictionary on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running setDiscreteFields on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running simpleFoam on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running foamCalc on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running foamLog on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
Running sample on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
nohup: ignoring input and appending output to `nohup.out'

(以下同様)
で、処理が終わりました。

0degを見ますと、今度は log.setDiscreteFields の U,k,epsilonの各フィールドが作成されています。

また、この時点で paraFoam を実行しますと、

WARN file does not exist:
./system/controlDict
./system/fvSchemes
./system/fvSolution
created temporary 'CaseD_temp.OpenFOAM'

--> FOAM FATAL IO ERROR:
cannot find file

file: /home/user/OpenFOAM/user-2.0.x/run/old/CaseD_temp/system/controlDict
at line 0.

From function regIOobject::readStream()
in file db/regIOobject/regIOobjectRead.C at line 73.

FOAM exiting

となり、fileのパス名がおかしくなって、処理が中断されました。
私の対応が間違えたかもしれませんが、ご教授よろしくお願いいたします。

お忙しいところたいへん申し訳ありません。 近藤

Masashi Imano

unread,
Feb 23, 2012, 10:42:44 PM2/23/12
to open...@googlegroups.com
今野です.

> user@user:~/OpenFOAM/user-2.0.x/run/CaseD$ ./Allrun
(snip)
> Running simpleFoam on /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg

paraFoam は ソルバー simpleFoam を動かしたディレクトリである

/home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg

などで動かす必要があるのですが,以下を見る限り,

/home/user/OpenFOAM/user-2.0.x/run/old/CaseD_temp

で動かしています(paraFoamに引数を付けないで動かしと仮定した場合).

> --> FOAM FATAL IO ERROR:
> cannot find file
>
> file: /home/user/OpenFOAM/user-2.0.x/run/old/CaseD_temp/system/controlDict
> at line 0.

もう一度

cd /home/user/OpenFOAM/user-2.0.x/run/CaseD/0deg
paraFoam

を実行してみてください.

2012年2月24日9:09 K.Kondo <kko...@sepia.ocn.ne.jp>:

K.Kondo

unread,
Feb 24, 2012, 3:48:04 AM2/24/12
to open...@googlegroups.com
今野様

お答えありがとうございました。

初歩的なミスでした。
ターミナルを2枚開いて処理を実行したため、
初歩的なミスに気付かないほど混乱していました。

もう一度 CaseD ホルダーから、paraFoam を実行しましたらちゃんと起動しました。

高さ0.9の6面体が表示され、メッシュが切られていることが確認できました。
これからstlデータののメッシュへの取り込みや、風速などの内容の表示は、
これからじっくり勉強させていただきます。

ここで、2点疑問が残ります。

一つは、
0deg/では117回の計算で処理が終わりました。
しかし、22.5deg/ と 45deg/ のケースでは 計算回数が2000回まで達しています。
計算回数の違いが大きいのですが、
これは、単純に、0deg/ ケースでは117回で収束判定条件に達した、と理解していいでしょうか。
( ..0deg/res.eps を見ますと、 Ux、k、epsilon が1e-06に達していました。)

もう一つは、お聞きするまでもないことかと思いますが、
ターミナルでは演算の完了がはっきり確認できず、
”nohup: ignoring input and appending output to `nohup.out'”
という、メッセージを返して処理が終了しています。

このメッセージが気になるところです。
”入力を無視したり追加した場合は`nohup.out'に出力します”
という意味で解釈していいのでしょうか。

だとすると、そのような場合はどのような場合に起こるのでしょうか。
実際 0deg/ などのケースホルダーには `nohup.out' が生成されていますが、
内容は空っぽでした。

以上、よろしくお願いいたします。

Masashi Imano

unread,
Feb 24, 2012, 5:41:40 AM2/24/12
to open...@googlegroups.com
今野です。

> 一つは、
> 0deg/では117回の計算で処理が終わりました。
> しかし、22.5deg/ と 45deg/ のケースでは 計算回数が2000回まで達しています。
> 計算回数の違いが大きいのですが、
> これは、単純に、0deg/ ケースでは117回で収束判定条件に達した、と理解していいでしょうか。
> ( ..0deg/res.eps を見ますと、 Ux、k、epsilon が1e-06に達していました。)

複雑な気流場の場合、残差が1e-6などと十分小さくならないことが多いです。

> もう一つは、お聞きするまでもないことかと思いますが、
> ターミナルでは演算の完了がはっきり確認できず、
> ”nohup: ignoring input and appending output to `nohup.out'”
> という、メッセージを返して処理が終了しています。

nohupが出すワーニング・メッセージは無視してもらっても構いません。

2012年2月24日17:48 K.Kondo <kko...@sepia.ocn.ne.jp>:

K.Kondo

unread,
Feb 24, 2012, 4:30:21 PM2/24/12
to open...@googlegroups.com
今野様

私の初歩的なミスだとわかりましたが、
お忙しい中、丁寧にお教えいただきありがとうございました。
感謝いたします。

Reply all
Reply to author
Forward
0 new messages