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:66
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
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:329
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:66
std::string GetName() const
Definition: higher_order_dwrc.h:92
bool NeedDual() const
Definition: higher_order_dwrc.h:261
Definition: controlvector.h:48
Definition: dopetypes.h:80
STH & GetHigherOrderSTH()
Definition: higher_order_dwrc.h:308
Definition: dopetypes.h:66
Definition: higher_order_dwrc.h:38
Definition: dopetypes.h:91
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:64
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:66
Definition: statevector.h:49
virtual EDC & GetElementWeight() const
Definition: higher_order_dwrc.h:243
ResidualEvaluation
Definition: dopetypes.h:89
StateVector< VECTOR > & GetPI_h_z()
Definition: higher_order_dwrc.h:145
WeightComputation
Definition: dopetypes.h:78
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
HigherOrderDWRContainer(STH &higher_order_sth, IDC &higher_order_idc, std::string 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
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