1#ifndef ADAPTIVE_REFINEMENT_HH
2#define ADAPTIVE_REFINEMENT_HH
Interfaces for function space oriented algorithms.
Representation of an adaptive grid and a simple set of operations thereon.
Representation of an error estimate, i.e. the output of an error estimator.
Representation of an error estimator.
Abstract Vector for function space algorithms.
Class that models the functionality of a (possibly inexact) linear solver.
virtual void doResolve(AbstractFunctionSpaceElement &correction, AbstractLinearization const &lin, AbstractLinearization const &olin) const =0
Solve simplified Newton system: scorrection = +F'(iterate)^{-1}F(trialIterate)
Parameters that are used by SimpleAdaptiveRefinement.
AdaptiveParameters(double desiredAccuracy_, int maxSteps_, double bulkmin_, double bulkmax_, double desAbsAcc_=0.0, int maxpatches_=std::numeric_limits< int >::max(), double minRelAcc=10.0)
LoggedQuantity< double > absoluteAccuracy
LoggedQuantity< double > relativeAccuracy
virtual ~AdaptiveParameters()
double desiredAbsAccuracy
Base class for algorithms. Provides a unified interface and some simple wrapper routines,...
Performs error estimation and creates error indicators, but does not refine. Good for testing error e...
virtual void setRelativeAccuracy(double accuracy)
set relative accuracy
FinalAdaptiveRefinement(AbstractNewtonDirection &als, AbstractErrorEstimator &aee, AbstractAdaptiveGrid &ag, AbstractNorm &an, AdaptiveParameters &p_)
virtual double getBulk(int step) const
virtual void setAbsoluteAccuracy(double accuracy)
set absolute accuracy
Performs error estimation and creates error indicators, but does not refine. Good for testing error e...
virtual int runAlgorithm()
To be used as an algorithm.
FixedSolverWithErrorEstimate(AbstractNewtonDirection &als, AbstractErrorEstimator &aee, AbstractAdaptiveGrid &ag, AbstractNorm &an, AdaptiveParameters &p_)
void logValue()
Insert current value into log buffer.
Adaptive refinement algorithm.
virtual ~SimpleAdaptiveRefinement()
virtual void finalize(int flag)
bool improvementPossible()
virtual bool changedGrid()
virtual bool convergenceTest(AbstractErrorEstimate const &estimate, AbstractAdaptiveGrid const &)
virtual void terminationMessage(int flag)
virtual void setAbsoluteAccuracy(double accuracy)
set absolute accuracy
virtual void doSolve(AbstractFunctionSpaceElement &corr, AbstractLinearization &lin)
solve problem
virtual void doResolve(AbstractFunctionSpaceElement &correction, AbstractLinearization const &lin, AbstractLinearization const &olin) const
Solve simplified Newton system: scorrection = +F'(iterate)^{-1}F(trialIterate)
AbstractFunctionSpaceElement * correction
double getRelativeAccuracy()
get achieved relative accuracy
AbstractAdaptiveGrid & grid
std::unique_ptr< AbstractFunctionSpaceElement > oldcorrection
AbstractLinearization * linearization
SimpleAdaptiveRefinement(AbstractNewtonDirection &als, AbstractErrorEstimator &aee, AbstractAdaptiveGrid &ag, AbstractNorm &an, AdaptiveParameters &p_)
Construction.
double getAbsoluteAccuracy()
get achieved absolute accuracy
virtual int runAlgorithm()
To be used as an algorithm.
virtual double getBulk(int step) const
std::shared_ptr< AbstractErrorEstimate > estimate
AbstractNewtonDirection & fixedSolver
virtual void initialize()
AbstractErrorEstimator & errorEstimator
virtual void setRelativeAccuracy(double accuracy)
set relative accuracy
virtual void doResolve(AbstractFunctionSpaceElement &correction, AbstractLinearization const &lin) const
Solve simplified Newton system: scorrection = +F'(iterate)^{-1}F(trialIterate)
void setRelativeAccuracy(double accuracy)
set relative accuracy
AbstractNewtonDirection & fixedSolver
virtual void initialize()
double getAbsoluteAccuracy()
get achieved absolute accuracy
virtual void terminationMessage(int flag)
virtual int runAlgorithm()
To be used as an algorithm.
bool improvementPossible()
virtual bool convergenceTest(AbstractErrorEstimate const &estimate, AbstractAdaptiveGrid const &)
std::unique_ptr< AbstractFunctionSpaceElement > oldcorrection
virtual double getBulk(int step) const
void setAbsoluteAccuracy(double accuracy)
set absolute accuracy
AbstractAdaptiveGrid & grid
AbstractLinearization * linearization
AbstractFunctionSpaceElement * correction
AbstractErrorEstimator & errorEstimator
void solve(AbstractFunctionSpaceElement &corr, AbstractLinearization &lin)
solve problem
double getRelativeAccuracy()
get achieved relative accuracy
virtual void finalize(int flag)
TestErrorEstimator(AbstractNewtonDirection &als, AbstractErrorEstimator &aee, AbstractAdaptiveGrid &ag, AbstractNorm &an, AdaptiveParameters &p_)
Construction.
Dune::FieldVector< T, n > max(Dune::FieldVector< T, n > x, Dune::FieldVector< T, n > const &y)
Componentwise maximum.