3次元の固体内熱伝導を解く仮定で,関数による非定常境界条件(壁面温度)を与えることを考えています.
このとき,非定常に変化するパラメータが2次元的な面の分布を持っている場合を想定しているのですが,今のところ良い案が見つかっていません.良い方法
はないでしょうか?
なお,関数による境界条件はgroovyBCによって与えています.
例えば非定常に変化するパラメータが分布を持たないようなものの場合は計算することが可能です.
以下の例ではtopというパッチ(面)に熱伝達率hを境界条件として与え,非定常に変化する空気温度Tgを与えた例です.
熱伝達率hは分布を持っており,0/hを作り,nonuniform List<scalar>形式で縦一列に書かれたデータを与えています.
0/Tにおいて以下のようにgroovyBCを設定してやり,Tg(空気温度)の時間変化を書いたファイルTg.datを作っています.
(top以外のパッチについては省略しています.)
0/T
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
top
{
type groovyBC;
timelines
(
{
name Tg;
fileName "0/Tg.dat";
outOfBounds clamp;
}
);
value uniform 300;
gradientExpression "gradT";
fractionExpression "0";
variables "rho=(密度);c=(比熱);DT=(温度伝導率);gradT=h*(Tg-T)/(rho*c*DT);";
}
}
0/Tgはこのような感じです.
0/Tg.dat
(
( 0 310 )
( 1 311 )
( 2 312 )
( 3 313 )
)
http://openfoamwiki.net/index.php/Contrib_groovyBC
回答どうもありがとうございます.
与える分布(壁面温度)は関数で定義されないような分布となっています.
このような場合には不可能なのでしょうか…
> > )- 引用テキストを表示しない -
>
> - 引用テキストを表示 -
返信ありがとうございます.
上記方法で分布を時間変化させることができました.
アドバイスありがとうございました.
> > > - 引用テキストを表示 -- 引用テキストを表示しない -
>
> - 引用テキストを表示 -