24 #ifndef FACEDATACONTAINER_H_
25 #define FACEDATACONTAINER_H_
35 #include <deal.II/dofs/dof_handler.h>
37 #include <deal.II/hp/dof_handler.h>
39 using namespace dealii;
49 template<
template<
int,
int>
class DH,
typename VECTOR,
int dim>
57 "Dummy class, this constructor should never get called.",
58 "ElementDataContainer<dealii::DoFHandler , VECTOR, dim>::ElementDataContainer"));
72 template<
typename VECTOR,
int dim>
99 template<
template<
int,
int>
class FE,
typename SPARSITYPATTERN,
int dopedim,
int dealdim>
101 UpdateFlags update_flags,
103 dopedim, dealdim>& sth,
106 const std::map<std::string,
const Vector<double>*> ¶m_values,
107 const std::map<std::string, const VECTOR*> &domain_values,
108 bool need_neighbour) :
109 fdcinternal::FaceDataContainerInternal<VECTOR, dim>(param_values,
110 domain_values, need_neighbour), element_(element), state_fe_values_(
111 sth.GetMapping(), (sth.GetFESystem(
"state")), quad,
112 update_flags), control_fe_values_(sth.GetMapping(),
113 (sth.GetFESystem(
"control")), quad, update_flags)
115 state_index_ = sth.GetStateIndex();
116 if (state_index_ == 1)
124 sth.GetMapping(), (sth.GetFESystem(
"control")), quad,
126 control_fe_subface_values_ =
128 (sth.GetFESystem(
"control")), quad, update_flags);
130 this->PrivateConstructor(quad, update_flags, sth, need_neighbour);
150 template<
template<
int,
int>
class FE,
typename SPARSITYPATTERN>
152 UpdateFlags update_flags,
157 const std::map<std::string,
const Vector<double>*> ¶m_values,
158 const std::map<std::string, const VECTOR*> &domain_values,
159 bool need_neighbour) :
160 fdcinternal::FaceDataContainerInternal<VECTOR, dim>(param_values,
161 domain_values, need_neighbour), element_(element), state_fe_values_(
162 sth.GetMapping(), (sth.GetFESystem(
"state")), quad,
163 update_flags), control_fe_values_(sth.GetMapping(),
164 (sth.GetFESystem(
"state")), quad, update_flags)
166 state_index_ = sth.GetStateIndex();
167 control_index_ = element.size();
168 n_q_points_per_element_ = quad.size();
169 n_dofs_per_element_ = element[0]->get_fe().dofs_per_cell;
174 sth.GetMapping(), (sth.GetFESystem(
"state")), quad,
176 control_fe_subface_values_ =
178 (sth.GetFESystem(
"state")), quad, update_flags);
180 this->PrivateConstructor(quad, update_flags, sth, need_neighbour);
185 if (nbr_state_fe_values_ != NULL)
187 delete nbr_state_fe_values_;
189 if (nbr_control_fe_values_ != NULL)
191 delete nbr_control_fe_values_;
193 if (state_fe_subface_values_ != NULL)
195 delete state_fe_subface_values_;
197 if (control_fe_subface_values_ != NULL)
199 delete control_fe_subface_values_;
211 ReInit(
unsigned int face_no);
224 ReInit(
unsigned int face_no,
unsigned int subface_no);
242 GetNDoFsPerElement()
const;
244 GetNbrNDoFsPerElement()
const;
248 GetNbrNQPoints()
const;
250 GetMaterialId()
const;
252 GetNbrMaterialId()
const;
254 GetNbrMaterialId(
unsigned int face)
const;
256 GetIsAtBoundary()
const;
258 GetElementDiameter()
const;
260 GetBoundaryIndicator()
const;
261 inline const FEFaceValuesBase<dim>&
262 GetFEFaceValuesState()
const;
263 inline const FEFaceValuesBase<dim>&
264 GetFEFaceValuesControl()
const;
266 inline const FEFaceValuesBase<dim>&
267 GetNbrFEFaceValuesState()
const;
268 inline const FEFaceValuesBase<dim>&
269 GetNbrFEFaceValuesControl()
const;
276 GetStateIndex()
const;
278 GetControlIndex()
const;
284 PrivateConstructor(
const Quadrature<dim - 1>& quad,
285 UpdateFlags update_flags, STH& sth,
bool need_neighbour)
287 n_q_points_per_element_ = quad.size();
288 n_dofs_per_element_ = element_[0]->get_fe().dofs_per_cell;
293 (sth.GetFESystem(
"state")), quad, update_flags);
295 (sth.GetFESystem(
"state")), quad, update_flags);
299 nbr_state_fe_values_ = NULL;
300 nbr_control_fe_values_ = NULL;
301 state_fe_subface_values_ = NULL;
302 control_fe_subface_values_ = NULL;
306 state_fe_values_ptr_ = NULL;
307 control_fe_values_ptr_ = NULL;
308 nbr_state_fe_values_ptr_ = NULL;
309 nbr_control_fe_values_ptr_ = NULL;
313 unsigned int state_index_;
314 unsigned int control_index_;
327 dealii::FEFaceValuesBase<dim>* state_fe_values_ptr_;
328 dealii::FEFaceValuesBase<dim>* control_fe_values_ptr_;
329 dealii::FEFaceValuesBase<dim>* nbr_state_fe_values_ptr_;
330 dealii::FEFaceValuesBase<dim>* nbr_control_fe_values_ptr_;
332 unsigned int n_q_points_per_element_;
333 unsigned int n_dofs_per_element_;
621 template<
typename VECTOR,
int dim>
647 template<
template<
int,
int>
class FE,
typename SPARSITYPATTERN,
int dopedim,
int dealdim>
649 const hp::QCollection<dim - 1>& q_collection,
650 UpdateFlags update_flags,
652 VECTOR, dopedim, dealdim>& sth,
655 const std::map<std::string, const Vector<double>*> ¶m_values,
656 const std::map<std::string, const VECTOR*> &domain_values,
657 bool need_neighbour) :
659 domain_values, need_neighbour), element_(element), state_hp_fe_values_(
660 (sth.GetFESystem(
"state")), q_collection, update_flags), control_hp_fe_values_(
661 (sth.GetFESystem(
"control")), q_collection, update_flags), q_collection_(
664 state_index_ = sth.GetStateIndex();
665 if (state_index_ == 1)
673 sth.GetMapping(), (sth.GetFESystem(
"control")), q_collection,
675 control_hp_fe_subface_values_ =
677 (sth.GetFESystem(
"control")), q_collection, update_flags);
680 this->PrivateConstructor(q_collection, update_flags, sth,
704 template<
template<
int,
int>
class FE,
typename SPARSITYPATTERN,
int dealdim>
706 const hp::QCollection<dim - 1>& q_collection,
707 UpdateFlags update_flags,
709 VECTOR, dealdim>& sth,
712 const std::map<std::string, const Vector<double>*> ¶m_values,
713 const std::map<std::string, const VECTOR*> &domain_values,
714 bool need_neighbour) :
716 domain_values, need_neighbour), element_(element), state_hp_fe_values_(
717 (sth.GetFESystem(
"state")), q_collection, update_flags), control_hp_fe_values_(
718 (sth.GetFESystem(
"state")), q_collection, update_flags), q_collection_(
721 state_index_ = sth.GetStateIndex();
722 if (state_index_ == 1)
730 sth.GetMapping(), (sth.GetFESystem(
"state")), q_collection,
732 control_hp_fe_subface_values_ =
734 (sth.GetFESystem(
"state")), q_collection, update_flags);
736 this->PrivateConstructor(q_collection, update_flags, sth,
745 delete nbr_state_hp_fe_values_;
746 nbr_state_hp_fe_values_ = NULL;
747 delete nbr_control_hp_fe_values_;
748 nbr_control_hp_fe_values_ = NULL;
749 delete state_hp_fe_subface_values_;
750 state_hp_fe_subface_values_ = NULL;
751 delete control_hp_fe_subface_values_;
752 control_hp_fe_subface_values_ = NULL;
764 ReInit(
unsigned int face_no);
777 ReInit(
unsigned int face_no,
unsigned int subface_no);
796 GetNDoFsPerElement()
const;
799 GetNbrNDoFsPerElement()
const;
803 GetNbrNQPoints()
const;
805 GetMaterialId()
const;
807 GetNbrMaterialId()
const;
809 GetNbrMaterialId(
unsigned int face)
const;
811 GetIsAtBoundary()
const;
813 GetBoundaryIndicator()
const;
815 GetElementDiameter()
const;
817 inline const FEFaceValuesBase<dim>&
818 GetFEFaceValuesState()
const;
819 inline const FEFaceValuesBase<dim>&
820 GetFEFaceValuesControl()
const;
822 inline const FEFaceValuesBase<dim>&
823 GetNbrFEFaceValuesState()
const;
824 inline const FEFaceValuesBase<dim>&
825 GetNbrFEFaceValuesControl()
const;
829 GetStateIndex()
const;
831 GetControlIndex()
const;
838 PrivateConstructor(
const hp::QCollection<dim - 1>& q_collection,
839 UpdateFlags update_flags, STH& sth,
bool need_neighbour)
844 sth.GetMapping(), (sth.GetFESystem(
"state")), q_collection,
847 dim>(sth.GetMapping(), (sth.GetFESystem(
"state")),
848 q_collection, update_flags);
853 nbr_state_hp_fe_values_ = NULL;
854 nbr_control_hp_fe_values_ = NULL;
855 state_hp_fe_subface_values_ = NULL;
856 control_hp_fe_subface_values_ = NULL;
859 nbr_state_hp_fe_values_ptr_ = NULL;
860 nbr_control_hp_fe_values_ptr_ = NULL;
861 state_hp_fe_values_ptr_ = NULL;
862 control_hp_fe_values_ptr_ = NULL;
866 unsigned int state_index_;
867 unsigned int control_index_;
880 const dealii::FEFaceValuesBase<dim>* state_hp_fe_values_ptr_;
881 const dealii::FEFaceValuesBase<dim>* control_hp_fe_values_ptr_;
882 const dealii::FEFaceValuesBase<dim>* nbr_state_hp_fe_values_ptr_;
883 const dealii::FEFaceValuesBase<dim>* nbr_control_hp_fe_values_ptr_;
885 const hp::QCollection<dim - 1>& q_collection_;
894 #pragma GCC diagnostic push
895 #pragma GCC diagnostic ignored "-Wunused-function"
897 template<
int dim,
template<
int,
int>
class DH>
898 bool sanity_check(
const
901 unsigned int subface)
903 const auto neighbor_child =
904 element_->neighbor_child_on_subface(
908 if(neighbor_child->face(element_->neighbor_of_neighbor(face)) == element_->face(face)->child(subface))
914 bool sanity_check<1,dealii::hp::DoFHandler>(
const
923 bool sanity_check<1,dealii::DoFHandler>(
const
931 #pragma GCC diagnostic pop
934 template<
typename VECTOR,
int dim>
937 unsigned int face_no)
939 this->SetFace(face_no);
940 state_fe_values_.reinit(element_[this->GetStateIndex()], face_no);
941 state_fe_values_ptr_ = &state_fe_values_;
943 if (this->GetControlIndex() < element_.size())
945 control_fe_values_.reinit(element_[this->GetControlIndex()], face_no);
946 control_fe_values_ptr_ = &control_fe_values_;
952 template<
typename VECTOR,
int dim>
955 unsigned int face_no,
unsigned int subface_no)
957 this->SetFace(face_no);
958 this->SetSubFace(subface_no);
959 state_fe_subface_values_->reinit(element_[this->GetStateIndex()], face_no,
961 state_fe_values_ptr_ = state_fe_subface_values_;
963 if (this->GetControlIndex() < element_.size())
965 control_fe_subface_values_->reinit(element_[this->GetControlIndex()],
966 face_no, this->GetSubFace());
967 control_fe_values_ptr_ = control_fe_subface_values_;
973 template<
typename VECTOR,
int dim>
977 Assert(this->NeedNeighbour(), ExcInternalError());
979 element_[this->GetStateIndex()]->neighbor_index(this->GetFace()) != -1,
980 TriaAccessorExceptions::ExcUnusedCellAsNeighbor())
982 if (element_[this->GetStateIndex()]->neighbor(this->GetFace())->has_children())
985 const auto neighbor_child =
986 element_[this->GetStateIndex()]->neighbor_child_on_subface(
987 this->GetFace(), this->GetSubFace());
991 Assert((sanity_check<dim, dealii::DoFHandler>(element_[this->GetStateIndex()],
993 this->GetSubFace()) ==
true), ExcInternalError());
994 Assert(neighbor_child->has_children() ==
false, ExcInternalError());
996 nbr_state_fe_values_->reinit(neighbor_child,
997 element_[this->GetStateIndex()]->neighbor_of_neighbor(
999 nbr_state_fe_values_ptr_ = nbr_state_fe_values_;
1002 if (this->GetControlIndex() < element_.size())
1004 const auto control_neighbor_child =
1005 element_[this->GetControlIndex()]->neighbor_child_on_subface(
1006 this->GetFace(), this->GetSubFace());
1008 nbr_control_fe_values_->reinit(control_neighbor_child,
1009 element_[this->GetControlIndex()]->neighbor_of_neighbor(
1011 nbr_control_fe_values_ptr_ = nbr_control_fe_values_;
1014 else if (element_[this->GetStateIndex()]->neighbor_is_coarser(
1019 element_[this->GetStateIndex()]->neighbor(this->GetFace())->level() == element_[this->GetStateIndex()]->level()-1,
1020 ExcInternalError());
1021 const auto neighbor = element_[this->GetStateIndex()]->neighbor(
1023 const std::pair<unsigned int, unsigned int> faceno_subfaceno =
1024 element_[this->GetStateIndex()]->neighbor_of_coarser_neighbor(
1026 const unsigned int neighbor_face_no = faceno_subfaceno.first,
1027 neighbor_subface_no = faceno_subfaceno.second;
1028 state_fe_subface_values_->reinit(neighbor, neighbor_face_no,
1029 neighbor_subface_no);
1030 nbr_state_fe_values_ptr_ = state_fe_subface_values_;
1031 if (this->GetControlIndex() < element_.size())
1033 const auto control_neighbor =
1034 element_[this->GetControlIndex()]->neighbor(this->GetFace());
1035 const std::pair<unsigned int, unsigned int> control_faceno_subfaceno =
1036 element_[this->GetControlIndex()]->neighbor_of_coarser_neighbor(
1038 const unsigned int control_neighbor_face_no =
1039 control_faceno_subfaceno.first, control_neighbor_subface_no =
1040 control_faceno_subfaceno.second;
1041 control_fe_subface_values_->reinit(control_neighbor,
1042 control_neighbor_face_no, control_neighbor_subface_no);
1043 nbr_control_fe_values_ptr_ = control_fe_subface_values_;
1049 const auto neighbor_state = element_[this->GetStateIndex()]->neighbor(
1052 Assert(neighbor_state->level() == element_[this->GetStateIndex()]->level(),
1053 ExcInternalError());
1054 nbr_state_fe_values_->reinit(neighbor_state,
1055 element_[this->GetStateIndex()]->neighbor_of_neighbor(
1057 nbr_state_fe_values_ptr_ = nbr_state_fe_values_;
1060 if (this->GetControlIndex() < element_.size())
1062 nbr_control_fe_values_->reinit(
1063 element_[this->GetControlIndex()]->neighbor(this->GetFace()),
1064 element_[this->GetControlIndex()]->neighbor_of_neighbor(
1066 nbr_control_fe_values_ptr_ = nbr_control_fe_values_;
1071 template<
typename VECTOR,
int dim>
1075 return n_dofs_per_element_;
1080 template<
typename VECTOR,
int dim>
1084 return n_dofs_per_element_;
1088 template<
typename VECTOR,
int dim>
1092 return n_q_points_per_element_;
1096 template<
typename VECTOR,
int dim>
1100 return n_q_points_per_element_;
1104 template<
typename VECTOR,
int dim>
1108 return element_[0]->material_id();
1112 template<
typename VECTOR,
int dim>
1116 return this->GetNbrMaterialId(this->GetFace());
1120 template<
typename VECTOR,
int dim>
1123 unsigned int face)
const
1125 if (element_[0]->neighbor_index(face) != -1)
1126 return element_[0]->neighbor(face)->material_id();
1129 std::stringstream out;
1130 out <<
"There is no neighbor with number " << face;
1132 "FaceDataContainer::GetNbrMaterialId");
1137 template<
typename VECTOR,
int dim>
1141 return element_[0]->face(this->GetFace())->at_boundary();
1145 template<
typename VECTOR,
int dim>
1149 return element_[0]->face(this->GetFace())->diameter();
1154 template<
typename VECTOR,
int dim>
1158 #if DEAL_II_VERSION_GTE(8,3,0)
1159 return element_[0]->face(this->GetFace())->boundary_id();
1161 return element_[0]->face(this->GetFace())->boundary_indicator();
1166 template<
typename VECTOR,
int dim>
1167 const FEFaceValuesBase<dim>&
1170 return *state_fe_values_ptr_;
1174 template<
typename VECTOR,
int dim>
1175 const FEFaceValuesBase<dim>&
1178 return *control_fe_values_ptr_;
1181 template<
typename VECTOR,
int dim>
1182 const FEFaceValuesBase<dim>&
1185 return *nbr_state_fe_values_ptr_;
1189 template<
typename VECTOR,
int dim>
1190 const FEFaceValuesBase<dim>&
1193 return *nbr_control_fe_values_ptr_;
1196 template<
typename VECTOR,
int dim>
1200 return state_index_;
1205 template<
typename VECTOR,
int dim>
1207 FaceDataContainer<dealii::DoFHandler, VECTOR, dim>::GetControlIndex()
const
1209 return control_index_;
1505 template<
typename VECTOR,
int dim>
1508 unsigned int face_no)
1510 this->SetFace(face_no);
1511 state_hp_fe_values_.reinit(element_[this->GetStateIndex()], face_no);
1512 state_hp_fe_values_ptr_ = &state_hp_fe_values_.get_present_fe_values();
1514 if (this->GetControlIndex() < element_.size())
1516 control_hp_fe_values_.reinit(element_[this->GetControlIndex()], face_no);
1517 control_hp_fe_values_ptr_ =
1518 &control_hp_fe_values_.get_present_fe_values();
1524 template<
typename VECTOR,
int dim>
1527 unsigned int face_no,
unsigned int subface_no)
1529 this->SetFace(face_no);
1530 this->SetSubFace(subface_no);
1531 state_hp_fe_subface_values_->reinit(element_[this->GetStateIndex()],
1532 this->GetFace(), this->GetSubFace());
1533 state_hp_fe_values_ptr_ =
1534 &state_hp_fe_subface_values_->get_present_fe_values();
1536 if (this->GetControlIndex() < element_.size())
1538 control_hp_fe_subface_values_->reinit(element_[this->GetControlIndex()],
1539 this->GetFace(), this->GetSubFace());
1540 control_hp_fe_values_ptr_ =
1541 &control_hp_fe_subface_values_->get_present_fe_values();
1546 template<
typename VECTOR,
int dim>
1550 Assert(this->NeedNeighbour(), ExcInternalError());
1552 element_[this->GetStateIndex()]->neighbor_index(this->GetFace()) != -1,
1553 TriaAccessorExceptions::ExcUnusedCellAsNeighbor())
1555 if (element_[this->GetStateIndex()]->neighbor(this->GetFace())->has_children())
1558 const auto neighbor_child =
1559 element_[this->GetStateIndex()]->neighbor_child_on_subface(
1560 this->GetFace(), this->GetSubFace());
1565 neighbor_child->face(element_[this->GetStateIndex()]->neighbor_of_neighbor(this->GetFace())) == element_[this->GetStateIndex()]->face(this->GetFace())->child(this->GetSubFace()),
1566 ExcInternalError());
1567 Assert(neighbor_child->has_children() ==
false, ExcInternalError());
1569 nbr_state_hp_fe_values_->reinit(neighbor_child,
1570 element_[this->GetStateIndex()]->neighbor_of_neighbor(
1572 nbr_state_hp_fe_values_ptr_ =
1573 &nbr_state_hp_fe_values_->get_present_fe_values();
1576 if (this->GetControlIndex() < element_.size())
1578 const auto control_neighbor_child =
1579 element_[this->GetControlIndex()]->neighbor_child_on_subface(
1580 this->GetFace(), this->GetSubFace());
1582 nbr_control_hp_fe_values_->reinit(control_neighbor_child,
1583 element_[this->GetControlIndex()]->neighbor_of_neighbor(
1585 nbr_control_hp_fe_values_ptr_ =
1586 &nbr_control_hp_fe_values_->get_present_fe_values();
1589 else if (element_[this->GetStateIndex()]->neighbor_is_coarser(
1594 element_[this->GetStateIndex()]->neighbor(this->GetFace())->level() == element_[this->GetStateIndex()]->level()-1,
1595 ExcInternalError());
1596 const auto neighbor = element_[this->GetStateIndex()]->neighbor(
1598 const std::pair<unsigned int, unsigned int> faceno_subfaceno =
1599 element_[this->GetStateIndex()]->neighbor_of_coarser_neighbor(
1601 const unsigned int neighbor_face_no = faceno_subfaceno.first,
1602 neighbor_subface_no = faceno_subfaceno.second;
1603 state_hp_fe_subface_values_->reinit(neighbor, neighbor_face_no,
1604 neighbor_subface_no);
1605 nbr_state_hp_fe_values_ptr_ =
1606 &state_hp_fe_subface_values_->get_present_fe_values();
1607 if (this->GetControlIndex() < element_.size())
1609 const auto control_neighbor =
1610 element_[this->GetControlIndex()]->neighbor(this->GetFace());
1611 const std::pair<unsigned int, unsigned int> control_faceno_subfaceno =
1612 element_[this->GetControlIndex()]->neighbor_of_coarser_neighbor(
1614 const unsigned int control_neighbor_face_no =
1615 control_faceno_subfaceno.first, control_neighbor_subface_no =
1616 control_faceno_subfaceno.second;
1618 control_hp_fe_subface_values_->reinit(control_neighbor,
1619 control_neighbor_face_no, control_neighbor_subface_no);
1620 nbr_control_hp_fe_values_ptr_ =
1621 &control_hp_fe_subface_values_->get_present_fe_values();
1626 const auto neighbor_state = element_[this->GetStateIndex()]->neighbor(
1629 Assert(neighbor_state->level() == element_[this->GetStateIndex()]->level(),
1630 ExcInternalError());
1631 nbr_state_hp_fe_values_->reinit(neighbor_state,
1632 element_[this->GetStateIndex()]->neighbor_of_neighbor(
1634 nbr_state_hp_fe_values_ptr_ =
1635 &nbr_state_hp_fe_values_->get_present_fe_values();
1638 if (this->GetControlIndex() < element_.size())
1640 nbr_control_hp_fe_values_->reinit(
1641 element_[this->GetControlIndex()]->neighbor(this->GetFace()),
1642 element_[this->GetControlIndex()]->neighbor_of_neighbor(
1644 nbr_control_hp_fe_values_ptr_ =
1645 &nbr_control_hp_fe_values_->get_present_fe_values();
1652 template<
typename VECTOR,
int dim>
1656 return element_[0]->get_fe().dofs_per_cell;
1661 template<
typename VECTOR,
int dim>
1665 if (element_[0]->neighbor_index(this->GetFace()) != -1)
1666 return element_[0]->neighbor(this->GetFace())->get_fe().dofs_per_cell;
1669 "There is no neighbor with number" + this->GetFace(),
1670 "HpFaceDataContainer::GetNbrNDoFsPerElement");
1673 template<
typename VECTOR,
int dim>
1677 return q_collection_[element_[0]->active_fe_index()].size();
1681 template<
typename VECTOR,
int dim>
1685 if (element_[0]->neighbor_index(this->GetFace()) != -1)
1686 return q_collection_[element_[0]->neighbor(this->GetFace())->active_fe_index()].size();
1689 "There is no neighbor with number" + this->GetFace(),
1690 "HpFaceDataContainer::GetNbrNQPoints");
1694 template<
typename VECTOR,
int dim>
1698 return element_[0]->material_id();
1701 template<
typename VECTOR,
int dim>
1705 return this->GetNbrMaterialId(this->GetFace());
1710 template<
typename VECTOR,
int dim>
1713 unsigned int face)
const
1715 if (element_[0]->neighbor_index(face) != -1)
1716 return element_[0]->neighbor(face)->material_id();
1719 std::stringstream out;
1720 out <<
"There is no neighbor with number " << face;
1722 "HpFaceDataContainer::GetNbrMaterialId");
1728 template<
typename VECTOR,
int dim>
1732 return element_[0]->face(this->GetFace())->diameter();
1737 template<
typename VECTOR,
int dim>
1741 return element_[0]->face(this->GetFace())->at_boundary();
1745 template<
typename VECTOR,
int dim>
1749 #if DEAL_II_VERSION_GTE(8,3,0)
1750 return element_[0]->face(this->GetFace())->boundary_id();
1752 return element_[0]->face(this->GetFace())->boundary_indicator();
1757 template<
typename VECTOR,
int dim>
1758 const FEFaceValuesBase<dim>&
1761 return *state_hp_fe_values_ptr_;
1764 template<
typename VECTOR,
int dim>
1765 const FEFaceValuesBase<dim>&
1768 return *control_hp_fe_values_ptr_;
1771 template<
typename VECTOR,
int dim>
1772 const FEFaceValuesBase<dim>&
1775 return *nbr_state_hp_fe_values_ptr_;
1778 template<
typename VECTOR,
int dim>
1779 const FEFaceValuesBase<dim>&
1782 return *nbr_control_hp_fe_values_ptr_;
1786 template<
typename VECTOR,
int dim>
1790 return state_index_;
1793 template<
typename VECTOR,
int dim>
1795 FaceDataContainer<dealii::hp::DoFHandler, VECTOR, dim>::GetControlIndex()
const
1797 return control_index_;
Definition: fevalues_wrapper.h:136
~FaceDataContainer()
Definition: facedatacontainer.h:183
Definition: facedatacontainer_internal.h:46
FaceDataContainer(const Quadrature< dim-1 > &quad, UpdateFlags update_flags, StateSpaceTimeHandler< FE, dealii::DoFHandler, SPARSITYPATTERN, VECTOR, dim > &sth, const std::vector< typename DOpEWrapper::DoFHandler< dim, dealii::DoFHandler >::active_cell_iterator > &element, const std::map< std::string, const Vector< double > * > ¶m_values, const std::map< std::string, const VECTOR * > &domain_values, bool need_neighbour)
Definition: facedatacontainer.h:151
FaceDataContainer()
Definition: facedatacontainer.h:54
Definition: fevalues_wrapper.h:218
Definition: facedatacontainer.h:50
Definition: dofhandler_wrapper.h:51
Definition: statespacetimehandler.h:59
Definition: spacetimehandler.h:71
Definition: fevalues_wrapper.h:259
Definition: facedatacontainer.h:622
FaceDataContainer(const Quadrature< dim-1 > &quad, UpdateFlags update_flags, SpaceTimeHandler< FE, dealii::DoFHandler, SPARSITYPATTERN, VECTOR, dopedim, dealdim > &sth, const std::vector< typename DOpEWrapper::DoFHandler< dim, dealii::DoFHandler >::active_cell_iterator > &element, const std::map< std::string, const Vector< double > * > ¶m_values, const std::map< std::string, const VECTOR * > &domain_values, bool need_neighbour)
Definition: facedatacontainer.h:100
Definition: fevalues_wrapper.h:88
Definition: dopeexception.h:35