42 cyclicAMIGAMGInterface,
50 Foam::cyclicAMIGAMGInterface::cyclicAMIGAMGInterface
57 const label fineLevelIndex,
58 const label coarseComm
66 fineCyclicAMIInterface_
68 refCast<const cyclicAMILduInterface>(fineInterface)
79 localRestrictAddressing.size()
82 Map<label> masterToCoarseFace(localRestrictAddressing.size());
84 for (
const label curMaster : localRestrictAddressing)
86 const auto iter = masterToCoarseFace.cfind(curMaster);
91 dynFaceRestrictAddressing.append(iter.val());
96 const label coarseI = dynFaceCells.size();
97 dynFaceRestrictAddressing.append(coarseI);
98 dynFaceCells.append(curMaster);
99 masterToCoarseFace.insert(curMaster, coarseI);
103 faceCells_.transfer(dynFaceCells);
104 faceRestrictAddressing_.transfer(dynFaceRestrictAddressing);
110 if (fineCyclicAMIInterface_.owner())
121 neighbourRestrictAddressing.size()
124 Map<label> masterToCoarseFace(neighbourRestrictAddressing.size());
126 for (
const label curMaster : neighbourRestrictAddressing)
128 const auto iter = masterToCoarseFace.cfind(curMaster);
133 dynNbrFaceRestrictAddressing.append(iter.val());
138 const label coarseI = masterToCoarseFace.size();
139 dynNbrFaceRestrictAddressing.append(coarseI);
140 masterToCoarseFace.insert(curMaster, coarseI);
144 nbrFaceRestrictAddressing.
transfer(dynNbrFaceRestrictAddressing);
151 fineCyclicAMIInterface_.AMI(),
152 faceRestrictAddressing_,
153 nbrFaceRestrictAddressing
183 pnf[facei] = iF[nbrFaceCells[facei]];