24 #ifndef SPACE_TIME_HANDLER_BASE_H_
25 #define SPACE_TIME_HANDLER_BASE_H_
27 #include <deal.II/lac/vector.h>
28 #include <deal.II/lac/block_vector_base.h>
29 #include <deal.II/lac/block_vector.h>
47 template<
typename VECTOR>
54 time_triangulation_ = NULL;
60 tdfh_(times), interval_(tdfh_.first_interval()), control_type_(type)
62 time_triangulation_ = ×
68 const dealii::FiniteElement<1>& fe,
70 tdfh_(times, fe), interval_(tdfh_.first_interval()), control_type_(type)
72 time_triangulation_ = ×
146 return tdfh_.
GetTime(time_point);
181 return tdfh_.
GetTimes(interval, local_times);
197 bool ret = (ticket == state_ticket_);
198 ticket = state_ticket_;
214 bool ret = (ticket == control_ticket_);
215 ticket = control_ticket_;
226 return control_type_;
287 virtual unsigned int GetStateNDoFs(
int time_point = -1)
const = 0;
328 return interval_.
get_k();
336 double k = (++interval_).get_k();
346 double k = (--interval_).get_k();
415 assert(time_triangulation_ != NULL);
419 time_triangulation_->set_all_refine_flags();
424 "MethodOfLines_SpaceTimeHandler::RefineTime");
426 time_triangulation_->prepare_coarsening_and_refinement();
428 time_triangulation_->execute_coarsening_and_refinement();
439 assert( state_ticket_ < std::numeric_limits<unsigned int>::max());
448 assert( control_ticket_ < std::numeric_limits<unsigned int>::max());
455 dealii::Triangulation<1>* time_triangulation_;
456 unsigned int control_ticket_;
457 unsigned int state_ticket_;
void ReInitTime()
Definition: spacetimehandler_base.h:86
virtual unsigned int NewTimePointToOldTimePoint(unsigned int t) const =0
double GetTime(unsigned int time_point) const
Definition: spacetimehandler_base.h:143
Definition: timedofhandler.h:64
void RefineTime(DOpEtypes::RefinementType=DOpEtypes::RefinementType::global)
Definition: spacetimehandler_base.h:390
bool IsValidControlTicket(unsigned int &ticket) const
Definition: spacetimehandler_base.h:212
virtual unsigned int GetNLocalConstraints() const
Definition: spacetimehandler_base.h:321
double GetStepSize() const
Definition: spacetimehandler_base.h:326
virtual const std::vector< unsigned int > & GetConstraintDoFsPerBlock(std::string) const
Definition: spacetimehandler_base.h:313
virtual void SpatialMeshTransferState(const VECTOR &, VECTOR &) const
Definition: spacetimehandler_base.h:378
virtual void InterpolateConstraint(VECTOR &, const std::vector< VECTOR * > &, double, const TimeIterator &) const
Definition: spacetimehandler_base.h:269
virtual const std::vector< unsigned int > & GetControlDoFsPerBlock(int=-1) const
Definition: spacetimehandler_base.h:300
ControlType
Definition: dopetypes.h:103
bool IsValidStateTicket(unsigned int &ticket) const
Definition: spacetimehandler_base.h:195
virtual unsigned int GetNGlobalConstraints() const
Definition: spacetimehandler_base.h:317
const std::vector< double > & GetTimes() const
Definition: timedofhandler.h:164
Definition: dopetypes.h:52
TimeIterator first_interval() const
Definition: timedofhandler.h:203
Definition: spacetimehandler_base.h:48
double GetNextStepSize() const
Definition: spacetimehandler_base.h:333
Definition: timeiterator.h:62
Definition: dopetypes.h:105
SpaceTimeHandlerBase(dealii::Triangulation< 1 > ×, const dealii::FiniteElement< 1 > &fe, DOpEtypes::ControlType type=DOpEtypes::stationary)
Definition: spacetimehandler_base.h:67
double get_k() const
Definition: timeiterator.h:194
unsigned int GetNbrOfDoFs() const
Definition: timedofhandler.h:152
DOpEtypes::RefinementType GetRefType() const
Definition: refinementcontainer.cc:86
RefinementType
Definition: dopetypes.h:50
Definition: refinementcontainer.h:42
SpaceTimeHandlerBase(DOpEtypes::ControlType control_type=DOpEtypes::stationary)
Definition: spacetimehandler_base.h:52
TimeIterator last_interval() const
Definition: timedofhandler.h:224
unsigned int GetNbrOfIntervals() const
Definition: timedofhandler.h:140
virtual void InterpolateControl(VECTOR &, const std::vector< VECTOR * > &, double, const TimeIterator &) const
Definition: spacetimehandler_base.h:242
virtual void SpatialMeshTransferControl(const VECTOR &, VECTOR &) const
Definition: spacetimehandler_base.h:376
DOpEtypes::ControlType GetControlType() const
Definition: spacetimehandler_base.h:224
const TimeDoFHandler & GetTimeDoFHandler() const
Definition: spacetimehandler_base.h:153
virtual unsigned int GetControlNDoFs(int=-1) const
Definition: spacetimehandler_base.h:279
virtual ~SpaceTimeHandlerBase()
Definition: spacetimehandler_base.h:78
const TimeIterator & GetInterval() const
Definition: spacetimehandler_base.h:131
void SetInterval(const TimeIterator &it)
Definition: spacetimehandler_base.h:120
void distribute_dofs()
Definition: timedofhandler.h:115
virtual const std::vector< unsigned int > & GetStateDoFsPerBlock(int time_point=-1) const =0
double GetTime(unsigned int timestep)
Definition: timedofhandler.h:193
void GetTimes(const TimeIterator &interval, std::vector< double > &local_times) const
Definition: spacetimehandler_base.h:179
bool UsesCoarsening() const
Definition: refinementcontainer.cc:94
unsigned int GetMaxTimePoint() const
Definition: spacetimehandler_base.h:101
const std::vector< double > & GetTimes() const
Definition: spacetimehandler_base.h:162
SpaceTimeHandlerBase(dealii::Triangulation< 1 > ×, DOpEtypes::ControlType type=DOpEtypes::stationary)
Definition: spacetimehandler_base.h:59
void IncrementControlTicket()
Definition: spacetimehandler_base.h:446
virtual unsigned int GetStateNDoFs(int time_point=-1) const =0
Definition: dopeexception.h:35
double GetPreviousStepSize() const
Definition: spacetimehandler_base.h:343
virtual void InterpolateState(VECTOR &, const std::vector< VECTOR * > &, double, const TimeIterator &) const =0
unsigned int GetNbrOfIntervals() const
Definition: spacetimehandler_base.h:109
virtual unsigned int GetConstraintNDoFs(std::string) const
Definition: spacetimehandler_base.h:292
std::string DOpEtypesToString(const C &)
Definition: dopetypes.h:134
void IncrementStateTicket()
Definition: spacetimehandler_base.h:437
void RefineTime(const RefinementContainer &ref_container)
Definition: spacetimehandler_base.h:409