45 Foam::cyclicGAMGInterface::cyclicGAMGInterface
55 localRestrictAddressing,
56 neighbourRestrictAddressing
58 fineCyclicInterface_(refCast<const cyclicLduInterface>(fineInterface))
63 localRestrictAddressing.
size()
69 localRestrictAddressing.
size()
72 label nCoarseFaces = 0;
74 label sizeBy2 = localRestrictAddressing.
size()/2;
76 for (label ffi=0; ffi<sizeBy2; ffi++)
78 label curMaster = localRestrictAddressing[ffi];
79 label curSlave = localRestrictAddressing[ffi + sizeBy2];
84 if (neighboursTable.found(curMaster))
92 faceFaceTable.find(curMaster)();
94 bool nbrFound =
false;
104 nbrsIter != curNbrs.
end(), faceFacesIter != curFaceFaces.
end();
105 ++nbrsIter, ++faceFacesIter
108 if (nbrsIter() == curSlave)
111 faceFacesIter().
append(ffi);
138 faceCells_.setSize(2*nCoarseFaces, -1);
139 faceRestrictAddressing_.setSize(localRestrictAddressing.
size(), -1);
141 labelList contents = neighboursTable.toc();
147 forAll (contents, masterI)
149 SLList<label>& curNbrs = neighboursTable.find(contents[masterI])();
152 faceFaceTable.find(contents[masterI])();
160 nbrsIter != curNbrs.
end(), faceFacesIter != curFaceFaces.
end();
161 ++nbrsIter, ++faceFacesIter
164 faceCells_[nCoarseFaces] = contents[masterI];
169 facesIter != faceFacesIter().
end();
173 faceRestrictAddressing_[facesIter()] = nCoarseFaces;
181 forAll (contents, masterI)
183 SLList<label>& curNbrs = neighboursTable.find(contents[masterI])();
186 faceFaceTable.find(contents[masterI])();
194 nbrsIter != curNbrs.
end(), faceFacesIter != curFaceFaces.
end();
195 ++nbrsIter, ++faceFacesIter
198 faceCells_[nCoarseFaces] = nbrsIter();
203 facesIter != faceFacesIter().
end();
207 faceRestrictAddressing_[facesIter() + sizeBy2] = nCoarseFaces;
233 label sizeby2 = size()/2;
235 for (label facei=0; facei<sizeby2; facei++)
237 pnf[facei] = interfaceData[facei + sizeby2];
238 pnf[facei + sizeby2] = interfaceData[facei];
254 label sizeby2 = size()/2;
256 for (label facei=0; facei<sizeby2; facei++)
258 pnf[facei] = iF[faceCells_[facei + sizeby2]];
259 pnf[facei + sizeby2] = iF[faceCells_[facei]];