treefoamでのメッシュ変換について

500 views
Skip to first unread message

yamamoto

unread,
Oct 24, 2013, 4:51:27 AM10/24/13
to open...@googlegroups.com
DEXCSでメッシュを作成し、treefoamでチュートリアルのhotroomに依存のものと作成したメッシュを交換し計算してみました。
しかし、以下のエラーが出てしまいました。ご教授ください。


--> FOAM FATAL ERROR: 
faceSource surfaceAverage_in: patch(in_in):
    Unknown patch name: in_in. Valid patch names are: 
5
(
inlet
outlet
wall
building2_ExportedfromBlender-2.64
defaultName.001_ExportedfromBlender-2.64
)

E.Mogura

unread,
Oct 24, 2013, 5:19:04 AM10/24/13
to open...@googlegroups.com
E.Mogura です。

DEXCSでメッシュを作成した。。。というところまでは、ある程度想像できるのですが、その後で具体的に何をやったのか全くわからないので、思いつく点のみコメントします。

エラーの意味は、patchの名前として、in_in として引用している箇所があって、
作成したメッシュにはその名前に相当するpatchが存在しないので致命的だ。

ということです。

多分、controlDict中のfunctionブロックが怪しいと思いますが、間違っていたらごめんなさい、



2013年10月24日 17:51 yamamoto <thejes...@gmail.com>:

--
このメールは Google グループのグループ「OpenFOAM」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、openfoam+u...@googlegroups.com にメールを送信します。
このグループに投稿するには、open...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/openfoam からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。

yamamoto

unread,
Oct 24, 2013, 11:11:44 PM10/24/13
to open...@googlegroups.com


ご指摘ありがとうございます。patchの整合性の問題でした。
その点は解決できたのですが、今度はまた新たなエラーが出てしまいました。
--> FOAM Warning : 
    From function Foam::List<Foam::tetIndices> Foam::polyMeshTetDecomposition::faceTetIndices(const polyMesh&, label, label)
    in file meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C at line 565
    No base point for face 10917831, 4(224330 2837046 5918927 2837047), produces a valid tet decomposition.


 具体的に行った流れとしては、DEXCSでメッシュを作成し、生成されたpolymeshの3のファイルをbouyantBoussinesqSimpleFoamのcase内にあるpolymeshと置き換えました。treefoamでpachの境界条件を合わせて計算してみました。


E.Mogura

unread,
Oct 25, 2013, 3:11:05 AM10/25/13
to open...@googlegroups.com
E.Mogura です。

エラーとありますが、計算が止まってしまうのですか?
引用されたメッセージはWarningなので、これが原因で止まることはないと思います。

止まるようであれば、ログメッセージを全て添付して下さい。



2013年10月25日 12:11 yamamoto <thejes...@gmail.com>:

yamamoto

unread,
Oct 27, 2013, 10:37:03 PM10/27/13
to open...@googlegroups.com
どうにかメッシュ変換することは出来ました。
しかしメッシュの方に問題があり、個体同士の接触面にメッシュが作られていませんでした。
ある発熱体による個体同士の熱伝達をbuoyantboussinesqsimplefoamで解こうと思っていたのですが
接触面の境界条件を定義するとなるとmultiregionを使い、それ用のメッシュを作成しなければならないのでしょうか。

E.Mogura

unread,
Oct 29, 2013, 2:53:21 AM10/29/13
to open...@googlegroups.com
E.Mogura です。

「個体同士の接触面」とか、「発熱体による個体同士の熱伝達」とか、イメージが掴めません。
ポンチ図なりで説明してもらえませんか?

たとえば、添付図のような構成で、固体部分の温度分布が生じるような場合には、chtMultiRegionFoam で計算するのが普通ですが、温度分布を不問にするなら、流体部分だけをbuoyantboussinesqsimplefoam で計算する方法も考えられます。


2013年10月28日 11:37 yamamoto <thejes...@gmail.com>:

--
ポンチ図.png

ken kitazawa

unread,
Nov 6, 2013, 8:30:44 AM11/6/13
to open...@googlegroups.com
 すいません説明不足でした。
 解析内容は、椅座位姿勢のサーマルマネキン(発熱体)が26度均一で流出入なしの部屋に置かれている状態です。(ポンチ図)
最終的にはchtMultiRegionFoamで椅子とマネキンの熱収支を解きたかったのですが、
まずは、空中椅子状態のマネキンで、パッチ毎(部位別)の対流熱伝達量を求めたいと思っています。

 現在、乱流モデルkOmegaSSTを使っているのですが、Omegaやεなどの境界条件、スキームが合っているかがわかりません。
