55 const label nCoarseCells
59 bool contAgg = nCoarseCells >= nCellsInCoarsestLevel_;
77 nCellsInCoarsestLevel_
79 readLabel(controlDict.
lookup(
"nCellsInCoarsestLevel"))
83 restrictAddressing_(maxLevels_),
84 faceRestrictAddressing_(maxLevels_),
86 meshLevels_(maxLevels_),
87 interfaceLevels_(maxLevels_ + 1)
101 GAMGAgglomeration::typeName
105 word agglomeratorType(controlDict.
lookup(
"agglomerator"));
110 "geometricGAMGAgglomerationLibs",
111 lduMeshConstructorTablePtr_
114 lduMeshConstructorTable::iterator cstrIter =
115 lduMeshConstructorTablePtr_->find(agglomeratorType);
117 if (cstrIter == lduMeshConstructorTablePtr_->end())
121 "GAMGAgglomeration::New"
122 "(const lduMesh& mesh, const dictionary& controlDict)"
123 ) <<
"Unknown GAMGAgglomeration type "
124 << agglomeratorType <<
".\n"
125 <<
"Valid algebraic GAMGAgglomeration types are :"
126 << lduMatrixConstructorTablePtr_->sortedToc() <<
endl
127 <<
"Valid algebraic GAMGAgglomeration types are :"
128 << lduMeshConstructorTablePtr_->sortedToc()
132 return store(cstrIter()(mesh, controlDict).ptr());
138 GAMGAgglomeration::typeName
156 GAMGAgglomeration::typeName
160 word agglomeratorType(controlDict.
lookup(
"agglomerator"));
165 "algebraicGAMGAgglomerationLibs",
166 lduMatrixConstructorTablePtr_
171 !lduMatrixConstructorTablePtr_
172 || !lduMatrixConstructorTablePtr_->found(agglomeratorType)
175 return New(mesh, controlDict);
179 lduMatrixConstructorTable::iterator cstrIter =
180 lduMatrixConstructorTablePtr_->find(agglomeratorType);
182 return store(cstrIter()(matrix, controlDict).ptr());
189 GAMGAgglomeration::typeName
201 for (label leveli=1; leveli<interfaceLevels_.size(); leveli++)
229 return meshLevels_[i - 1];
239 return interfaceLevels_[i];