mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
check for decomposed cyclics causing different number of points
This commit is contained in:
@ -236,6 +236,7 @@ void processorPointPatch::initPatchPatchPoints()
|
|||||||
);
|
);
|
||||||
|
|
||||||
toNeighbProc
|
toNeighbProc
|
||||||
|
<< ppmp.size() // number of points for checking
|
||||||
<< patchPatchPoints
|
<< patchPatchPoints
|
||||||
<< patchPatchPointNormals;
|
<< patchPatchPointNormals;
|
||||||
|
|
||||||
@ -257,13 +258,33 @@ void Foam::processorPointPatch::calcPatchPatchPoints()
|
|||||||
neighbProcNo()
|
neighbProcNo()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
label nbrNPoints(readLabel(fromNeighbProc));
|
||||||
labelListList patchPatchPoints(fromNeighbProc);
|
labelListList patchPatchPoints(fromNeighbProc);
|
||||||
List<List<vector> > patchPatchPointNormals(fromNeighbProc);
|
List<List<vector> > patchPatchPointNormals(fromNeighbProc);
|
||||||
|
|
||||||
pointBoundaryMesh& pbm = const_cast<pointBoundaryMesh&>(boundaryMesh());
|
pointBoundaryMesh& pbm = const_cast<pointBoundaryMesh&>(boundaryMesh());
|
||||||
|
|
||||||
const labelList& ppmp = meshPoints();
|
const labelList& ppmp = meshPoints();
|
||||||
|
|
||||||
|
// Simple check for the very rare situation when not the same number
|
||||||
|
// of points on both sides. This can happen with decomposed cyclics.
|
||||||
|
// If on one side the cyclic shares a point with proc faces coming from
|
||||||
|
// internal faces it will have a different number of points from
|
||||||
|
// the situation where the cyclic and the 'normal' proc faces are fully
|
||||||
|
// separate.
|
||||||
|
if (nbrNPoints != ppmp.size())
|
||||||
|
{
|
||||||
|
WarningIn("processorPointPatch::calcPatchPatchPoints()")
|
||||||
|
<< "Processor patch " << name()
|
||||||
|
<< " has " << ppmp.size() << " points; coupled patch has "
|
||||||
|
<< nbrNPoints << " points." << endl
|
||||||
|
<< " (usually due to decomposed cyclics)."
|
||||||
|
<< " This might give problems" << endl
|
||||||
|
<< " when using point fields (interpolation, mesh motion)."
|
||||||
|
<< endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Loop over the patches looking for other patches that share points
|
// Loop over the patches looking for other patches that share points
|
||||||
forAll(patchPatchPoints, patchi)
|
forAll(patchPatchPoints, patchi)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user