Foam::label Foam::coupleGroupIdentifier::findOtherPatchID ( const polyPatch& thisPatch ) const { const polyBoundaryMesh& pbm = thisPatch.boundaryMesh(); return findOtherPatchID(pbm.mesh(), thisPatch); }
Foam::label Foam::coupleGroupIdentifier::findOtherPatchID ( const polyPatch& thisPatch, word& otherRegion ) const { const polyBoundaryMesh& pbm = thisPatch.boundaryMesh(); const polyMesh& thisMesh = pbm.mesh(); const Time& runTime = thisMesh.time(); // Loop over all regions to find other patch in coupleGroup HashTable<const polyMesh*> meshSet = runTime.lookupClass<polyMesh>(); label otherPatchID = -1; forAllConstIter(HashTable<const polyMesh*>, meshSet, iter) { const polyMesh& mesh = *iter(); label patchID = findOtherPatchID(mesh, thisPatch); if (patchID != -1) { if (otherPatchID != -1) { FatalErrorInFunction << "Couple patchGroup " << name() << " should be present on only two patches" << " in any of the meshes in " << meshSet.sortedToc() << endl << " It seems to be present on patch " << thisPatch.name() << " in region " << thisMesh.name() << ", on patch " << otherPatchID << " in region " << otherRegion << " and on patch " << patchID << " in region " << mesh.name() << exit(FatalError); } otherPatchID = patchID; otherRegion = mesh.name(); } } if (otherPatchID == -1) { FatalErrorInFunction << "Couple patchGroup " << name() << " not found in any of the other meshes " << meshSet.sortedToc() << " on patch " << thisPatch.name() << " region " << thisMesh.name() << exit(FatalError); } return otherPatchID; }