66 defaultRelaxationFactor_(0),
98 else if (name ==
"ICCG")
105 subdict.
add(
"solver", name);
112 forAll(subDictNames, dictI)
114 const word& dictName = subDictNames[dictI];
117 if (ePtr && !ePtr->
isDict())
125 newDict.
add(dictName, name);
128 subdict.
set(dictName, newDict);
138 Info<<
"// using new solver syntax:\n"
139 << iter().keyword() << subdict <<
endl;
143 dict.
set(iter().keyword(), subdict);
159 if (dict.
found(
"relaxationFactors"))
161 relaxationFactors_ = dict.
subDict(
"relaxationFactors");
164 relaxationFactors_.
readIfPresent(
"default", defaultRelaxationFactor_);
166 if (dict.
found(
"solvers"))
168 solvers_ = dict.
subDict(
"solvers");
169 upgradeSolverDict(solvers_);
185 return subDict(
word(lookup(
"select")));
198 Info<<
"Find relax for " << name <<
endl;
202 relaxationFactors_.found(name)
203 || relaxationFactors_.found(
"default");
211 Info<<
"Lookup relaxationFactor for " << name <<
endl;
214 if (relaxationFactors_.found(name))
216 return readScalar(relaxationFactors_.lookup(name));
218 else if (defaultRelaxationFactor_ > SMALL)
220 return defaultRelaxationFactor_;
226 "Foam::solution::relaxationFactor(const word&)",
228 ) <<
"Cannot find relaxationFactor for '" << name
229 <<
"' or a suitable default value."
241 InfoIn(
"solution::solverDict(const word&)")
242 <<
"Lookup solver for " << name <<
endl;
245 return solvers_.subDict(name);
253 InfoIn(
"solution::solver(const word&)")
254 <<
"Lookup solver for " << name <<
endl;
257 return solvers_.subDict(name);