1#ifndef OPT_INTERFACE_HH
2#define OPT_INTERFACE_HH
6#include "dune/common/fvector.hh"
7#include "dune/istl/bvector.hh"
8#include "dune/istl/matrix.hh"
13 class LagrangeLinearization;
14 class AbstractFunctionSpaceElement;
15 class AbstractLinearization;
16 class AbstractErrorEstimate;
27 int basis(std::vector<std::shared_ptr<AbstractFunctionSpaceElement> >& corrections,
31 {
return computeBasis(corrections, linearization, normalStep, nu0, residual); }
55 virtual int computeBasis(std::vector<std::shared_ptr<AbstractFunctionSpaceElement> >& correction,
68 {
return computeCorrectionAndAdjointCorrection(correction, adjointCorrection, linearization, correctionResidual, adjointResidual); }
74 { computeSimplifiedCorrection(correction, linearization, residual); }
88 class SearchSpaceCreator;
97 std::vector<AbstractFunctionSpaceElement*>
const& basisVectors,
98 std::vector<double>
const & coeff,
Representation of an error estimator.
virtual ~AbstractCompositeStepErrorEstimator()
virtual std::unique_ptr< AbstractErrorEstimate > createEstimate(AbstractFunctionSpaceElement &iterate, SearchSpaceCreator const &searchSpace, std::vector< AbstractFunctionSpaceElement * > const &basisVectors, std::vector< double >const &coeff, AbstractLinearization const &linN, AbstractLinearization const &linT) const =0
Abstract Vector for function space algorithms.
virtual void setEps(double)
void simplified(AbstractFunctionSpaceElement &correction, AbstractLinearization const &linearization, AbstractFunctionSpaceElement *residual=nullptr) const
virtual void setRelativeAccuracy(double accuracy)
void ordinaryAndAdjoint(AbstractFunctionSpaceElement &correction, AbstractFunctionSpaceElement &adjointCorrection, AbstractLinearization &linearization, AbstractFunctionSpaceElement *correctionResidual=nullptr, AbstractFunctionSpaceElement *adjointResidual=nullptr)
Class that models the functionality of a (possibly inexact) linear solver.
virtual void regularize(bool)
virtual bool getNorms(Dune::Matrix< field_type > &M) const
Returns true, if some information on the norm is available.
Dune::FieldVector< double, 1 > field_type
virtual AbstractFunctionSpaceElement & getCorrectRhs()=0
virtual void setEps(double)
virtual bool localConvergenceLikely()
int basis(std::vector< std::shared_ptr< AbstractFunctionSpaceElement > > &corrections, LagrangeLinearization &linearization, AbstractFunctionSpaceElement const &normalStep, double nu0, AbstractFunctionSpaceElement *residual=nullptr)
virtual void setRelativeAccuracy(double accuracy)=0
Specify accuracy that should be achieved.
virtual ~AbstractTangentialSpace()
virtual bool regularizationEnabled() const
virtual void setLipschitzConstant(double)
virtual int nSolutionVectors() const =0
The maximal number of solution vectors, returned by basis.