38 const label addressingOffset
41 directAddressing_(addressingSlice)
43 forAll (directAddressing_, i)
46 directAddressing_[i] -= addressingOffset + 1;
51 fvFieldDecomposer::processorVolPatchFieldDecomposer::
52 processorVolPatchFieldDecomposer
58 directAddressing_(addressingSlice.size())
61 const labelList& neighb = mesh.faceNeighbour();
63 forAll (directAddressing_, i)
66 label ai =
mag(addressingSlice[i]) - 1;
68 if (ai < neighb.size())
75 if (addressingSlice[i] >= 0)
78 directAddressing_[i] = neighb[ai];
82 directAddressing_[i] = own[ai];
93 directAddressing_[i] = own[ai];
99 fvFieldDecomposer::processorSurfacePatchFieldDecomposer::
100 processorSurfacePatchFieldDecomposer
105 addressing_(addressingSlice.size()),
106 weights_(addressingSlice.size())
110 addressing_[i].setSize(1);
111 weights_[i].setSize(1);
113 addressing_[i][0] =
mag(addressingSlice[i]) - 1;
114 weights_[i][0] =
sign(addressingSlice[i]);
119 fvFieldDecomposer::fvFieldDecomposer
121 const fvMesh& completeMesh,
122 const fvMesh& procMesh,
128 completeMesh_(completeMesh),
130 faceAddressing_(faceAddressing),
131 cellAddressing_(cellAddressing),
132 boundaryAddressing_(boundaryAddressing),
133 patchFieldDecomposerPtrs_
136 static_cast<patchFieldDecomposer*>(NULL)
138 processorVolPatchFieldDecomposerPtrs_
141 static_cast<processorVolPatchFieldDecomposer*>(NULL)
143 processorSurfacePatchFieldDecomposerPtrs_
146 static_cast<processorSurfacePatchFieldDecomposer*>(NULL)
151 if (boundaryAddressing_[
patchi] >= 0)
153 patchFieldDecomposerPtrs_[
patchi] =
new patchFieldDecomposer
155 procMesh_.boundary()[
patchi].patchSlice(faceAddressing_),
156 completeMesh_.boundaryMesh()
158 boundaryAddressing_[
patchi]
164 processorVolPatchFieldDecomposerPtrs_[
patchi] =
165 new processorVolPatchFieldDecomposer
168 procMesh_.boundary()[
patchi].patchSlice(faceAddressing_)
171 processorSurfacePatchFieldDecomposerPtrs_[
patchi] =
172 new processorSurfacePatchFieldDecomposer
174 static_cast<const unallocLabelList&>
176 procMesh_.boundary()[
patchi].patchSlice
189 fvFieldDecomposer::~fvFieldDecomposer()
193 if (patchFieldDecomposerPtrs_[
patchi])
195 delete patchFieldDecomposerPtrs_[
patchi];
201 if (processorVolPatchFieldDecomposerPtrs_[
patchi])
203 delete processorVolPatchFieldDecomposerPtrs_[
patchi];
207 forAll (processorSurfacePatchFieldDecomposerPtrs_,
patchi)
209 if (processorSurfacePatchFieldDecomposerPtrs_[
patchi])
211 delete processorSurfacePatchFieldDecomposerPtrs_[
patchi];