buoyantSimpleRadiationFoamへのviewFactorRadiationModelの導入に関するエラーについて など

757 views
Skip to first unread message

Tera

unread,
Jun 20, 2011, 10:35:28 PM6/20/11
to OpenFOAM
初心者のteraと申します。いつも大変お世話になっております。
早速viewFactorsのRadiationModelを使ってみようと思いましたが、
チュートリアルケースは固体気体の連成ケースであるため煩雑なので、
buoyantSimpleRadiationFoamへの導入を試みてみようと思い、

buoyantSimpleRadiationFoam/hotRadiationRoomのチュートリアルケースに対して
1)
constant/radiationProperties
 → viewFactorsチュートリアルのものをコピペして上書き(radiationModelをviewFactorsに変更)
2)
constant/viewFactorsDict → viewFactorsチュートリアルから作成(境界条件に合わせて名前変更)
3)
0/Qr →viewFactorsチュートリアルの気体条件のchangeDictionaryDictから作成(境界条件をlookupのものから
作成)
0/IDefault →同上(Qroに関する値の導入)
4)
system/fvsolution
system/fvschemes
→viewFactorsチュートリアルのものをコピペして上書き
5)RASProperties → 層流モデルとした

として改造し、
さらにメッシュをsnappyhexMeshに変えて自作の空間形状でメッシュを切った後に
$ faceAgglomerate -dict viewFactorsDict
$ viewFactorsGen
$ buoyantSimpleRadiationFoam
としたところ浮動小数点例外が起きてしまいました。以下がエラーメッセージです。
------------------------------------------------------------------------------------------------------------------------------
Decomposing C matrix...

LU Back substitute C matrix..
#0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam200/
platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam200/platforms/
linux64GccDPOpt/lib/libOpenFOAM.so"
#2 in "/lib/libc.so.6"
#3 Foam::GAMGSolver::scalingFactor(Foam::Field<double>&,
Foam::Field<double> const&, Foam::Field<double> const&,
Foam::Field<double> const&) const in "/opt/openfoam200/platforms/
linux64GccDPOpt/lib/libOpenFOAM.so"
#4 Foam::GAMGSolver::scalingFactor(Foam::Field<double>&,
Foam::lduMatrix const&, Foam::Field<double>&,
Foam::FieldField<Foam::Field, double> const&,
Foam::UPtrList<Foam::lduInterfaceField const> const&,
Foam::Field<double> const&, unsigned char) const in "/opt/openfoam200/
platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother>
const&, Foam::Field<double>&, Foam::Field<double> const&,
Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&,
Foam::PtrList<Foam::Field<double> >&,
Foam::PtrList<Foam::Field<double> >&, unsigned char) const in "/opt/
openfoam200/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double>
const&, unsigned char) const in "/opt/openfoam200/platforms/
linux64GccDPOpt/lib/libOpenFOAM.so"
#7 Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/opt/
openfoam200/platforms/linux64GccDPOpt/lib/libfiniteVolume.so"
#8 Foam::fvMatrix<double>::solve() in "/opt/openfoam200/platforms/
linux64GccDPOpt/bin/buoyantSimpleRadiationFoam"
#9
in "/opt/openfoam200/platforms/linux64GccDPOpt/bin/
buoyantSimpleRadiationFoam"
#10 __libc_start_main in "/lib/libc.so.6"
#11
in "/opt/openfoam200/platforms/linux64GccDPOpt/bin/
buoyantSimpleRadiationFoam"
Floating point exception
--------------------------------------------------------------------------------------------------------------------------------------
エラーはC matrixの計算(形態係数関係の計算?)で起きているようですが、マシンが変わるとエラーが起きるタイムステップが変わったり、また
メッシュを切ったマシンが変わると別のものでは一瞬で終わった faceAgglomerateがいつまでたっても終わらなかったりします。

もしかして、viewFactorsは連成計算にしか使えなかったりするのでしょうか。
ソースを覗いた限りだとQr以外はとくに必要ないように見えたのですが…
あるいは強制対流を導入していないことが原因だったりするのでしょうか。
あるいは未設定の係数などがあるのでしょうか。

