24 #ifndef DWRDATACONTAINER_H_
25 #define DWRDATACONTAINER_H_
49 template<
typename VECTOR>
74 "DWRDataContainer::ReleaseLock");
93 ReInit(
unsigned int n_elements);
125 "DWRDataContainer::ReleaseLock");
212 const Vector<double>&
218 "DWRDataContainer::GetErrorIndicators");
235 return error_ind_primal_;
238 const Vector<double>&
241 return error_ind_primal_;
253 return error_ind_dual_;
256 const Vector<double>&
259 return error_ind_dual_;
271 return error_ind_control_;
274 const Vector<double>&
277 return error_ind_control_;
291 return error_ind_primal_;
294 return error_ind_dual_;
297 return error_ind_control_;
299 throw DOpEException(
"Unknown Indicator",
"DWRDataContainer::GetErrorIndicators");
302 const Vector<double>&
306 return error_ind_primal_;
309 return error_ind_dual_;
312 return error_ind_control_;
314 throw DOpEException(
"Unknown Indicator",
"DWRDataContainer::GetErrorIndicators");
320 return n_error_comps_;
330 std::vector<const Vector<double>*>
333 std::vector<const Vector<double>*> res;
337 "DWRDataContainer::GetErrorIndicators");
341 res.push_back(&error_ind_);
375 template<
class PROBLEM,
class INTEGRATOR>
379 integrator.ComputeRefinementIndicators(problem, *
this);
397 const std::map<std::string, const VECTOR*>&
409 weight_data_.clear();
453 "DWRDataContainerBase::PrepareWeights");
479 "DWRDataContainerBase::PrepareWeights");
509 if (weight_data_.find(name) != weight_data_.end())
512 "Adding multiple Data with name " + name +
" is prohibited!",
513 "Integrator::AddDomainData");
516 std::pair<std::string, const VECTOR*>(name, new_data));
522 unsigned int n_error_comps_;
523 std::map<std::string, const VECTOR*> weight_data_;
524 Vector<double> error_ind_, error_ind_primal_, error_ind_dual_, error_ind_control_;
528 template<
typename VECTOR>
532 error_ind_.reinit(n_elements);
533 GetPrimalErrorIndicators().reinit(n_elements);
534 GetDualErrorIndicators().reinit(n_elements);
535 GetControlErrorIndicators().reinit(n_elements);
544 template<
class STH,
class IDC,
class EDC,
class FDC,
typename VECTOR>
590 template<
class EDC,
class STH,
class IDC,
class FDC,
typename VECTOR>
596 template<
class FDC,
class STH,
class IDC,
class EDC,
typename VECTOR>
virtual ~DWRDataContainerBase()
Definition: dwrdatacontainer.h:80
Definition: dopetypes.h:68
virtual bool NeedDual() const =0
const std::map< std::string, const VECTOR * > & GetWeightData() const
Definition: dwrdatacontainer.h:398
DWRDataContainerBase(DOpEtypes::EETerms ee_terms=DOpEtypes::EETerms::mixed)
Definition: dwrdatacontainer.h:53
Vector< double > & GetErrorIndicators(unsigned int i)
Definition: dwrdatacontainer.h:288
virtual EDC & GetElementWeight() const =0
virtual StateVector< VECTOR > & GetPI_h_z()=0
const Vector< double > & GetErrorIndicators(unsigned int i) const
Definition: dwrdatacontainer.h:303
virtual DOpEtypes::ResidualEvaluation GetResidualEvaluation() const =0
Vector< double > & GetPrimalErrorIndicators()
Definition: dwrdatacontainer.h:233
virtual void PreparePI_h_q(const ControlVector< VECTOR > &q)=0
void AddWeightData(std::string name, const VECTOR *new_data)
Definition: dwrdatacontainer.h:507
void PrepareWeights(const StateVector< VECTOR > &u, const StateVector< VECTOR > &z)
Definition: dwrdatacontainer.h:420
Definition: dopetypes.h:68
double GetDualError() const
Definition: dwrdatacontainer.h:177
virtual void PreparePI_h_u(const StateVector< VECTOR > &u)=0
const Vector< double > & GetErrorIndicators() const
Definition: dwrdatacontainer.h:213
double GetError() const
Definition: dwrdatacontainer.h:139
Definition: controlvector.h:49
EDC * ExtractEDC(const DWRDataContainer< STH, IDC, EDC, FDC, VECTOR > &dwrc)
Definition: dwrdatacontainer.h:592
const Vector< double > & GetDualErrorIndicators() const
Definition: dwrdatacontainer.h:257
Definition: dopetypes.h:68
virtual std::string GetName() const =0
const Vector< double > & GetControlErrorIndicators() const
Definition: dwrdatacontainer.h:275
Vector< double > & GetDualErrorIndicators()
Definition: dwrdatacontainer.h:251
DOpEtypes::EETerms GetEETerms() const
Definition: dwrdatacontainer.h:365
virtual STH & GetWeightSTH()=0
EETerms
Definition: dopetypes.h:66
Definition: dopetypes.h:68
void ComputeRefinementIndicators(PROBLEM &problem, INTEGRATOR &integrator)
Definition: dwrdatacontainer.h:377
Definition: statevector.h:50
const Vector< double > & GetPrimalErrorIndicators() const
Definition: dwrdatacontainer.h:239
double GetPrimalError() const
Definition: dwrdatacontainer.h:158
virtual DOpEtypes::WeightComputation GetWeightComputation() const =0
ResidualEvaluation
Definition: dopetypes.h:91
void ClearWeightData()
Definition: dwrdatacontainer.h:407
double GetControlError() const
Definition: dwrdatacontainer.h:196
WeightComputation
Definition: dopetypes.h:80
Vector< double > & GetControlErrorIndicators()
Definition: dwrdatacontainer.h:269
FDC * ExtractFDC(const DWRDataContainer< STH, IDC, EDC, FDC, VECTOR > &dwrc)
Definition: dwrdatacontainer.h:598
virtual FDC & GetFaceWeight() const =0
Definition: dwrdatacontainer.h:50
virtual void ReInit(unsigned int n_elements)
Definition: dwrdatacontainer.h:530
virtual ControlVector< VECTOR > & GetPI_h_q()=0
unsigned int GetNErrorComps() const
Definition: dwrdatacontainer.h:317
virtual StateVector< VECTOR > & GetPI_h_u()=0
virtual IDC & GetWeightIDC()=0
void PrepareWeights(const ControlVector< VECTOR > &q)
Definition: dwrdatacontainer.h:464
Definition: dopeexception.h:35
virtual ~DWRDataContainer()
Definition: dwrdatacontainer.h:555
DWRDataContainer(DOpEtypes::EETerms ee_terms=DOpEtypes::EETerms::mixed)
Definition: dwrdatacontainer.h:548
std::vector< const Vector< double > * > GetAllErrorIndicators() const
Definition: dwrdatacontainer.h:331
Definition: dwrdatacontainer.h:545
virtual void PreparePI_h_z(const StateVector< VECTOR > &z)=0
void ReleaseLock()
Definition: dwrdatacontainer.h:102