请教在自开发AMR求解器中应用cyclic边界条件报错
-
各位前辈,我在自适应(AMR)求解器中,对左侧点火端开口,前后面设置为cyclic周期性边界条件,其他面为壁面的算例进行计算时,出现如下报错:
[14] Compared coord: (0.0159 0 0.0009) at index 402 with difference to point 0.008 [14] processorPolyPatch::order : Writing faces to OBJ file procBoundary14to0throughbackwall_faces.obj [14] processorPolyPatch::order : Dumping newly found match as lines between corresponding face centres to OBJ file "/home/customer/Desktop/cyclicTest_zhu/3D-H2-initial-mpi-combustion/processor14/procBoundary14to0throughbackwall_faceCentresConnections.obj" [14] --> FOAM Serious Error : [14] From function processorPolyPatch::order(const primitivePatch&, labelList&, labelList&) const [14] in file meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C at line 1015 [14] in patch:procBoundary14to0throughbackwall : Cannot match vectors to faces on both sides of patch [14] masterCtrs[0]:(0.0001 0 0.0001) [14] ctrs[0]:(0.0001 0.008 0.0001) [14] Check your topology changes or maybe you have multiple separated (from cyclics) processor patches [14] Continuing with incorrect face ordering from now on Refined from 49761 to 50139 cells. Selected 21 split points out of a possible 4247. [0] [0] [0] --> FOAM FATAL ERROR: [0] Problem. Cannot find (13 452) or 877 (0.0001 0 0.0006) in 1((877 13)) remoteTransformI:-1 localTransformI:13 [0] [0] From function globalMeshData::findTransform(..) [0] in file meshes/polyMesh/globalMeshData/globalMeshData.C at line 848. [0] FOAM parallel run aborting [0] [0] #0 Foam::error::printStack(Foam::Ostream&) at ??:? [0] #1 Foam::error::abort() at ??:? [0] #2 Foam::globalMeshData::findTransform(Foam::List<Foam::Pair<int> > const&, Foam::Pair<int> const&, int) const at ??:? [0] #3 Foam::globalMeshData::calcGlobalEdgeSlaves() const at ??:? [0] #4 Foam::globalMeshData::globalEdgeSlavesMap() const at ??:? [0] #5 void Foam::syncTools::syncEdgeList<int, Foam::maxEqOp<int>, Foam::mapDistribute::transform>(Foam::polyMesh const&, Foam::List<int>&, Foam::maxEqOp<int> const&, int const&, Foam::mapDistribute::transform const&) at ??:? [0] #6 Foam::removeFaces::setRefinement(Foam::List<int> const&, Foam::List<int> const&, Foam::List<int> const&, Foam::polyTopoChange&) const at ??:? [0] #7 Foam::hexRef8::setUnrefinement(Foam::List<int> const&, Foam::polyTopoChange&) at ??:? [0] #8 Foam::dynamicRefineFvMesh::unrefine(Foam::List<int> const&) at ??:? [0] #9 Foam::dynamicRefineFvMesh::update() at ??:? [0] #10 ? at ??:? [0] #11 __libc_start_main in "/lib64/libc.so.6" [0] #12 ? at ??:?
模型如下
周期性边界:
我的Boundary文件是这样的:boundary ( outlet { type patch; faces ( (0 4 7 3) ); } endwall { type patch; faces ( (1 2 6 5) ); } upperwall { type wall; faces ( (4 5 6 7) ); } lowerwall { type wall; faces ( (0 3 2 1) ); } frontwall { type cyclic; faces ( (0 1 5 4) ); neighbourPatch backwall; } backwall { type cyclic; faces ( (6 2 3 7) ); neighbourPatch frontwall; } ); mergePatchPairs ( );
我目前怀疑是因为网格不断加密后,由于数据的传输出现问题导致,有没有遇到过类似问题可以一起讨论一下的。
-