なにかよい対処法や、エラーメッセージから考えうる原因についてご教示いただけると幸いです。

また、groovyBCを2.0.0でも使いたい、と考えているのですが、現状インストールできないようです。
$FOAM_USER_LIBBINが
/home/ユーザー名/OpenFOAM/ユーザー名-2.0.0/platforms/linux64GccDPOpt/
に変更されているようですが、プログラムのコア部分をいじらなくてもこのような部分を修正していけば稼働出来たりしないものでしょうか…というのは余談
です…

それでは、失礼します。

Masashi Imano

unread,
Jun 20, 2011, 10:52:25 PM6/20/11
to open...@googlegroups.com
今野です。

こちらでも非連成で形態係数放射モデルを使おうと思っていた所でした。
相変わらず取り組みが速いですね^^;
差し支えなければ、作成したケースをアーカイブして送ってもらえませんか?

2011/6/21 Tera <lindex...@gmail.com>:

> --
> このメールは 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(Labo.)
Facsimile:+81-3-5841-8511

Tera

unread,
Jun 21, 2011, 12:24:18 AM6/21/11
to OpenFOAM
今野さん

大変お世話になっております。ありがとうございます。

テストケースのほうですが、そのままだとちょっとまずいので形状モデルを簡略化してお送りします。
https://docs.google.com/leaf?id=0B2PVdCYvs6WCZmU2NTAyMDgtMjU1YS00MTMxLThkZGEtM2ZlYmZiOTU2YTU1&hl=ja&authkey=CN2e1Bw
上記のurlからダウンロードをお願いします。

試しに回してみたらこのモデルでは一応回るようです…収束まで確かめていませんが。
やはり、形態係数だけに形状による影響がでるのでしょうか。
あと、snappyHexMeshで細分化をおこなったところ、faceAgglomerate時にエラーが生じました。

とはいえ、設定が正しいかどうかは全くわからないです… ご指摘などあればぜひ、よろしくお願いいたします。

それでは、失礼いたします。

On Jun 21, 11:52 am, Masashi Imano <masashi.im...@gmail.com> wrote:
> 今野です。
>
> こちらでも非連成で形態係数放射モデルを使おうと思っていた所でした。
> 相変わらず取り組みが速いですね^^;
> 差し支えなければ、作成したケースをアーカイブして送ってもらえませんか?
>
> 2011/6/21 Tera <lindexagau...@gmail.com>:

ONO Hiroki

unread,
Jun 21, 2011, 9:00:06 AM6/21/11
to OpenFOAM
小野です。横からすいません。

私の調べたところでは、現在のところ非連成ではviewfactorは使うことができません。
現在のところ、というよりは標準ライブラリのみでは、というのが正しいですが…。

放射連成のカギを握っているのは、turbulentTemperatureRadCoupleMixedという境界条件で、
ここで放射・対流・固体regionへの伝導を連成しています。


ところが、この境界条件の流体固体熱連成でないバージョンは(私が見た限り)ありません。
(もしどなたか見つけたら教えてください^^;)

よって、現在の所、固体連成で解くか、連成版境界条件をもとに、非連成版境界条件を作成するか、といったところです。
非連成版の作成については、まだ取り掛かってはいませんが、さほど大がかりな改良にはならないかと思います。


なお、基本的な放射連成の考え方については、
村上先生の「CFDによる建築・都市の環境設計工学」に詳しく書かれているので、
もし未読でしたら参照されるとよいと思います。





On 6月21日, 午後1:24, Tera <lindexagau...@gmail.com> wrote:
> 今野さん
>
> 大変お世話になっております。ありがとうございます。
>
> テストケースのほうですが、そのままだとちょっとまずいので形状モデルを簡略化してお送りします。https://docs.google.com/leaf?id=0B2PVdCYvs6WCZmU2NTAyMDgtMjU1YS00MTMx...
> > Facsimile:+81-3-5841-8511- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

Masashi Imano

