いわて駐在研究日誌

OpenCAE、電子工作、R/C等、徒然なるままに

Adaptive Mesh Refinement(AMR) on OpenFOAM 3.0.x

AMRはDyMソルバーで利用可能。3Dメッシュのみ+Parallel計算可能。

interDyMFoamのチュートリアルに含まれているconstant/dynamicMeshDictでは以下の通りに記述されている。

dynamicFvMesh   dynamicRefineFvMesh;

dynamicRefineFvMeshCoeffs
{
    // How often to refine     refineの頻度(time step)
    refineInterval  1;
    // Field to be refinement on   refineの基準変数(volScalarしかできない?)
    field           alpha.water;
    // Refine field inbetween lower..upper  基準変数のrefine下限値/上限値(この範囲がrefineされる)
    lowerRefineLevel 0.001;
    upperRefineLevel 0.999;
    // If value < unrefineLevel unrefine  unrefine最大の値(通常は大きな値としておくと、自動的にunrefineも行われることになる)
    unrefineLevel   10;
    // Have slower than 2:1 refinement    refineのバッファー
    nBufferLayers   1;
    // Refine cells only up to maxRefinement levels   refineの最大追加レベル
    maxRefinement   2;
    // Stop refinement if maxCells reached  リファイン停止条件の最大セル
    maxCells        200000;

    // Flux field and corresponding velocity field. Fluxes on changed
    // faces get recalculated by interpolating the velocity. Use 'none'
    // on surfaceScalarFields that do not need to be reinterpolated.
    correctFluxes
    (
        (phi none)
        (nHatf none)
        (rhoPhi none)
        (ghf none)
    );
    // Write the refinement level as a volScalarField
    dumpLevel       true;
}