73 FieldType& sliceFld = tsliceFld();
85 isA<emptyPolyPatch>(pp)
86 && pp.size() != sliceFld.boundaryField()[patchI].size()
90 sliceFld.boundaryField().set(patchI, NULL);
93 sliceFld.boundaryField().set
98 mesh.boundary()[patchI],
106 mesh.boundary()[patchI].patch().faceCells();
108 Field<Type>& pfld = sliceFld.boundaryField()[patchI];
109 pfld.setSize(faceCells.
size());
112 pfld[i] = sliceFld[faceCells[i]];
115 else if (isA<cyclicPolyPatch>(pp))
119 else if (isA<processorPolyPatch>(pp))
123 sliceFld.boundaryField()[patchI]
134 collocatedFaces(refCast<const processorPolyPatch>(pp))
139 if (!isCollocated[i])
168 scalar
s = (iso_-s0)/d;
170 if (hasSnap1 &&
s >= 0.5 &&
s <= 1)
174 else if (hasSnap0 &&
s >= 0.0 &&
s <= 0.5)
180 return s*p1 + (1.0-
s)*p0;
187 return s*p1 + (1.0-
s)*p0;
249 generatePoint(s0,p0,hasSnap0,snapP0,s1,p1,hasSnap1,snapP1)
253 generatePoint(s0,p0,hasSnap0,snapP0,s2,p2,hasSnap2,snapP2)
257 generatePoint(s0,p0,hasSnap0,snapP0,s3,p3,hasSnap3,snapP3)
259 if (triIndex == 0x0E)
271 generatePoint(s1,p1,hasSnap1,snapP1,s0,p0,hasSnap0,snapP0)
275 generatePoint(s1,p1,hasSnap1,snapP1,s3,p3,hasSnap3,snapP3)
279 generatePoint(s1,p1,hasSnap1,snapP1,s2,p2,hasSnap2,snapP2)
281 if (triIndex == 0x0D)
293 generatePoint(s0,p0,hasSnap0,snapP0,s2,p2,hasSnap2,snapP2);
295 generatePoint(s1,p1,hasSnap1,snapP1,s3,p3,hasSnap3,snapP3);
299 generatePoint(s0,p0,hasSnap0,snapP0,s3,p3,hasSnap3,snapP3)
307 generatePoint(s1,p1,hasSnap1,snapP1,s2,p2,hasSnap2,snapP2)
311 if (triIndex == 0x0C)
325 generatePoint(s2,p2,hasSnap2,snapP2,s0,p0,hasSnap0,snapP0)
329 generatePoint(s2,p2,hasSnap2,snapP2,s1,p1,hasSnap1,snapP1)
333 generatePoint(s2,p2,hasSnap2,snapP2,s3,p3,hasSnap3,snapP3)
336 if (triIndex == 0x0B)
348 generatePoint(s0,p0,hasSnap0,snapP0,s1,p1,hasSnap1,snapP1);
350 generatePoint(s2,p2,hasSnap2,snapP2,s3,p3,hasSnap3,snapP3);
356 generatePoint(s0,p0,hasSnap0,snapP0,s3,p3,hasSnap3,snapP3)
362 generatePoint(s1,p1,hasSnap1,snapP1,s2,p2,hasSnap2,snapP2)
366 if (triIndex == 0x0A)
379 generatePoint(s0,p0,hasSnap0,snapP0,s1,p1,hasSnap1,snapP1);
381 generatePoint(s2,p2,hasSnap2,snapP2,s3,p3,hasSnap3,snapP3);
386 generatePoint(s1,p1,hasSnap1,snapP1,s3,p3,hasSnap3,snapP3)
394 generatePoint(s0,p0,hasSnap0,snapP0,s2,p2,hasSnap2,snapP2)
397 if (triIndex == 0x09)
410 generatePoint(s3,p3,hasSnap3,snapP3,s0,p0,hasSnap0,snapP0)
414 generatePoint(s3,p3,hasSnap3,snapP3,s2,p2,hasSnap2,snapP2)
418 generatePoint(s3,p3,hasSnap3,snapP3,s1,p1,hasSnap1,snapP1)
420 if (triIndex == 0x07)
447 const bool hasNeiSnap,
448 const Type& neiSnapPt,
454 label own = mesh_.faceOwner()[faceI];
458 const face&
f = mesh_.faces()[faceI];
463 label nextPointI =
f[
f.fcIndex(fp)];
469 snappedPoint[pointI] != -1,
471 snappedPoint[pointI] != -1
472 ? snappedPoints[snappedPoint[pointI]]
478 snappedPoint[nextPointI] != -1,
480 snappedPoint[nextPointI] != -1
481 ? snappedPoints[snappedPoint[nextPointI]]
487 snappedCc[own] != -1,
490 ? snappedPoints[snappedCc[own]]
505 for (
label i = 0; i < nTris; i++)
532 const labelList& own = mesh_.faceOwner();
533 const labelList& nei = mesh_.faceNeighbour();
537 (cVals.size() != mesh_.nCells())
538 || (pVals.size() != mesh_.nPoints())
539 || (cCoords.size() != mesh_.nCells())
540 || (pCoords.size() != mesh_.nPoints())
541 || (snappedCc.
size() != mesh_.nCells())
542 || (snappedPoint.
size() != mesh_.nPoints())
546 <<
"Incorrect size." <<
endl
547 <<
"mesh: nCells:" << mesh_.nCells()
548 <<
" points:" << mesh_.nPoints() <<
endl
549 <<
"cVals:" << cVals.size() <<
endl
550 <<
"cCoords:" << cCoords.size() <<
endl
551 <<
"snappedCc:" << snappedCc.
size() <<
endl
552 <<
"pVals:" << pVals.size() <<
endl
553 <<
"pCoords:" << pCoords.size() <<
endl
554 <<
"snappedPoint:" << snappedPoint.
size() <<
endl
562 triMeshCells.
clear();
564 for (
label faceI = 0; faceI < mesh_.nInternalFaces(); faceI++)
566 if (faceCutType_[faceI] != NOTCUT)
568 generateFaceTriPoints
583 snappedCc[nei[faceI]] != -1,
585 snappedCc[nei[faceI]] != -1
586 ? snappedPoints[snappedCc[nei[faceI]]]
598 boolList neiSnapped(mesh_.nFaces()-mesh_.nInternalFaces(),
false);
609 label bFaceI = faceI-mesh_.nInternalFaces();
610 label snappedIndex = snappedCc[own[faceI]];
612 if (snappedIndex != -1)
614 neiSnapped[bFaceI] =
true;
615 neiSnappedPoint[bFaceI] = snappedPoints[snappedIndex];
621 syncTools::swapBoundaryFaceList(mesh_, neiSnapped);
622 syncTools::swapBoundaryFaceList(mesh_, neiSnappedPoint);
630 if (isA<processorPolyPatch>(pp))
633 refCast<const processorPolyPatch>(pp);
641 if (faceCutType_[faceI] != NOTCUT)
645 generateFaceTriPoints
660 neiSnapped[faceI-mesh_.nInternalFaces()],
661 neiSnappedPoint[faceI-mesh_.nInternalFaces()],
669 generateFaceTriPoints
700 if (faceCutType_[faceI] != NOTCUT)
702 generateFaceTriPoints
765 label mergedPointI = triPointMergeMap[i];
767 if (mergedPointI >= 0)
769 values[mergedPointI] += unmergedValues[i];
770 nValues[mergedPointI]++;
778 values[i] /= scalar(nValues[i]);
786 forAll(interpolatedPoints, i)
788 label pointI = interpolatedPoints[i];
797 values[pointI] =
w[j]*unmergedValues[oldPoints[j]];
820 > >
c2(adaptPatchFields(cCoords));
829 labelList snappedPoint(mesh_.nPoints(), -1);
852 interpolatedOldPoints_,
853 interpolationWeights_,