16 #ifndef parsed_tools_grid_info_h
17 #define parsed_tools_grid_info_h
38 using T = dealii::types::manifold_id;
44 static std::unique_ptr<dealii::Patterns::PatternBase>
59 const dealii::Patterns::PatternBase &pattern =
60 *Convert<T>::to_pattern())
62 return Convert<int>::to_string(
static_cast<int>(t), pattern);
74 const dealii::Patterns::PatternBase &pattern =
75 *Convert<T>::to_pattern())
77 return T(Convert<int>::to_value(s, pattern));
89 using T = dealii::ReferenceCell;
95 static std::unique_ptr<dealii::Patterns::PatternBase>
98 return Convert<int>::to_pattern();
110 const dealii::Patterns::PatternBase &pattern =
111 *Convert<T>::to_pattern())
113 return Convert<int>::to_string(t, pattern);
126 const dealii::Patterns::PatternBase &pattern =
127 *Convert<T>::to_pattern())
129 return dealii::internal::make_reference_cell_from_int(
130 Convert<int>::to_value(s, pattern));
168 template <
int dim,
int spacedim>
169 GridInfo(
const dealii::Triangulation<dim, spacedim> &tria,
181 template <
int dim,
int spacedim>
193 for (
unsigned int i = 0; i <
n_levels; ++i)
205 std::set<dealii::types::material_id> m_ids;
206 for (
const auto &cell : tria.active_cell_iterators())
207 m_ids.insert(cell->material_id());
228 for (
const auto &cell : tria.active_cell_iterators())
235 for (
const auto &f : tria.active_face_iterators())
237 if (f->at_boundary())
249 template <
typename StreamType>
256 <<
"Levels : " <<
n_levels << std::endl;
259 out <<
"Active cells/level : "
268 out <<
"Boundary ids : "
269 << dealii::Patterns::Tools::to_string(
boundary_ids) << std::endl
271 << dealii::Patterns::Tools::to_string(
manifold_ids) << std::endl
273 << dealii::Patterns::Tools::to_string(
material_ids) << std::endl
274 <<
"Reference cell types : "
280 out <<
"Boundary id:n_faces : "
283 <<
"Material id:n_cells : "
286 <<
"Manifold id:n_faces : "
289 <<
"Manifold id:n_cells : "
292 <<
"Reference cell type:n_cells : "
293 << dealii::Patterns::Tools::to_string(
virtual std::unique_ptr< PatternBase > clone() const override