よかったらCaseファイルを見ていただけないでしょうか。
 結果として図1の様な上昇気流のプルームをきれいに図で表したいです。

 補足で図2のように対流熱伝達率の分布をParaFoamなどで表示することは可能でしょうか?
ポンチ図.jpg
documents-export-2013-11-06.zip
図1.jpeg
図2.jpeg

E.Mogura

unread,
Nov 7, 2013, 9:29:00 PM11/7/13
to open...@googlegroups.com
E.Mogura です。

case を拝見しました。

> 現在、乱流モデルkOmegaSSTを使っているのですが、Omegaやεなどの境界条件、スキームが合っているかがわかりません。

この分野の専門というわけではないので、これが正解かどうかは判りませんが、とりたてて不合理な箇所も見当たらず、それなりの計算結果を出してくれると思います。

上昇気流もそれなりに計算できていました。メッシュを工夫すれば、もうちょっときれいな図になってくれるかもです。


> 補足で図2のように対流熱伝達率の分布をParaFoamなどで表示することは可能でしょうか?

Paraview による処理は、標準機能では出来ないと思います。スクリプトを工夫すればできるかもしれませんが、知見はありません。

熱伝達率そのものではなくて、壁面からの放熱量ということであれば、wallHeatFlux というコマンドで後処理計算でき、この結果を直接見ることができます。但し、これは圧縮性のソルバー(buoyanSimpleFoam,buoyantPimpleFoam)でしか使えないようです。

参考に、buoyanSimpleFoamで計算した結果を添付しておきます。





2013年11月6日 22:30 ken kitazawa <crike...@gmail.com>:

--
範囲を選択_228.png
Message has been deleted

ken kitazawa

unread,
Nov 8, 2013, 3:30:45 AM11/8/13
to open...@googlegroups.com
確認していただきありがとうございます。

初歩的な質問なのですが、計算結果はparaview以外に数値で書きだす方法はありますか。
対流熱伝達率を出すには、人体の放熱量と温度勾配をparaviewから読み解いて算出する方法しか恥ずかしながら思いつきません。

E.Mogura

unread,
Nov 8, 2013, 4:44:48 PM11/8/13
to open...@googlegroups.com
E.Mogura です。

話は少しそれるかもしれませんが、対流熱伝達率の定義式は?

自分は機械屋さんなので、

dQ/dt = A x h x ( T1 - T2 )

h : (対流)熱伝達率
Q : 伝熱量
A : 表面積
T1 : 表面温度
T2 : 周囲温度

として理解しています。

先に述べたwallHeatFluxが 多分、dQ/dt/A (あるいは、dQ/dt?)
詳細は不明ですが、patchの面ごとに、

    rthigh_ExportedfromBlender
    {
        type            calculated;
        value           nonuniform List<scalar> 
116
(
23.404665
8.2627339
10.815511
14.59825
11.880193
22.28191
(以下省略)

のように、数値出力してくれているので、dQ/dt/Aであるとしたら、
温度差(T1-T2)で徐算するだけ。

貴問題の場合、T1,T2ともに固定温度なので、
「温度勾配を読み解く」の意味がわからないのですが。



2013年11月8日 17:30 ken kitazawa <crike...@gmail.com>:
確認していただきありがとうございます。

初歩的な質問なのですが、計算結果はparaview以外に数値で書きだす方法はありますか。
対流熱伝達率を出すには、人体の放熱量と温度勾配をparaviewから読み解いて算出する方法しか恥ずかしながら思いつきません。

--

ken kitazawa

unread,
Nov 9, 2013, 2:04:14 AM11/9/13
to open...@googlegroups.com
勘違いしていました。温度勾配でなく温度差でした。
放熱量は単位面積あたりのものだと思っているのですが、wallHeatFluxの単位の方は[w/m2]でよろしいのでしょうか。
だとすると温度差で除すればいいのだと思います。

周辺温度を書きだす場合は、controldictのfunctions、 probesで座標点を指定してやる以外にありますか。

初心者

unread,
Dec 13, 2013, 8:25:42 AM12/13/13
to open...@googlegroups.com
kitazawa  様
 
勉強のため、ケースファイルのzipやjpgファイルをダウンロードしようと実施してみたのですが、
ダウンロードが出来ませんでした。
表示やダウンロードをしようとすると、htmlとしてやビットマップ対応となったりします。
添付のままのjpgやzipファイルとしてダウンロードするにはどうすれば良いか
ご存じでしたら教えて頂けると勉強になります。
 
 
 
Reply all
Reply to author
Forward
0 new messages