24 #ifndef SPACE_TIME_HANDLER_H_
25 #define SPACE_TIME_HANDLER_H_
32 #include <deal.II/lac/vector.h>
33 #include <deal.II/lac/block_vector_base.h>
34 #include <deal.II/lac/block_vector.h>
35 #include <deal.II/lac/constraint_matrix.h>
36 #include <deal.II/dofs/dof_handler.h>
40 #include <deal.II/multigrid/mg_constrained_dofs.h>
41 #include <deal.II/multigrid/multigrid.h>
42 #include <deal.II/multigrid/mg_transfer.h>
43 #include <deal.II/multigrid/mg_tools.h>
44 #include <deal.II/multigrid/mg_coarse.h>
45 #include <deal.II/multigrid/mg_smoother.h>
46 #include <deal.II/multigrid/mg_matrix.h>
69 template<
template<
int,
int>
class FE,
template<
int,
int>
class DH,
typename SPARSITYPATTERN,
70 typename VECTOR,
int dopedim,
int dealdim>
77 dealii::numbers::invalid_unsigned_int)
84 dealii::numbers::invalid_unsigned_int)
119 ReInit(
unsigned int control_n_blocks,
120 const std::vector<unsigned int>& control_block_component,
121 unsigned int state_n_blocks,
122 const std::vector<unsigned int>& state_block_component) =0;
154 const std::vector<const DOpEWrapper::DoFHandler<dealdim, DH>*>&
157 assert(
state_index_ != dealii::numbers::invalid_unsigned_int);
158 #if dope_dimension > 0
181 for (
unsigned int dh = 0; dh < this->
GetDoFHandler().size(); dh++)
202 for (
unsigned int dh = 0; dh < this->
GetDoFHandler().size(); dh++)
226 for (
unsigned int dh = 0; dh < this->
GetDoFHandler().size(); dh++)
250 for (
unsigned int dh = 0; dh < this->
GetDoFHandler().size(); dh++)
271 unsigned int state_index)
275 #if dope_dimension > 0
332 for (
typename DH<dealdim, dealdim>::active_cell_iterator element =
333 dof_handler.begin_active(); element != dof_handler.end(); ++element)
353 for (
typename DH<dopedim, dopedim>::active_cell_iterator element =
354 dof_handler.begin_active(); element != dof_handler.end(); ++element)
390 virtual const std::vector<unsigned int>&
400 virtual const std::vector<unsigned int>&
408 virtual const std::vector<unsigned int>&
416 virtual const dealii::ConstraintMatrix
425 virtual const dealii::ConstraintMatrix
435 virtual const std::vector<dealii::Point<dealdim> >
466 "Not used for normal DofHandler",
467 "StateSpaceTimeHandler.h");
481 "Not used for normal DofHandler",
482 "StateSpaceTimeHandler.h");
490 virtual const FE<dealdim, dealdim>&
void SetActiveFEIndicesState(DOpEWrapper::DoFHandler< dealdim, DH > &dof_handler)
Definition: spacetimehandler.h:327
static bool NeedIndexSetter()
virtual void ComputeStateSparsityPattern(SPARSITYPATTERN &sparsity) const =0
std::vector< typename DOpEWrapper::DoFHandler< dealdim, DH >::active_cell_iterator > GetDoFHandlerBeginActive() const
Definition: spacetimehandler.h:176
virtual const std::vector< dealii::Point< dealdim > > & GetMapDoFToSupportPoints()=0
void SetActiveFEIndicesControl(DOpEWrapper::DoFHandler< dopedim, DH > &dof_handler)
Definition: spacetimehandler.h:348
std::vector< typename DOpEWrapper::DoFHandler< dealdim, DH >::active_cell_iterator > GetDoFHandlerEnd() const
Definition: spacetimehandler.h:197
virtual unsigned int GetStateDoFsPerBlock(unsigned int b, int time_point=-1) const =0
SpaceTimeHandler(DOpEtypes::ControlType type)
Definition: spacetimehandler.h:74
DOpEWrapper::DataOut< dealdim, DH > data_out_
Definition: spacetimehandler.h:507
virtual const DOpEWrapper::DoFHandler< dopedim, DH > & GetControlDoFHandler() const =0
virtual void ReInit(unsigned int control_n_blocks, const std::vector< unsigned int > &control_block_component, unsigned int state_n_blocks, const std::vector< unsigned int > &state_block_component)=0
ControlType
Definition: dopetypes.h:103
std::vector< const DOpEWrapper::DoFHandler< dealdim, DH > * > domain_dofhandler_vector_
Definition: spacetimehandler.h:510
void SetDoFHandlerOrdering(unsigned int control_index, unsigned int state_index)
Definition: spacetimehandler.h:270
virtual ~SpaceTimeHandler()
Definition: spacetimehandler.h:105
virtual const DOpEWrapper::DoFHandler< dealdim, DH > & GetStateDoFHandler() const =0
Definition: spacetimehandler_base.h:48
virtual const dealii::ConstraintMatrix & GetStateDoFConstraints() const =0
virtual const DOpEWrapper::Mapping< dealdim, DH > & GetMapping() const =0
SpaceTimeHandler(DOpEtypes::ControlType type, const ActiveFEIndexSetterInterface< dopedim, dealdim > &index_setter)
Definition: spacetimehandler.h:87
DOpEWrapper::DataOut< dealdim, DH > & GetDataOut()
Definition: spacetimehandler.h:496
unsigned int GetStateIndex()
Definition: spacetimehandler.h:302
Definition: active_fe_index_setter_interface.h:39
std::vector< typename DOpEWrapper::DoFHandler< dealdim, DH >::cell_iterator > GetDoFHandlerBeginActiveAllLevels() const
Definition: spacetimehandler.h:221
virtual void ComputeMGStateSparsityPattern(dealii::MGLevelObject< dealii::BlockSparsityPattern > &, unsigned int) const
Definition: spacetimehandler.h:462
virtual const FE< dealdim, dealdim > & GetFESystem(std::string name) const =0
const ActiveFEIndexSetterInterface< dopedim, dealdim > & GetFEIndexSetter() const
Definition: spacetimehandler.h:313
std::vector< typename DOpEWrapper::DoFHandler< dealdim, DH >::cell_iterator > GetDoFHandlerEndAllLevels() const
Definition: spacetimehandler.h:245
virtual const dealii::ConstraintMatrix & GetControlDoFConstraints() const =0
const ActiveFEIndexSetterInterface< dopedim, dealdim > * fe_index_setter_
Definition: spacetimehandler.h:509
Definition: spacetimehandler.h:71
const std::vector< const DOpEWrapper::DoFHandler< dealdim, DH > * > & GetDoFHandler() const
Definition: spacetimehandler.h:155
unsigned int state_index_
Definition: spacetimehandler.h:508
SpaceTimeHandler(dealii::Triangulation< 1 > ×, DOpEtypes::ControlType type)
Definition: spacetimehandler.h:80
virtual void ComputeControlSparsityPattern(SPARSITYPATTERN &sparsity) const =0
SpaceTimeHandler(dealii::Triangulation< 1 > ×, DOpEtypes::ControlType type, const ActiveFEIndexSetterInterface< dopedim, dealdim > &index_setter)
Definition: spacetimehandler.h:95
Definition: dopeexception.h:35
virtual void ComputeMGStateSparsityPattern(dealii::MGLevelObject< dealii::SparsityPattern > &, unsigned int) const
Definition: spacetimehandler.h:477
virtual unsigned int GetConstraintDoFsPerBlock(std::string name, unsigned int b) const =0
virtual unsigned int GetControlDoFsPerBlock(unsigned int b, int time_point=-1) const =0
unsigned int control_index_
Definition: spacetimehandler.h:508