37 const pointPatch& completeMeshPatch,
38 const pointPatch& procMeshPatch,
42 pointPatchFieldMapperPatchRef
47 directAddressing_(procMeshPatch.size(), -1)
50 labelList pointMap(completeMeshPatch.boundaryMesh().mesh().size(), -1);
52 const labelList& completeMeshPatchPoints = completeMeshPatch.meshPoints();
54 forAll (completeMeshPatchPoints, pointi)
56 pointMap[completeMeshPatchPoints[pointi]] = pointi;
61 const labelList& procMeshPatchPoints = procMeshPatch.meshPoints();
63 forAll (procMeshPatchPoints, pointi)
65 directAddressing_[pointi] =
66 pointMap[directAddr[procMeshPatchPoints[pointi]]];
70 if (directAddressing_.size() &&
min(directAddressing_) < 0)
74 "pointFieldDecomposer::patchFieldDecomposer()"
75 ) <<
"Incomplete patch point addressing"
81 pointFieldDecomposer::pointFieldDecomposer
83 const pointMesh& completeMesh,
84 const pointMesh& procMesh,
89 completeMesh_(completeMesh),
91 pointAddressing_(pointAddressing),
92 boundaryAddressing_(boundaryAddressing),
93 patchFieldDecomposerPtrs_
96 static_cast<patchFieldDecomposer*>(NULL)
101 if (boundaryAddressing_[
patchi] >= 0)
103 patchFieldDecomposerPtrs_[
patchi] =
new patchFieldDecomposer
105 completeMesh_.boundary()[boundaryAddressing_[
patchi]],
106 procMesh_.boundary()[
patchi],
120 if (patchFieldDecomposerPtrs_[
patchi])
122 delete patchFieldDecomposerPtrs_[
patchi];