unread,
Jun 21, 2011, 9:53:12 AM6/21/11
to open...@googlegroups.com
小野様、Tera様

今野です。

Teraさんから送って頂いたケースはこちら(DEXCS2010 for OF+OF2.0.0のDebian package)
ではsigFpeエラーで止まってしまいましたが、
ソルバーとして放射モデルを使わないbuoyantSimpleFoamでも同様に止まったので、
放射以外が原因のようで、乱流モデルをlaminarからkEpsilonに変更したら動きました。

> よって、現在の所、固体連成で解くか、連成版境界条件をもとに、非連成版境界条件を作成するか、といったところです。

どうやらそのようです。

buoyantSimpleRadiationFoamでも放射モデルにviewFactorを指定すれば、壁面間の放射熱伝達量Qrを
形態係数モデルで計算するようですが、それを対流熱伝達量と一致させるには、Tの境界条件として
zeroGradientではなく、対流と放射の熱伝達収支を取る条件を課さないといけませんが、小野さんが
おっしゃるように現在はmultiregion間で固体伝熱との連成も行うturbulentTemperatureRadCoupleMixed
しか存在しないようです。

> 非連成版の作成については、まだ取り掛かってはいませんが、さほど大がかりな改良にはならないかと思います。

小野さん待ってます^^;

2011/6/21 ONO Hiroki <h_...@meiji.ac.jp>:

Tera

unread,
Jun 21, 2011, 8:46:21 PM6/21/11
to OpenFOAM
今野先生、小野先生

teraです。ありがとうございます。
お二方の意見、非常に参考になりました。

つまり、Tの境界条件の与え方についての問題として、
対流と放射の熱バランスを取るような計算が連成での境界条件turbulentTemperatureRadCoupleMixed
でしかできない、ということでよろしいでしょうか。

この境界条件は
気体での計算で形成された固体表面の熱流量を固体での熱拡散計算に受け渡して表面温度を計算し、これをさらに気体での固体表面の境界条件とする…という
ような計算かと思いますが、
これを非連成での計算条件とする場合、表面に熱貫流抵抗のような値を設定して、Qrと対流熱伝達の和に対して式を与えることで表面温度が決定するような
計算、ということでしょうか。

ちょっとまだ境界条件の自作は手に余る部分があるので、私も小野先生をお待ちしてよろしいでしょうか…^^;
自分でも一応考えてみます。あと、長波放射率などはこの計算ではどのように設定するのでしょうか。

それはそれとして、また質問になってしまうのですが、
Qrや形態係数Fというのは表面境界でのみ計算される値であって空間内での分布というのは与えられないのでしょうか。
もちろん、実際の現象を把握するときには放射熱伝達は面内に対してしか行われない(空気の吸収などを想定しない場合)ので、計算には必要のない数値かと
おもいますが、
建築分野での放射計算を考えて、たとえば実験との比較などを行う場合、空間内で実測したグローブ温度と空間内で計算したMRTの比較などができると実用
的なのではないか、という気がします…。

とりあえず、次のステップとして連成計算をやろうかと思いますが、
チュートリアルのようなやりかたは空間形状の作り方にあまり自由度がないので、snappyHexMeshによるやり方を試してみようかと思います…
この場合、基本的な計算はチュートリアルのままで、メッシュの切り方だけチュートリアルのheatTransfer/
chtMultiRegionFoam/SnappyMultiRegionHeaterに入れ替えればいいのではないかと思いますので、
とりあえずこれをやってみます…。

それでは。
> ...
>
> read more ≫

Tera

unread,
Jun 21, 2011, 10:28:01 PM6/21/11
to OpenFOAM
ちょっと調べてみたところ、空間内の長波放射強度はGで与えられているようですね…すみません、認識不足でした(これも間違ってるかもしれませんが…
^^;)。
http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2009/AlexeyVdovin/final_presentation.pdf

Gの算出に形態係数による影響は与えられているのでしょうか。
MRTはGから換算で求めようかと思います…正直なところまだまったくよくわかっていませんが。 では、あらためて。
> ...
>
> read more ≫

