DOpE
|
#include <dwrdatacontainer.h>
Public Member Functions | |
DWRDataContainerBase (DOpEtypes::EETerms ee_terms=DOpEtypes::EETerms::mixed) | |
virtual | ~DWRDataContainerBase () |
virtual std::string | GetName () const =0 |
virtual void | ReInit (unsigned int n_elements) |
void | ReleaseLock () |
double | GetError () const |
double | GetPrimalError () const |
double | GetDualError () const |
double | GetControlError () const |
const Vector< double > & | GetErrorIndicators () const |
Vector< double > & | GetPrimalErrorIndicators () |
const Vector< double > & | GetPrimalErrorIndicators () const |
Vector< double > & | GetDualErrorIndicators () |
const Vector< double > & | GetDualErrorIndicators () const |
Vector< double > & | GetControlErrorIndicators () |
const Vector< double > & | GetControlErrorIndicators () const |
Vector< double > & | GetErrorIndicators (unsigned int i) |
const Vector< double > & | GetErrorIndicators (unsigned int i) const |
unsigned int | GetNErrorComps () const |
std::vector< const Vector < double > * > | GetAllErrorIndicators () const |
virtual DOpEtypes::WeightComputation | GetWeightComputation () const =0 |
virtual DOpEtypes::ResidualEvaluation | GetResidualEvaluation () const =0 |
DOpEtypes::EETerms | GetEETerms () const |
template<class PROBLEM , class INTEGRATOR > | |
void | ComputeRefinementIndicators (PROBLEM &problem, INTEGRATOR &integrator) |
virtual bool | NeedDual () const =0 |
const std::map< std::string, const VECTOR * > & | GetWeightData () const |
void | ClearWeightData () |
void | PrepareWeights (const StateVector< VECTOR > &u, const StateVector< VECTOR > &z) |
void | PrepareWeights (const ControlVector< VECTOR > &q) |
Protected Member Functions | |
virtual StateVector< VECTOR > & | GetPI_h_u ()=0 |
virtual StateVector< VECTOR > & | GetPI_h_z ()=0 |
virtual ControlVector< VECTOR > & | GetPI_h_q ()=0 |
virtual void | PreparePI_h_u (const StateVector< VECTOR > &u)=0 |
virtual void | PreparePI_h_z (const StateVector< VECTOR > &z)=0 |
virtual void | PreparePI_h_q (const ControlVector< VECTOR > &q)=0 |
void | AddWeightData (std::string name, const VECTOR *new_data) |
This class hosts all the information we need for the error evaluation (weights, additional needed DoF handler, error indicators.)
DWRDataContainerBase is a base/interface class. As there are different possibilities to implement the DWR method, for example the computation of the weights is outsourced to the derived classes.
VECTOR Vector type used in the computation used in the computation of the PDE solution.
|
inline |
|
inlinevirtual |
|
inlineprotected |
|
inline |
Deletes the weights.
|
inline |
TODO We would like DWRDataContainerBase in the solution algorithms, but we need the specialication in the integrator.ComputeRefinementIndicators. How to achieve this?
|
inline |
Returns the a vector of pointers to the primal, dual and 'summed up' (according to the enum EEterms) error indicators.
|
inline |
This function sums up the entries of the vector of the error indicators. So make sure this vector is correctly filled (reminder: after computing the error indicators, make sure that you call ReleaseLock()1)
@ return Error in the previously specified functional.
|
inline |
Returns the vector of the error indicators. You have to call ReleaseLock() prior to this function.
|
inline |
|
inline |
This function sums up the entries of the vector of the error indicators. So make sure this vector is correctly filled (reminder: after computing the error indicators, make sure that you call ReleaseLock()1)
@ return Error in the previously specified functional.
|
inline |
Returns the vector of the dual error indicators. You dont have to call ReleaseLock() prior to this function.
|
inline |
|
inline |
|
inline |
This function sums up the entries of the vector of the error indicators. So make sure this vector is correctly filled (reminder: after computing the error indicators, make sure that you call ReleaseLock()1)
@ return Error in the previously specified functional.
|
inline |
Returns the vector of the error indicators. You have to call ReleaseLock() prior to this function.
|
inline |
Returns the vector of the error indicators. You have to call ReleaseLock() prior to this function.
|
inline |
|
pure virtual |
|
inline |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
inline |
This function sums up the entries of the vector of the error indicators. So make sure this vector is correctly filled (reminder: after computing the error indicators, make sure that you call ReleaseLock()1)
@ return Error in the previously specified functional.
|
inline |
Returns the vector of the error indicators. You have to call ReleaseLock() prior to this function.
|
inline |
|
pure virtual |
Implemented in DOpE::H1ResidualErrorContainer< STH, VECTOR, dim >, DOpE::HigherOrderDWRContainerControl< STH, IDC, EDC, FDC, VECTOR >, DOpE::HigherOrderDWRContainer< STH, IDC, EDC, FDC, VECTOR >, and DOpE::L2ResidualErrorContainer< STH, VECTOR, dim >.
|
pure virtual |
Implemented in DOpE::H1ResidualErrorContainer< STH, VECTOR, dim >, DOpE::HigherOrderDWRContainerControl< STH, IDC, EDC, FDC, VECTOR >, DOpE::HigherOrderDWRContainer< STH, IDC, EDC, FDC, VECTOR >, and DOpE::L2ResidualErrorContainer< STH, VECTOR, dim >.
|
inline |
Returns the FE-VECTORS of the weights used in the error evaluation.
|
pure virtual |
Specifies, if we need the solution of the adjoint equation. Pure virtual.
Implemented in DOpE::H1ResidualErrorContainer< STH, VECTOR, dim >, DOpE::HigherOrderDWRContainerControl< STH, IDC, EDC, FDC, VECTOR >, DOpE::HigherOrderDWRContainer< STH, IDC, EDC, FDC, VECTOR >, and DOpE::L2ResidualErrorContainer< STH, VECTOR, dim >.
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
inline |
Computes the functions that compute the weights and puts them into weight_data_.
u | The FE-vector of the primal solution. |
z | The FE-vector of the dual solution. |
|
inline |
Computes the functions that compute the weights and puts them into weight_data_.
q | The FE-vector of the control. |
|
virtual |
This initializes the vector of the error indicators and locks them. The vector of the error indicators can only get returned if the lock is released (see ReleaseLock()).
Reimplemented in DOpE::H1ResidualErrorContainer< STH, VECTOR, dim >, DOpE::L2ResidualErrorContainer< STH, VECTOR, dim >, DOpE::HigherOrderDWRContainerControl< STH, IDC, EDC, FDC, VECTOR >, and DOpE::HigherOrderDWRContainer< STH, IDC, EDC, FDC, VECTOR >.
|
inline |
Releases the lock and fills the vector of error indicators accordingly to the previously given EETerms-enum (see dopetypes.h). It basically sums up the primal and dual error indicators using the rule given by EETerms.