39 const label sizeBeforeMapping,
41 const label addressingOffset
44 sizeBeforeMapping_(sizeBeforeMapping),
45 directAddressing_(addressingSlice)
47 forAll(directAddressing_, i)
52 directAddressing_[i] -= addressingOffset;
64 sizeBeforeMapping_(
mesh.nFaces()),
65 addressing_(addressingSlice.size()),
66 weights_(addressingSlice.size())
75 label ai = addressingSlice[i];
78 if (ai < neighb.size())
83 addressing_[i].setSize(2);
84 weights_[i].setSize(2);
86 addressing_[i][0] = own[ai];
87 addressing_[i][1] = neighb[ai];
89 weights_[i][0] = weights[ai];
90 weights_[i][1] = 1.0 - weights[ai];
100 addressing_[i].setSize(1);
101 weights_[i].setSize(1);
103 addressing_[i][0] = own[ai];
105 weights_[i][0] = 1.0;
114 label sizeBeforeMapping,
118 sizeBeforeMapping_(sizeBeforeMapping),
119 addressing_(addressingSlice.size()),
120 weights_(addressingSlice.size())
124 addressing_[i].setSize(1);
125 weights_[i].setSize(1);
127 addressing_[i][0] =
mag(addressingSlice[i]) - 1;
128 weights_[i][0] =
sign(addressingSlice[i]);
133 faFieldDecomposer::faFieldDecomposer
135 const faMesh& completeMesh,
136 const faMesh& procMesh,
142 completeMesh_(completeMesh),
144 edgeAddressing_(edgeAddressing),
145 faceAddressing_(faceAddressing),
146 boundaryAddressing_(boundaryAddressing),
147 patchFieldDecomposerPtrs_
150 static_cast<patchFieldDecomposer*>(NULL)
152 processorAreaPatchFieldDecomposerPtrs_
155 static_cast<processorAreaPatchFieldDecomposer*>(NULL)
157 processorEdgePatchFieldDecomposerPtrs_
160 static_cast<processorEdgePatchFieldDecomposer*>(NULL)
163 forAll(boundaryAddressing_, patchi)
165 if (boundaryAddressing_[patchi] >= 0)
167 patchFieldDecomposerPtrs_[patchi] =
new patchFieldDecomposer
169 completeMesh_.boundary()[boundaryAddressing_[patchi]].size(),
170 procMesh_.boundary()[patchi].patchSlice(edgeAddressing_),
172 completeMesh_.boundary()
174 boundaryAddressing_[patchi]
180 processorAreaPatchFieldDecomposerPtrs_[patchi] =
181 new processorAreaPatchFieldDecomposer
184 procMesh_.boundary()[patchi].patchSlice(edgeAddressing_)
187 processorEdgePatchFieldDecomposerPtrs_[patchi] =
188 new processorEdgePatchFieldDecomposer
190 procMesh_.boundary()[patchi].size(),
193 procMesh_.boundary()[patchi].patchSlice
208 forAll(patchFieldDecomposerPtrs_, patchi)
210 if (patchFieldDecomposerPtrs_[patchi])
212 delete patchFieldDecomposerPtrs_[patchi];
216 forAll(processorAreaPatchFieldDecomposerPtrs_, patchi)
218 if (processorAreaPatchFieldDecomposerPtrs_[patchi])
220 delete processorAreaPatchFieldDecomposerPtrs_[patchi];
224 forAll(processorEdgePatchFieldDecomposerPtrs_, patchi)
226 if (processorEdgePatchFieldDecomposerPtrs_[patchi])
228 delete processorEdgePatchFieldDecomposerPtrs_[patchi];