24 #ifndef MOL_MULTIMESH_SPACE_TIME_HANDLER_H_
25 #define MOL_MULTIMESH_SPACE_TIME_HANDLER_H_
35 #include <deal.II/dofs/dof_handler.h>
36 #include <deal.II/dofs/dof_renumbering.h>
37 #include <deal.II/dofs/dof_tools.h>
38 #include <deal.II/hp/mapping_collection.h>
39 #include <deal.II/lac/constraint_matrix.h>
40 #include <deal.II/grid/grid_refinement.h>
55 template<
template<
int,
int>
class FE,
template<
int,
int>
class DH,
56 typename SPARSITYPATTERN,
typename VECTOR,
int dim>
58 DH, SPARSITYPATTERN, VECTOR, dim, dim>
62 dealii::Triangulation<dim>& triangulation,
63 const FE<dim, dim>& control_fe,
const FE<dim, dim>& state_fe,
65 bool flux_pattern =
false,
69 index_setter), state_triangulation_(triangulation), control_dof_handler_(
70 control_triangulation_), state_dof_handler_(
71 state_triangulation_), control_fe_(&control_fe), state_fe_(
73 DOpEWrapper::StaticMappingQ1<dim, DH>::mapping_q1), constraints_(), control_mesh_transfer_(
74 NULL), state_mesh_transfer_(NULL), sparse_mkr_dynamic_(true)
76 control_triangulation_.copy_triangulation(state_triangulation_);
78 user_defined_dof_constr_ = NULL;
82 dealii::Triangulation<dim>& triangulation,
83 const FE<dim, dim>& control_fe,
const FE<dim, dim>& state_fe,
85 bool flux_pattern =
false,
89 type, index_setter), state_triangulation_(triangulation), control_dof_handler_(
90 control_triangulation_), state_dof_handler_(
91 state_triangulation_), control_fe_(&control_fe), state_fe_(
93 DOpEWrapper::StaticMappingQ1<dim, DH>::mapping_q1), constraints_(), control_mesh_transfer_(
94 NULL), state_mesh_transfer_(NULL), sparse_mkr_dynamic_(true)
96 control_triangulation_.copy_triangulation(state_triangulation_);
98 user_defined_dof_constr_ = NULL;
102 dealii::Triangulation<dim>& triangulation,
103 const FE<dim, dim>& control_fe,
const FE<dim, dim>& state_fe,
105 bool flux_pattern =
false,
109 index_setter), state_triangulation_(triangulation), control_dof_handler_(
110 control_triangulation_), state_dof_handler_(
111 state_triangulation_), control_fe_(&control_fe), state_fe_(
112 &state_fe), mapping_(
113 DOpEWrapper::StaticMappingQ1<dim, DH>::mapping_q1), constraints_(
114 c), control_mesh_transfer_(NULL), state_mesh_transfer_(NULL), sparse_mkr_dynamic_(
117 control_triangulation_.copy_triangulation(state_triangulation_);
119 user_defined_dof_constr_ = NULL;
123 dealii::Triangulation<dim>& triangulation,
124 const FE<dim, dim>& control_fe,
const FE<dim, dim>& state_fe,
125 dealii::Triangulation<1> & times,
const Constraints& c,
127 bool flux_pattern =
false,
131 type, index_setter), state_triangulation_(triangulation), control_dof_handler_(
132 control_triangulation_), state_dof_handler_(
133 state_triangulation_), control_fe_(&control_fe), state_fe_(
134 &state_fe), mapping_(
135 DOpEWrapper::StaticMappingQ1<dim, DH>::mapping_q1), constraints_(
136 c), control_mesh_transfer_(NULL), state_mesh_transfer_(NULL), sparse_mkr_dynamic_(
139 control_triangulation_.copy_triangulation(state_triangulation_);
141 user_defined_dof_constr_ = NULL;
146 control_dof_handler_.clear();
148 state_dof_handler_.clear();
150 if (control_mesh_transfer_ != NULL)
152 delete control_mesh_transfer_;
154 if (state_mesh_transfer_ != NULL)
156 delete state_mesh_transfer_;
158 if (sparsitymaker_ != NULL && sparse_mkr_dynamic_ ==
true)
160 delete sparsitymaker_;
169 const std::vector<unsigned int>& control_block_component,
170 unsigned int state_n_blocks,
171 const std::vector<unsigned int>& state_block_component)
174 control_dof_handler_);
175 control_dof_handler_.distribute_dofs(*control_fe_);
176 DoFRenumbering::component_wise(
static_cast<DH<dim, dim>&
>(control_dof_handler_));
178 control_dof_constraints_.clear();
179 DoFTools::make_hanging_node_constraints(
180 static_cast<DH<dim, dim>&
>(control_dof_handler_), control_dof_constraints_);
181 if (GetUserDefinedDoFConstraints() != NULL)
183 control_dof_handler_, control_dof_constraints_);
184 control_dof_constraints_.close();
186 control_dofs_per_block_.resize(control_n_blocks);
188 DoFTools::count_dofs_per_block(
189 static_cast<DH<dim, dim>&
>(control_dof_handler_), control_dofs_per_block_,
190 control_block_component);
195 state_dof_handler_.distribute_dofs(
GetFESystem(
"state"));
196 DoFRenumbering::component_wise(
static_cast<DH<dim, dim>&
>(state_dof_handler_));
198 state_dof_constraints_.clear();
199 DoFTools::make_hanging_node_constraints(
200 static_cast<DH<dim, dim>&
>(state_dof_handler_), state_dof_constraints_);
202 if (GetUserDefinedDoFConstraints() != NULL)
204 state_dof_handler_, state_dof_constraints_);
205 state_dof_constraints_.close();
207 state_dofs_per_block_.resize(state_n_blocks);
208 DoFTools::count_dofs_per_block(
static_cast<DH<dim, dim>&
>(state_dof_handler_),
209 state_dofs_per_block_, state_block_component);
211 support_points_.clear();
213 constraints_.
ReInit(control_dofs_per_block_);
231 return control_dof_handler_;
240 return state_dof_handler_;
258 return control_dofs_per_block_[b];
266 return state_dofs_per_block_[b];
279 const std::vector<unsigned int>&
282 return control_dofs_per_block_;
287 const std::vector<unsigned int>&
290 return state_dofs_per_block_;
295 const std::vector<unsigned int>&
303 const dealii::ConstraintMatrix&
306 return control_dof_constraints_;
311 const dealii::ConstraintMatrix&
314 return state_dof_constraints_;
323 const std::vector<VECTOR*> & local_vectors,
double t,
328 if (local_vectors.size() != 2)
330 "This function is currently not implemented for anything other than"
331 " linear interpolation of 2 DoFs.",
332 "MethodOfLine_SpaceTimeHandler::InterpolateControl");
338 result = *local_vectors[0];
340 result.sadd(lambda_l, lambda_r, *local_vectors[1]);
345 const std::vector<VECTOR*> & local_vectors,
double t,
350 if (local_vectors.size() != 2)
352 "This function is currently not implemented for anything other than"
353 " linear interpolation of 2 DoFs.",
354 "MethodOfLine_SpaceTimeHandler::InterpolateState");
360 result = *local_vectors[0];
362 result.sadd(lambda_l, lambda_r, *local_vectors[1]);
387 return constraints_.
n_dofs(name);
395 return constraints_.
n_dofs(
"global");
404 return constraints_.
n_dofs(
"local");
411 const std::vector<Point<dim> >&
417 return support_points_;
428 this->GetSparsityMaker()->ComputeSparsityPattern(
445 else if (name ==
"control")
452 "MethodOfLines_MultiMesh_SpaceTimeHandler::GetFESystem");
524 template<
typename NUMBER>
548 if (state_mesh_transfer_ != NULL)
550 delete state_mesh_transfer_;
551 state_mesh_transfer_ = NULL;
554 DH>(state_dof_handler_);
558 state_triangulation_.set_all_refine_flags();
563 GridRefinement::refine_and_coarsen_fixed_number(
571 GridRefinement::refine_and_coarsen_fixed_fraction(
579 GridRefinement::refine_and_coarsen_optimize(state_triangulation_,
585 this->FlagIfLeftIsNotFinest(state_triangulation_,
586 control_triangulation_);
591 "MethodOfLines_MultiMesh_SpaceTimeHandler::RefineSpace");
593 state_triangulation_.prepare_coarsening_and_refinement();
594 if (state_mesh_transfer_ != NULL)
595 state_mesh_transfer_->prepare_for_pure_refinement();
597 state_triangulation_.execute_coarsening_and_refinement();
616 if (control_mesh_transfer_ != NULL)
618 delete control_mesh_transfer_;
619 control_mesh_transfer_ = NULL;
621 #if dope_dimension == deal_II_dimension
623 DH>(control_dof_handler_);
627 control_triangulation_.set_all_refine_flags();
633 GridRefinement::refine_and_coarsen_fixed_number(
641 GridRefinement::refine_and_coarsen_fixed_fraction(
649 GridRefinement::refine_and_coarsen_optimize(control_triangulation_,
653 else if (
"finest-of-both")
655 this->FlagIfLeftIsNotFinest(control_triangulation_,
656 state_triangulation_);
661 "MethodOfLines_MultiMesh_SpaceTimeHandler::RefineSpace");
663 control_triangulation_.prepare_coarsening_and_refinement();
666 if (control_mesh_transfer_ != NULL)
667 control_mesh_transfer_->prepare_for_pure_refinement();
669 control_triangulation_.execute_coarsening_and_refinement();
691 VECTOR& new_values)
const
693 if (control_mesh_transfer_ != NULL)
694 control_mesh_transfer_->refine_interpolate(old_values, new_values);
703 VECTOR& new_values)
const
705 if (state_mesh_transfer_ != NULL)
706 state_mesh_transfer_->refine_interpolate(old_values, new_values);
721 user_defined_dof_constr_ = &constraints_maker;
735 assert(sparse_mkr_dynamic_==
true);
736 if (sparsitymaker_ != NULL && sparse_mkr_dynamic_)
737 delete sparsitymaker_;
738 sparsitymaker_ = &sparsity_maker;
739 sparse_mkr_dynamic_ =
false;
751 state_dof_handler_.clear();
752 state_triangulation_.clear();
753 state_triangulation_.copy_triangulation(tria);
754 state_dof_handler_.initialize(state_triangulation_, *state_fe_);
756 if (state_mesh_transfer_ != NULL)
757 delete state_mesh_transfer_;
758 state_mesh_transfer_ = NULL;
771 control_dof_handler_.clear();
772 control_triangulation_.clear();
773 control_triangulation_.copy_triangulation(tria);
774 control_dof_handler_.initialize(control_triangulation_, *control_fe_);
776 if (control_mesh_transfer_ != NULL)
777 delete control_mesh_transfer_;
778 control_mesh_transfer_ = NULL;
783 GetSparsityMaker()
const
785 return sparsitymaker_;
787 const UserDefinedDoFConstraints<DH, dim>*
788 GetUserDefinedDoFConstraints()
const
790 return user_defined_dof_constr_;
794 FlagIfLeftIsNotFinest(dealii::Triangulation<dim>& left,
795 const dealii::Triangulation<dim>& right);
797 SparsityMaker<DH, dim>* sparsitymaker_;
798 UserDefinedDoFConstraints<DH, dim>* user_defined_dof_constr_;
800 dealii::Triangulation<dim> control_triangulation_;
801 dealii::Triangulation<dim>& state_triangulation_;
805 std::vector<unsigned int> control_dofs_per_block_;
806 std::vector<unsigned int> state_dofs_per_block_;
808 dealii::ConstraintMatrix control_dof_constraints_;
809 dealii::ConstraintMatrix state_dof_constraints_;
811 const dealii::SmartPointer<const FE<dim, dim>> control_fe_;
812 const dealii::SmartPointer<const FE<dim, dim>> state_fe_;
816 std::vector<Point<dim> > support_points_;
818 Constraints constraints_;
821 bool sparse_mkr_dynamic_;
825 #if dope_dimension == deal_II_dimension
832 dealii::DoFHandler, dealii::BlockSparsityPattern,
833 dealii::BlockVector<double>, dope_dimension>::ComputeControlSparsityPattern(
834 dealii::BlockSparsityPattern & sparsity)
const
836 const std::vector<unsigned int>& blocks = this->GetControlDoFsPerBlock();
837 #if DEAL_II_VERSION_GTE(8,3,0)
838 dealii::BlockDynamicSparsityPattern csp(blocks.size(),
841 dealii::BlockCompressedSimpleSparsityPattern csp(blocks.size(),
844 for (
unsigned int i = 0; i < blocks.size(); i++)
846 for (
unsigned int j = 0; j < blocks.size(); j++)
848 csp.block(i, j).reinit(this->GetControlDoFsPerBlock(i),
849 this->GetControlDoFsPerBlock(j));
854 dealii::DoFTools::make_sparsity_pattern(
855 static_cast<const dealii::DoFHandler<deal_II_dimension>&
>(this->GetControlDoFHandler()),
857 this->GetControlDoFConstraints().condense(csp);
858 sparsity.copy_from(csp);
866 dealii::DoFHandler, dealii::SparsityPattern, dealii::Vector<double>,
867 dope_dimension>::ComputeControlSparsityPattern(
868 dealii::SparsityPattern & sparsity)
const
870 const unsigned int total_dofs = this->GetControlNDoFs();
871 #if DEAL_II_VERSION_GTE(8,3,0)
872 dealii::DynamicSparsityPattern csp(total_dofs, total_dofs);
874 dealii::CompressedSimpleSparsityPattern csp(total_dofs, total_dofs);
876 dealii::DoFTools::make_sparsity_pattern(
877 static_cast<const dealii::DoFHandler<deal_II_dimension>&
>(this->GetControlDoFHandler()),
879 this->GetControlDoFConstraints().condense(csp);
880 sparsity.copy_from(csp);
889 dealii::hp::DoFHandler, dealii::BlockSparsityPattern,
890 dealii::BlockVector<double>, dope_dimension>::ComputeControlSparsityPattern(
891 dealii::BlockSparsityPattern & sparsity)
const
893 const std::vector<unsigned int>& blocks = this->GetControlDoFsPerBlock();
894 #if DEAL_II_VERSION_GTE(8,3,0)
895 dealii::BlockDynamicSparsityPattern csp(blocks.size(),
898 dealii::BlockCompressedSimpleSparsityPattern csp(blocks.size(),
901 for (
unsigned int i = 0; i < blocks.size(); i++)
903 for (
unsigned int j = 0; j < blocks.size(); j++)
905 csp.block(i, j).reinit(this->GetControlDoFsPerBlock(i),
906 this->GetControlDoFsPerBlock(j));
911 dealii::DoFTools::make_sparsity_pattern(
912 static_cast<const dealii::hp::DoFHandler<deal_II_dimension>&
>(this->GetControlDoFHandler()),
914 this->GetControlDoFConstraints().condense(csp);
915 sparsity.copy_from(csp);
923 dealii::hp::DoFHandler, dealii::SparsityPattern, dealii::Vector<double>,
924 dope_dimension>::ComputeControlSparsityPattern(
925 dealii::SparsityPattern & sparsity)
const
927 const unsigned int total_dofs = this->GetControlNDoFs();
928 #if DEAL_II_VERSION_GTE(8,3,0)
929 dealii::DynamicSparsityPattern csp(total_dofs, total_dofs);
931 dealii::CompressedSimpleSparsityPattern csp(total_dofs, total_dofs);
933 dealii::DoFTools::make_sparsity_pattern(
934 static_cast<const dealii::hp::DoFHandler<deal_II_dimension>&
>(this->GetControlDoFHandler()),
936 this->GetControlDoFConstraints().condense(csp);
937 sparsity.copy_from(csp);
939 #endif //Endof explicit instanciation
941 template<
template<
int,
int>
class FE,
template<
int,
int>
class DH,
942 typename SPARSITYPATTERN,
typename VECTOR,
int dim>
945 dim>::FlagIfLeftIsNotFinest(dealii::Triangulation<dim>& left,
946 const dealii::Triangulation<dim>& right)
948 auto element_list = GridTools::get_finest_common_cells(left, right);
949 auto element_iter = element_list.begin();
950 for (; element_iter != element_list.end(); element_iter++)
952 if (element_iter->second->has_children())
955 element_iter->first->set_refine_flag();
void ReInitTime()
Definition: spacetimehandler_base.h:86
void SetActiveFEIndicesState(DOpEWrapper::DoFHandler< dealdim, DH > &dof_handler)
Definition: spacetimehandler.h:327
Definition: mapping_wrapper.h:48
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)
Definition: mol_multimesh_spacetimehandler.h:168
void RegisterMapping(const typename DOpEWrapper::Mapping< dealdim, DH > &mapping)
Definition: userdefineddofconstraints.h:76
Definition: dopetypes.h:52
unsigned int GetControlNDoFs(int=-1) const
Definition: mol_multimesh_spacetimehandler.h:369
void SetSparsityMaker(SparsityMaker< DH, dim > &sparsity_maker)
Definition: mol_multimesh_spacetimehandler.h:733
void RefineSpace(const RefinementContainer &ref_container)
Definition: mol_multimesh_spacetimehandler.h:526
unsigned int GetConstraintNDoFs(std::string name) const
Definition: mol_multimesh_spacetimehandler.h:385
const DOpEWrapper::DoFHandler< dim, DH > & GetStateDoFHandler() const
Definition: mol_multimesh_spacetimehandler.h:237
void SetActiveFEIndicesControl(DOpEWrapper::DoFHandler< dopedim, DH > &dof_handler)
Definition: spacetimehandler.h:348
void RefineControlSpace(DOpEtypes::RefinementType=DOpEtypes::RefinementType::global)
Definition: mol_multimesh_spacetimehandler.h:507
const std::vector< unsigned int > & GetStateDoFsPerBlock(int=-1) const
Definition: mol_multimesh_spacetimehandler.h:288
ControlType
Definition: dopetypes.h:103
void SetUserDefinedDoFConstraints(UserDefinedDoFConstraints< DH, dim > &constraints_maker)
Definition: mol_multimesh_spacetimehandler.h:718
MethodOfLines_MultiMesh_SpaceTimeHandler(dealii::Triangulation< dim > &triangulation, const FE< dim, dim > &control_fe, const FE< dim, dim > &state_fe, dealii::Triangulation< 1 > ×, const Constraints &c, DOpEtypes::ControlType type, bool flux_pattern=false, const ActiveFEIndexSetterInterface< dim, dim > &index_setter=ActiveFEIndexSetterInterface< dim, dim >())
Definition: mol_multimesh_spacetimehandler.h:122
Definition: dopetypes.h:52
void RefineSpace(DOpEtypes::RefinementType ref_type=DOpEtypes::RefinementType::global)
Definition: mol_multimesh_spacetimehandler.h:468
Definition: dopetypes.h:52
const std::vector< Point< dim > > & GetMapDoFToSupportPoints()
Definition: mol_multimesh_spacetimehandler.h:412
void ComputeControlSparsityPattern(SPARSITYPATTERN &sparsity) const
MethodOfLines_MultiMesh_SpaceTimeHandler(dealii::Triangulation< dim > &triangulation, const FE< dim, dim > &control_fe, const FE< dim, dim > &state_fe, dealii::Triangulation< 1 > ×, DOpEtypes::ControlType type, bool flux_pattern=false, const ActiveFEIndexSetterInterface< dim, dim > &index_setter=ActiveFEIndexSetterInterface< dim, dim >())
Definition: mol_multimesh_spacetimehandler.h:81
Definition: timeiterator.h:62
unsigned int NewTimePointToOldTimePoint(unsigned int t) const
Definition: mol_multimesh_spacetimehandler.h:677
double get_k() const
Definition: timeiterator.h:194
DOpEtypes::RefinementType GetRefType() const
Definition: refinementcontainer.cc:86
RefinementType
Definition: dopetypes.h:50
const dealii::ConstraintMatrix & GetStateDoFConstraints() const
Definition: mol_multimesh_spacetimehandler.h:312
const DOpEWrapper::DoFHandler< dim, DH > & GetControlDoFHandler() const
Definition: mol_multimesh_spacetimehandler.h:228
Definition: refinementcontainer.h:42
void ResetStateTriangulation(const dealii::Triangulation< dim > &tria)
Definition: mol_multimesh_spacetimehandler.h:749
const std::vector< unsigned int > & GetDoFsPerBlock(std::string name) const
Definition: constraints.h:159
unsigned int GetNGlobalConstraints() const
Definition: mol_multimesh_spacetimehandler.h:393
Definition: active_fe_index_setter_interface.h:39
unsigned int GetStateDoFsPerBlock(unsigned int b, int=-1) const
Definition: mol_multimesh_spacetimehandler.h:264
virtual const dealii::Vector< float > & GetLocalErrorIndicators() const
Definition: refinementcontainer.cc:46
virtual double GetTopFraction() const
Definition: refinementcontainer.cc:56
virtual void InterpolateState(VECTOR &result, const std::vector< VECTOR * > &local_vectors, double t, const TimeIterator &it) const
Definition: mol_multimesh_spacetimehandler.h:344
Definition: dopetypes.h:52
unsigned int GetConstraintDoFsPerBlock(std::string name, unsigned int b) const
Definition: mol_multimesh_spacetimehandler.h:272
MethodOfLines_MultiMesh_SpaceTimeHandler(dealii::Triangulation< dim > &triangulation, const FE< dim, dim > &control_fe, const FE< dim, dim > &state_fe, const Constraints &c, DOpEtypes::ControlType type, bool flux_pattern=false, const ActiveFEIndexSetterInterface< dim, dim > &index_setter=ActiveFEIndexSetterInterface< dim, dim >())
Definition: mol_multimesh_spacetimehandler.h:101
void ComputeStateSparsityPattern(SPARSITYPATTERN &sparsity) const
Definition: mol_multimesh_spacetimehandler.h:426
Definition: constraints.h:33
void SpatialMeshTransferState(const VECTOR &old_values, VECTOR &new_values) const
Definition: mol_multimesh_spacetimehandler.h:702
virtual double GetConvergenceOrder() const
Definition: refinementcontainer.cc:76
const dealii::ConstraintMatrix & GetControlDoFConstraints() const
Definition: mol_multimesh_spacetimehandler.h:304
const std::vector< unsigned int > & GetControlDoFsPerBlock(int=-1) const
Definition: mol_multimesh_spacetimehandler.h:280
double get_right() const
Definition: timeiterator.h:184
Definition: spacetimehandler.h:71
void MapDoFsToSupportPoints(const DOpEWrapper::Mapping< dealdim, dealii::DoFHandler > &mapping, const DOpEWrapper::DoFHandler< dealdim, dealii::DoFHandler > &dh, VECTOR &support_points)
Definition: sth_internals.h:47
virtual void InterpolateControl(VECTOR &result, const std::vector< VECTOR * > &local_vectors, double t, const TimeIterator &it) const
Definition: mol_multimesh_spacetimehandler.h:322
virtual void MakeControlDoFConstraints(const DOpEWrapper::DoFHandler< dopedim, DH > &dof_handler, dealii::ConstraintMatrix &dof_constraints) const
Definition: userdefineddofconstraints.h:103
const std::vector< unsigned int > & GetConstraintDoFsPerBlock(std::string name) const
Definition: mol_multimesh_spacetimehandler.h:296
void ReInit(std::vector< unsigned int > &control_dofs_per_block)
Definition: constraints.h:108
~MethodOfLines_MultiMesh_SpaceTimeHandler()
Definition: mol_multimesh_spacetimehandler.h:144
unsigned int GetControlDoFsPerBlock(unsigned int b, int=-1) const
Definition: mol_multimesh_spacetimehandler.h:256
Definition: mol_multimesh_spacetimehandler.h:57
Definition: sparsitymaker.h:50
bool UsesCoarsening() const
Definition: refinementcontainer.cc:94
void RefineStateSpace(DOpEtypes::RefinementType=DOpEtypes::RefinementType::global)
Definition: mol_multimesh_spacetimehandler.h:488
double get_left() const
Definition: timeiterator.h:174
const FE< dim, dim > & GetFESystem(std::string name) const
Definition: mol_multimesh_spacetimehandler.h:439
unsigned int GetStateNDoFs(int=-1) const
Definition: mol_multimesh_spacetimehandler.h:377
void IncrementControlTicket()
Definition: spacetimehandler_base.h:446
Definition: solutiontransfer_wrapper.h:51
unsigned int GetNLocalConstraints() const
Definition: mol_multimesh_spacetimehandler.h:402
MethodOfLines_MultiMesh_SpaceTimeHandler(dealii::Triangulation< dim > &triangulation, const FE< dim, dim > &control_fe, const FE< dim, dim > &state_fe, DOpEtypes::ControlType type, bool flux_pattern=false, const ActiveFEIndexSetterInterface< dim, dim > &index_setter=ActiveFEIndexSetterInterface< dim, dim >())
Definition: mol_multimesh_spacetimehandler.h:61
void RefineStateSpace(const RefinementContainer &ref_container)
Definition: mol_multimesh_spacetimehandler.h:541
Definition: dopeexception.h:35
Definition: dopetypes.h:52
const DOpEWrapper::Mapping< dim, DH > & GetMapping() const
Definition: mol_multimesh_spacetimehandler.h:247
void SpatialMeshTransferControl(const VECTOR &old_values, VECTOR &new_values) const
Definition: mol_multimesh_spacetimehandler.h:690
void RefineControlSpace(const RefinementContainer &ref_container)
Definition: mol_multimesh_spacetimehandler.h:609
virtual double GetBottomFraction() const
Definition: refinementcontainer.cc:66
std::string DOpEtypesToString(const C &)
Definition: dopetypes.h:134
virtual void MakeStateDoFConstraints(const DOpEWrapper::DoFHandler< dealdim, DH > &dof_handler, dealii::ConstraintMatrix &dof_constraints) const
Definition: userdefineddofconstraints.h:93
unsigned int n_dofs(std::string name) const
Definition: constraints.h:141
void IncrementStateTicket()
Definition: spacetimehandler_base.h:437
void ResetControlTriangulation(const dealii::Triangulation< dim > &tria)
Definition: mol_multimesh_spacetimehandler.h:769