refineMesh + overset 计算带来很大误差。
-
大家好,我想仿真2D均匀流场中放置一个强迫旋转的椭圆,openfoam版本是v2306。
如果我使用AMI,那么可以得到和其他论文十分接近的结果,涡量图如下所示。
但是当我使用overset的时候,会出现比较大的偏差,在我对结果进行可视化之后,我发现在我使用局部加密的位置会出现很明显的间断,如下图所示,我觉得这可能是主要的误差来源。
以下是我的网格:
在我绘制涡量图时,会更加奇怪:
局部加密用的是openfoam自己的toposet和refineMesh,以下是对应的配置文件
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v2306 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object refineMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // Cells to refine; name of cell set set refine3; // Type of coordinate system: // - global : coordinate system same for every cell. Usually aligned with // x,y,z axis. Specify in globalCoeffs section below. // - patchLocal : coordinate system different for every cell. Specify in // patchLocalCoeffs section below. // - fieldBased : uses the list of field names from the directions list for // selecting the directions to cut. Meant to be used with geometricCut, but // can also be used with useHexTopology. coordinateSystem global; //coordinateSystem patchLocal; //coordinateSystem fieldBased; // .. and its coefficients. x,y in this case. (normal direction is calculated // as tan1^tan2) globalCoeffs { tan1 (1 0 0); tan2 (0 1 0); } // List of directions to refine, if global or patchLocal directions ( tan1 tan2 normal ); // List of directions to refine, if "fieldBased". Keep in mind that these // fields must be of type "vectorField", not "volVectorField". //directions //( // radialDirectionFieldName // angularDirectionFieldName // heightDirectionFieldName //); // Whether to use hex topology. This will // - if patchLocal: all cells on selected patch should be hex // - split all hexes in 2x2x2 through the middle of edges. useHexTopology true; // Cut purely geometric (will cut hexes through vertices) or take topology // into account. Incompatible with useHexTopology geometricCut false; // Write meshes from intermediate steps writeMesh false; // ************************************************************************* //
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v2006 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object topoSetDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // actions ( { name refine3; type cellSet; action new; source boxToCell; min (-2 -2 -0.5); max (2 2 0.5); } ); // ************************************************************************* //
我想请问一下如果我使用局部加密网格,那么我有哪些需要注意的地方吗?
以上,希望各位大佬可以拨冗指点迷津。