1#ifndef exactEstimator_hh
2#define exactEstimator_hh
29template<
class F = Real>
43 LocalEstimator<F>(spc, sol){};
63 template<
class G,
class H>
71 std::auto_ptr<typename concepts::SpaceOnCells<F>::Scanner > sc(this->spc_.scan());
80 *w * (*efrm - * afrm) );
84 this->globError_ += error_K;
86 LocalEstimator<F>::locError_[K] += error_K;
95 typename LocalEstimator<F>::iterator err_K = this->begin();
96 for( ; err_K != this->end(); err_K ++)
97 err_K->second = std::sqrt(err_K->second);
100 this->globError_ = std::sqrt(this->globError_);
105 virtual ExactEstimator<F>* clone()
const{
return new ExactEstimator<F>(*
this);}
109 virtual std::ostream& info(std::ostream& os)
const{
110 return os <<
"Exact local error Estimator()";
virtual Connector & connector() const =0
Returns the connector.
const Key & key() const
Returns the key of the connector.
virtual const Cell & cell() const =0
Returns the cell on which the element is built.
ExactEstimator(const concepts::SpaceOnCells< F > &spc, const concepts::Vector< F > &sol)
void addErrorContr(const concepts::ElementFormula< G > *efrm, const concepts::ElementFormula< H > *afrm, Real s=1.0, const concepts::ElementFormula< F > *w=0)
#define conceptsAssert(cond, exc)
Real L2product(const ElementWithCell< G > &elm, const ElementFormula< F, G > &u, const ElementFormula< Real > *c=0, const Real t=0.0, IntegrationCell::intFormType form=IntegrationCell::ZERO)