37 for(
direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
50 for(
direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
52 if (!singular_[cmpt])
return false;
62 const Type& Tolerance,
63 const Type& RelTolerance
69 <<
": Iteration " << nIterations_
70 <<
" residual = " << finalResidual_
76 finalResidual_ < Tolerance
80 && finalResidual_ <
cmptMultiply(RelTolerance, initialResidual_)
101 for(
direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
105 os <<
indent << solverName_ <<
": Solving for " << fieldName_;
110 os <<
indent << solverName_ <<
": Solving for " 116 os <<
": solution singularity" <<
endl;
120 os <<
", Initial residual = " <<
component(initialResidual_, cmpt)
121 <<
", Final residual = " <<
component(finalResidual_, cmpt)
122 <<
", No Iterations " << nIterations_
136 initialResidual_.replace(cmpt, sp.initialResidual());
137 finalResidual_.replace(cmpt, sp.finalResidual());
138 nIterations_.replace(cmpt, sp.nIterations());
139 singular_[cmpt] = sp.singular();
168 solverName() != sp.solverName()
169 || fieldName() != sp.fieldName()
170 || initialResidual() != sp.initialResidual()
171 || finalResidual() != sp.finalResidual()
172 || nIterations() != sp.nIterations()
173 || converged() != sp.converged()
174 || singular() != sp.singular()
206 is.readBeginList(
"SolverPerformance<Type>");
209 >> sp.initialResidual_
214 is.readEndList(
"SolverPerformance<Type>");
227 os << token::BEGIN_LIST
228 << sp.solverName_ << token::SPACE
229 << sp.fieldName_ << token::SPACE
230 << sp.initialResidual_ << token::SPACE
231 << sp.finalResidual_ << token::SPACE
232 << sp.nIterations_ << token::SPACE
233 << sp.converged_ << token::SPACE
234 << sp.singular_ << token::SPACE
void cmptMax(FieldField< Field, typename FieldField< Field, Type >::cmptType > &cf, const FieldField< Field, Type > &f)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
Ostream & indent(Ostream &os)
Indent stream.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Ostream & endl(Ostream &os)
Add newline and flush stream.
Traits class for primitives.
Useful combination of include files which define Sin, Sout and Serr and the use of IO streams general...
A class for handling words, derived from string.
dimensioned< Type > cmptMultiply(const dimensioned< Type > &, const dimensioned< Type > &)
An Ostream is an abstract base class for all output systems (streams, files, token lists...
void component(FieldField< Field, typename FieldField< Field, Type >::cmptType > &sf, const FieldField< Field, Type > &f, const direction d)