17 namespace matrixfree {
38 Solver(
const std::string& name,
double tolerance);
56 virtual std::string
toString()
const;
Abstract base class for all solvers.
double _previousGlobalResidualHNormSquared
double _globalResidualHNormSquared
double _initialGlobalResidualMaxNorm
std::string _name
Name of solver.
virtual bool terminationCriterionHolds()
double _globalDeltaUMaxNorm
double _globalResidualEukledianNormSquared
void updateGlobalSolutionUpdates(double deltaU, const tarch::la::Vector< Dimensions, double > &h)
double _globalResidualMaxNorm
void synchroniseGlobalResidualAndSolutionUpdate()
Synchronise the global stats between MPI ranks.
void updateGlobalResidual(double residual, const tarch::la::Vector< Dimensions, double > &h)
void updateMinMaxMeshSize(const tarch::la::Vector< Dimensions, double > &h)
double _previousGlobalResidualMaxNorm
double _initialGlobalResidualEukledianNormSquared
virtual void beginMeshSweep()=0
End the traversal.
virtual void endMeshSweep()=0
Begin the traversal.
double _maxH
Observed mesh width.
double _previousGlobalResidualEukledianNormSquared
void clearGlobalResidualAndSolutionUpdate()
Clear the global mesh stats.
Solver(const std::string &name, double tolerance)
Construct the solver.
double getGlobalResidualMaxNorm() const
double _minH
Observed mesh width.
double _globalDeltaUEukledianNormSquared
virtual std::string toString() const
static tarch::logging::Log _log
tarch::multicore::BooleanSemaphore _semaphore
Semaphore for global residual values.
double _initialGlobalResidualHNormSquared
double _globalDeltaUHNormSquared
This file is part of the multigrid project within Peano 4.
This file is part of the multigrid project within Peano 4.