Masashi Imano

unread,
Jun 22, 2011, 4:02:56 AM6/22/11
to open...@googlegroups.com
今野です。

radiationModelがP1かfvDOMでないとGは使いません。
なお、radiationModelがfvDOMでないと、IDefaultも使いません。

radiationModelがviewFactorモデルの時は放射の空間における吸収、放出、散乱は
考慮しないです。

Ref.
http://www.openfoam.com/version2.0.0/thermophysical.php

http://www.ofwikija.org/index.php/OpenFOAM%C2%AE_v2.0.0:_%E6%96%B0%E3%81%97%E3%81%84%E7%86%B1%E7%89%A9%E7%90%86%E3%83%A2%E3%83%87%E3%83%AB

MRTの空間分布をviewFactorモデルできちんと求める場合には、格子における点もしくは
微小ポリゴンと各壁面間の形態係数を算出して放射授受量を求める必要があり、格子数が
多い場合にはかなりタフな計算になるはずですが、近似して高速に求める方法もあるかも
しれません。

なお。グローブ球のような空間偏りの無い物体ではなく、偏りのある人体(モデル)のMRT
を近似して求める場合には、微小ポリゴンとして微小立方体を用い、人体モデル形状の偏り
を考慮した放射授受に対する重み係数を微小立方体の各面に掛ける方法もあります。

2011/6/22 Tera <lindex...@gmail.com>:

> --
> このメールは Google グループのグループ「OpenFOAM」の登録者に送られています。
> このグループに投稿するには、open...@googlegroups.com にメールを送信してください。
> このグループから退会するには、openfoam+u...@googlegroups.com にメールを送信してください。

Tera

unread,
Jun 22, 2011, 4:42:15 AM6/22/11
to OpenFOAM
ありがとうございます。
やはり空間内放射エネルギー分布は出ていない、というほうが正しいのですね…

MRTについてですが、実験値との比較を行う、というだけならば、
別に空間内に一様に測定点を与える必要はなく、測定点にあたる空間に微小な立方体のポリゴンを作って放射熱授受量から計算するのでいいのではないかと思
いました。

それでは、ありがとうございました。
openFoamのみならず流体力学についても初心者で、まだほとんど分かっていない状態で質問を立ててしまって恐縮ですがいろいろと勉強になりまし
た…



On Jun 22, 5:02 pm, Masashi Imano <masashi.im...@gmail.com> wrote:
> 今野です。
>
> radiationModelがP1かfvDOMでないとGは使いません。
> なお、radiationModelがfvDOMでないと、IDefaultも使いません。
>
> radiationModelがviewFactorモデルの時は放射の空間における吸収、放出、散乱は
> 考慮しないです。
>
> Ref.http://www.openfoam.com/version2.0.0/thermophysical.php
>
> http://www.ofwikija.org/index.php/OpenFOAM%C2%AE_v2.0.0:_%E6%96%B0%E3...
>
> MRTの空間分布をviewFactorモデルできちんと求める場合には、格子における点もしくは
> 微小ポリゴンと各壁面間の形態係数を算出して放射授受量を求める必要があり、格子数が
> 多い場合にはかなりタフな計算になるはずですが、近似して高速に求める方法もあるかも
> しれません。
>
> なお。グローブ球のような空間偏りの無い物体ではなく、偏りのある人体(モデル)のMRT
> を近似して求める場合には、微小ポリゴンとして微小立方体を用い、人体モデル形状の偏り
> を考慮した放射授受に対する重み係数を微小立方体の各面に掛ける方法もあります。
>
> 2011/6/22 Tera <lindexagau...@gmail.com>:
>
>
>
>
>
>
>
> > ちょっと調べてみたところ、空間内の長波放射強度はGで与えられているようですね…すみません、認識不足でした(これも間違ってるかもしれませんが…
> > ^^;)。
> >http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2009/AlexeyVdovin/fina...
> ...
>
> read more ≫
Reply all
Reply to author
Forward
0 new messages