compressibleInterDyMFoam计算近壁空化泡出现奇怪的结果
-
近期尝试使用compressibleInterDyMFoam计算近壁面空化泡的溃灭,但在计算一定时间后出现了一些与实际不符的现象。
算例设置如下:
初始气泡半径R0=0.1mm,距离壁面距离λ=2,原计算域大小为5mm5mm1mm,实际计算域取其1/4。草图如下:
初始网格密度为Δx=Δy=Δz=0.025mm。后续用自适应网格进行加密,dynamicMeshDict:FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object dynamicMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dynamicFvMesh dynamicRefineFvMesh; //dynamicFvMesh staticFvMesh; dynamicRefineFvMeshCoeffs { // How often to refine refineInterval 1; // Field to be refinement on field alpha.water; // Refine field inbetween lower..upper lowerRefineLevel 0; upperRefineLevel 0.999; // If value < unrefineLevel unrefine unrefineLevel 10; // Have slower than 2:1 refinement nBufferLayers 3; // Refine cells only up to maxRefinement levels maxRefinement 5; // Stop refinement if maxCells reached maxCells 6000000; // 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) (alphaPhi none) (alphaPhiUn none) (alphaPhi10 none) (alphaPhi1Corr0 none) (ghf none) ); // Write the refinement level as a volScalarField dumpLevel true; }
计算到10.2μs后,气泡突然从溃灭状重新开始增大,而并没有完全溃灭,如图所示。
10.2μs:
10.4μs:
想问问大家这是什么原因所导致的,可能会是初始场设置不合理或是边界条件设置不合理?
初始场由于初始网格较疏以及后续加密的缘故,几个时间步后会变成这样:
边界条件如下所示:
alpha.water:boundaryField { wall { type zeroGradient; } outlet { type zeroGradient; } symmetry { type symmetry; } }
p:
boundaryField { wall { type calculated; value uniform 100000; } outlet { type calculated; value uniform 100000; } symmetry { type symmetry; } }
p_rgh:
boundaryField { wall { type fixedFluxPressure; gradient uniform 0; value uniform 100000; } outlet { type fixedFluxPressure; gradient uniform 0; value uniform 100000; } symmetry { type symmetry; } }
T:
boundaryField { wall { type zeroGradient; } outlet { type zeroGradient; } symmetry { type symmetry; } }
T.air:
boundaryField { wall { type zeroGradient; } outlet { type zeroGradient; } symmetry { type symmetry; } }
T.water:
boundaryField { wall { type zeroGradient; } outlet { type zeroGradient; } symmetry { type symmetry; } }
U:
boundaryField { wall { type noSlip; } outlet { type zeroGradient; value uniform (0 0 0); } symmetry { type symmetry; } }