自由表面を考慮したパドル翼による攪拌解析
1. モデル説明
攪拌解析において、攪拌層内に上下方向の攪拌を促進するために邪魔板(バッフル)を配置している場合、界面に渦が発生し難くなるため、計算時間を短縮するため、自由表面は考慮せずに、界面は平坦としてfree-slip境界を設定して計算することも可能です。しかしながら、邪魔板が無い場合、軸周りに渦が発生し、界面形状は変化します。この場合、VOF法等による自由表面を考慮した計算が必要になります。
本解析事例では、OpenFOAMのVOF法のソルバーであるinterFoamを用いて自由表面を考慮した攪拌解析を行いました。攪拌層内に2段のパドル翼を配置し、一定の角速度(毎秒2回転)で回転させました。流体の種類はニュートン流体(空気と水)としました。
(補足:OpenFOAMでは非ニュートン流体の計算も可能です)


2. 解析結果
図3に計算開始直後に界面が激しく変動する様子を示します。図4に中心断面の流速分布を示します。
3. まとめ
攪拌解析で界面の変動を考慮する場合、VOF法等の非定常解析をおこなうことになります。VOF法による非定常解析は、定常解析に比べ計算時間がかかりますが、OpenFOAMはライセンスフリーのため、ライセンス費用を気にすることなく大規模な計算を行えます。
また、非定常解析をおこなうことで攪拌槽内で流速分布が発達していく様子を確認できるだけでなく、デッドスペース(死領域)の有無等も視覚的に把握することが可能です。OpenFOAMを活用することで、最適な攪拌翼の選択や適切な角速度の調査を行うことができます。
4. 補足(回転運動の設定方法)
OpenFOAMでは、ユーザーが指定した方法で構造物(剛体)を運動させることができます。攪拌解析の場合、翼周りのメッシュを回転させる領域を、Cell Zoneとして定義しておく必要があります。その際、翼周りの回転させる領域と回転させない領域の境界は、スライドさせる必要があるため、節点共有せずにメッシュを作成する必要があります。
(補足:Multiple Reference Frame(MRF)の場合、境界の節点を共有させます)

ユーザーが指定した並進や回転で構造物を移動させる移動メッシュの設定方法を、Foundation版のver8を例に説明します。
constantフォルダ内に、dynamicMeshDictファイルを作成する必要があります。
0フォルダ
・ Uやpもしくはp_rghファイル等において、スライドさせる境界のパッチのtypeをcyclicAMIに指定します。
例)回転するパッチ名がs_AMI1とs_AMI2の場合 、、、
------------------------------------------------------------------
AMI1
{
type cyclicAMI;
value uniform 0;
}
AMI2
{
type cyclicAMI;
value uniform 0;
}
------------------------------------------------------------------
constantフォルダ
・ dynamicMeshDictファイルを作成し、dynamicFvMeshを dynamicMotionSolverFvMesに、motionSolver をsolidBodyに、solidBodyMotionFunctionを rotatingMotionに指定します
・ cellZoneに、回転させる領域のCell Zone名を指定します
・ originに回転軸の座標を、axisに回転軸の方向を、omegaに角速度を指定します。
例)回転させる領域のCell Zone名がrotatingで、原点中心でZ軸周りに5 rad/sで回転させる場合、、、
------------------------------------------------------------------
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
motionSolver solidBody;
cellZone rotating;
solidBodyMotionFunction rotatingMotion;
origin (0 0 0);
axis (0 0 1);
omega -5;
------------------------------------------------------------------
polyMeshフォルダ
・ boundaryファイルで、スライドさせる境界のパッチ名をcyclicAMIに、neighbourPatchに対になるパッチ名を指定します。
参考チュートリアル:
インストール先/tutorials/multiphase/interFoam/RAS/mixerVesselAMI