Go to the documentation of this file.
39 for(
direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
52 for(
direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
54 if (!singular_[cmpt])
return false;
64 const Type& Tolerance,
65 const Type& RelTolerance
71 <<
": Iteration " << nIterations_
72 <<
" residual = " << finalResidual_
78 finalResidual_ < Tolerance
82 && finalResidual_ <
cmptMultiply(RelTolerance, initialResidual_)
103 for(
direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
107 os << solverName_ <<
": Solving for " << fieldName_;
112 os << solverName_ <<
": Solving for "
118 os <<
": solution singularity" <<
endl;
122 os <<
", Initial residual = " <<
component(initialResidual_, cmpt)
123 <<
", Final residual = " <<
component(finalResidual_, cmpt)
124 <<
", No Iterations " << nIterations_
134 const Foam::label cmpt,
138 initialResidual_.replace(cmpt, sp.initialResidual());
139 finalResidual_.replace(cmpt, sp.finalResidual());
140 nIterations_.replace(cmpt, sp.nIterations());
141 singular_[cmpt] = sp.singular();
170 solverName() != sp.solverName()
171 || fieldName() != sp.fieldName()
172 || initialResidual() != sp.initialResidual()
173 || finalResidual() != sp.finalResidual()
174 || nIterations() != sp.nIterations()
175 || converged() != sp.converged()
176 || singular() != sp.singular()
211 >> sp.initialResidual_
216 is.readEnd(
"SolverPerformance");
229 os << token::BEGIN_LIST
230 << sp.solverName_ << token::SPACE
231 << sp.fieldName_ << token::SPACE
232 << sp.initialResidual_ << token::SPACE
233 << sp.finalResidual_ << token::SPACE
234 << sp.nIterations_ << token::SPACE
235 << sp.converged_ << token::SPACE
236 << sp.singular_ << token::SPACE
int debug
Static debugging option.
void component(FieldField< Field, typename FieldField< Field, Type >::cmptType > &sf, const FieldField< Field, Type > &f, const direction d)
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 Foam::string.
dimensioned< Type > cmptMultiply(const dimensioned< Type > &, const dimensioned< Type > &)
Ostream & endl(Ostream &os)
Add newline and flush stream.
bool readBegin(const char *funcName)
Begin read of data chunk, starts with '('.
void cmptMax(FieldField< Field, typename FieldField< Field, Type >::cmptType > &cf, const FieldField< Field, Type > &f)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
messageStream Info
Information stream (uses stdout - output is on the master only)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
Traits class for primitives.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...