35 const label sizeBeforeMapping,
37 const label addressingOffset
40 sizeBeforeMapping_(sizeBeforeMapping),
41 directAddressing_(addressingSlice)
43 forAll(directAddressing_, i)
48 directAddressing_[i] -= addressingOffset;
56 const label nTotalFaces,
63 sizeBeforeMapping_(nTotalFaces),
64 addressing_(addressingSlice.
size()),
65 weights_(addressingSlice.
size())
70 label ai = addressingSlice[i];
73 if (ai < neigh.
size())
78 addressing_[i].resize(2);
79 weights_[i].resize(2);
81 addressing_[i][0] = owner[ai];
82 addressing_[i][1] = neigh[ai];
84 if (ai < weights.size())
87 weights_[i][0] = weights[ai];
88 weights_[i][1] = 1.0 - weights[ai];
105 addressing_[i].resize(1);
106 weights_[i].resize(1);
108 addressing_[i][0] = owner[ai];
110 weights_[i][0] = 1.0;
127 mesh.edgeNeighbour(),
129 mesh.weights().internalField()
137 label sizeBeforeMapping,
141 sizeBeforeMapping_(sizeBeforeMapping),
142 addressing_(addressingSlice.
size()),
143 weights_(addressingSlice.
size())
147 addressing_[i].resize(1);
148 weights_[i].resize(1);
150 addressing_[i][0] =
mag(addressingSlice[i]) - 1;
151 weights_[i][0] =
sign(addressingSlice[i]);
158 Foam::faFieldDecomposer::faFieldDecomposer
168 edgeAddressing_(edgeAddressing),
169 faceAddressing_(faceAddressing),
170 boundaryAddressing_(boundaryAddressing),
172 patchFieldDecomposerPtrs_(),
173 processorAreaPatchFieldDecomposerPtrs_(),
174 processorEdgePatchFieldDecomposerPtrs_()
178 Foam::faFieldDecomposer::faFieldDecomposer
180 const faMesh& completeMesh,
200 Foam::faFieldDecomposer::faFieldDecomposer
202 const label nTotalFaces,
222 reset(nTotalFaces, boundaryRanges, edgeOwner, edgeNeigbour);
230 return patchFieldDecomposerPtrs_.empty();
236 patchFieldDecomposerPtrs_.clear();
237 processorAreaPatchFieldDecomposerPtrs_.clear();
238 processorEdgePatchFieldDecomposerPtrs_.clear();
244 const label nTotalFaces,
251 const label nMappers = procMesh_.boundary().size();
253 patchFieldDecomposerPtrs_.resize(nMappers);
254 processorAreaPatchFieldDecomposerPtrs_.resize(nMappers);
255 processorEdgePatchFieldDecomposerPtrs_.resize(nMappers);
257 forAll(boundaryAddressing_, patchi)
259 const label oldPatchi = boundaryAddressing_[patchi];
260 const faPatch& fap = procMesh_.boundary()[patchi];
265 patchFieldDecomposerPtrs_.set
270 boundaryRanges[oldPatchi].size(),
272 boundaryRanges[oldPatchi].start()
278 processorAreaPatchFieldDecomposerPtrs_.set
290 processorEdgePatchFieldDecomposerPtrs_.set
295 procMesh_.boundary()[patchi].size(),
307 const label nMappers = procMesh_.boundary().size();
308 patchFieldDecomposerPtrs_.resize(nMappers);
309 processorAreaPatchFieldDecomposerPtrs_.resize(nMappers);
310 processorEdgePatchFieldDecomposerPtrs_.resize(nMappers);
321 forAll(boundaryAddressing_, patchi)
323 const label oldPatchi = boundaryAddressing_[patchi];
324 const faPatch& fap = procMesh_.boundary()[patchi];
329 patchFieldDecomposerPtrs_.set
334 completeMesh.
boundary()[oldPatchi].size(),
336 completePatchStarts[oldPatchi]
342 processorAreaPatchFieldDecomposerPtrs_.set
352 processorEdgePatchFieldDecomposerPtrs_.set
357 procMesh_.boundary()[patchi].size(),