kominamiです。
Baffle境界(厚さの無い板モデル)の裏表の差圧を出力して、或る処理をしようとしています。
どなたか、ヒントになるような知見をお持ちならば、よろしく御教示ねがいます。
OpenFOAM v2206を使っていますが、必要ならば、新しい版の移動します。
== メッシュについて ==
ベースメッシュをcfMeshで作成したのち、snappyHexMeshでBaffle境界を入れています。
このようにするとmaster面とslave面のノードが一致しています。baffle境界を挟んで両側にcellがありますが、paraFoamで可視化したときに、master側のcellとslave側のcellの区別がつきません。(もちろん、polyMeshの内容を解読していけば区別はつきますが、いまはしないという前提で話を進めます。)
== ユーティティ出力 ==
こちらのスレッド(
https://groups.google.com/g/openfoam/c/PEZ_AUik66w/m/5vZlJpmAcnQJ)には、sampleユーティリティを使ってサーフェスの値を出力できる旨の記載があります。
ということで、
master面とslave面について、それぞれの点群データー(x,y,z,p)は既に入手出来ています。master面とslave面のノードが一致するため、(x,y,z)が一致しているデーターについて、p_masterとp_slaveの差を計算すれば、差圧の点群データー(x,y,z,Δp)が作ることができます。ただし、Δpの計算方法は2通りあります。すなわち、Δp = p_master - p_slave と Δp = p_slave - p-_master です。
ついでに、forceユーティティを使って、master面とslave面について、それぞれの圧力荷重ベクトル(fx,fy,fz) および、master面とslave面の圧力荷重の合力ベクトルも既に入手できています。これが、うまく利用できると良いのですが。
== 自分のやりたい処理 ==
baffle境界がの形を概略角型パイプとします。
流体によるBaffle境界が受ける差圧ΔPを計算できたとして、パイプの外側と内側のどちらの側が高圧側か知りたいと思っています。(もちろんparaFoamで可視化すれば判りますが、paraFoamで可視化をしないで、次の処理を行いたいのです。)
== 何が問題か? ==
Baffle境界のmaster/slaveのpatch面の、どちらが、外側なのか内側なのかが判らないため、Δpの計算ができません。
過去の投稿で、ソルバー改造を行ってpatchの法線ベクトルを出力するという記事がありました。ソルバー改造は、あとあとメンテナンスに苦労するため行わないという前提です。標準機能のコード埋込境界機能などを使ってpatchの法線ベクトル(nx,ny,nz)を出力できれば、(nx,ny,nz)と(fx,fy,fz)のベクトル内積から、高圧側がどちらか判りそうです。
以上です。どなたか、ヒントになるような知見をお持ちならば、よろしくお願いします。