24 #ifndef HIGHER_ORDER_DWRC_H_
25 #define HIGHER_ORDER_DWRC_H_
28 #include <deal.II/fe/fe_tools.h>
37 template<
class STH,
class IDC,
class EDC,
class FDC,
typename VECTOR>
58 higher_order_sth), idc_higher_order_(higher_order_idc), res_eval_(res_eval),
59 PI_h_u_(NULL), PI_h_z_(NULL)
66 state_behavior, param_reader);
73 state_behavior, param_reader);
77 throw DOpEException(
"Wrong Constructor for type 'mixed_control'",
78 "HigherOrderDWRContainer::HigherOrderDWRContainer");
94 return "DWR-Estimator";
100 std::vector<unsigned int>& state_block_component)
102 _sth =
dynamic_cast<STH*
>(sth);
103 _state_n_blocks = state_n_blocks;
104 _state_block_component = &state_block_component;
112 ReInit(
unsigned int n_elements);
153 "HigherOrderDWRContainer::GetPI_h_q");
165 u_high.reinit(
GetPI_h_u().GetSpacialVector());
167 dealii::FETools::extrapolate(
168 GetSTH().GetStateDoFHandler().GetDEALDoFHandler(),
173 dealii::FETools::interpolate(
174 GetSTH().GetStateDoFHandler().GetDEALDoFHandler(),
178 GetPI_h_u().GetSpacialVector().add(-1., u_high);
185 u_high.reinit(
GetPI_h_u().GetSpacialVector());
187 dealii::FETools::extrapolate(
188 GetSTH().GetStateDoFHandler().GetDEALDoFHandler(), u,
192 dealii::FETools::interpolate(
193 GetSTH().GetStateDoFHandler().GetDEALDoFHandler(), u,
196 GetPI_h_u().GetSpacialVector().add(-1., u_high);
208 z_high.reinit(
GetPI_h_z().GetSpacialVector());
210 dealii::FETools::extrapolate(
211 GetSTH().GetStateDoFHandler().GetDEALDoFHandler(),
217 dealii::FETools::interpolate(
218 GetSTH().GetStateDoFHandler().GetDEALDoFHandler(),
223 GetPI_h_z().GetSpacialVector().add(-1., z_high);
235 "HigherOrderDWRContainer::PreparePI_h_q");
310 return sth_higher_order_;
316 return sth_higher_order_;
322 return idc_higher_order_;
328 return idc_higher_order_;
332 unsigned int _state_n_blocks;
333 std::vector<unsigned int>* _state_block_component;
335 STH& sth_higher_order_;
337 IDC& idc_higher_order_;
344 template<
class STH,
class IDC,
class EDC,
class FDC,
typename VECTOR>
347 unsigned int n_elements)
351 GetHigherOrderSTH().ReInit(_state_n_blocks, *_state_block_component);
355 GetPI_h_z().ReInit();
360 GetPI_h_u().ReInit();
Definition: dopetypes.h:68
const STH & GetHigherOrderSTH() const
Definition: higher_order_dwrc.h:314
void ReInit(unsigned int n_elements)
Definition: higher_order_dwrc.h:346
virtual ~HigherOrderDWRContainer()
Definition: higher_order_dwrc.h:83
StateVector< VECTOR > & GetPI_h_u()
Definition: higher_order_dwrc.h:139
virtual DOpEtypes::ResidualEvaluation GetResidualEvaluation() const
Definition: higher_order_dwrc.h:279
HigherOrderDWRContainer(STH &higher_order_sth, IDC &higher_order_idc, DOpEtypes::VectorStorageType state_behavior, ParameterReader ¶m_reader, DOpEtypes::EETerms ee_terms=DOpEtypes::EETerms::mixed, DOpEtypes::ResidualEvaluation res_eval=DOpEtypes::strong_residual)
Definition: higher_order_dwrc.h:53
void PreparePI_h_q(const ControlVector< VECTOR > &)
Definition: higher_order_dwrc.h:232
void ResidualModifier(double &)
Definition: higher_order_dwrc.h:290
virtual FDC & GetFaceWeight() const
Definition: higher_order_dwrc.h:252
VECTOR & GetSpacialVector()
Definition: statevector.cc:383
void Initialize(STH2 *sth, unsigned int state_n_blocks, std::vector< unsigned int > &state_block_component)
Definition: higher_order_dwrc.h:99
STH & GetSTH()
Definition: higher_order_dwrc.h:302
Definition: parameterreader.h:36
IDC & GetHigherOrderIDC()
Definition: higher_order_dwrc.h:320
const IDC & GetHigherOrderIDC() const
Definition: higher_order_dwrc.h:326
Definition: dopetypes.h:68
std::string GetName() const
Definition: higher_order_dwrc.h:92
bool NeedDual() const
Definition: higher_order_dwrc.h:261
Definition: controlvector.h:49
Definition: dopetypes.h:82
STH & GetHigherOrderSTH()
Definition: higher_order_dwrc.h:308
Definition: dopetypes.h:68
Definition: higher_order_dwrc.h:38
Definition: dopetypes.h:93
IDC & GetWeightIDC()
Definition: higher_order_dwrc.h:127
DOpEtypes::EETerms GetEETerms() const
Definition: dwrdatacontainer.h:365
void PreparePI_h_u(const VECTOR &u)
Definition: higher_order_dwrc.h:182
EETerms
Definition: dopetypes.h:66
void PreparePI_h_z(const StateVector< VECTOR > &z)
Definition: higher_order_dwrc.h:205
virtual DOpEtypes::WeightComputation GetWeightComputation() const
Definition: higher_order_dwrc.h:270
Definition: dopetypes.h:68
Definition: statevector.h:50
virtual EDC & GetElementWeight() const
Definition: higher_order_dwrc.h:243
ResidualEvaluation
Definition: dopetypes.h:91
StateVector< VECTOR > & GetPI_h_z()
Definition: higher_order_dwrc.h:145
VectorStorageType
Definition: dopetypes.h:120
WeightComputation
Definition: dopetypes.h:80
void PreparePI_h_u(const StateVector< VECTOR > &u)
Definition: higher_order_dwrc.h:162
virtual void ReInit(unsigned int n_elements)
Definition: dwrdatacontainer.h:530
const STH & GetWeightSTH() const
Definition: higher_order_dwrc.h:121
STH & GetWeightSTH()
Definition: higher_order_dwrc.h:115
Definition: dopeexception.h:35
ControlVector< VECTOR > & GetPI_h_q()
Definition: higher_order_dwrc.h:150
Definition: dwrdatacontainer.h:545
void VectorResidualModifier(dealii::Vector< double > &)
Definition: higher_order_dwrc.h:295
const IDC & GetWeightIDC() const
Definition: higher_order_dwrc.h:133