12 namespace GridGenerator
26 template <
int dim,
int spacedim,
template <
int,
int>
class Triangulation>
27 void wall(Triangulation<dim, spacedim> &,
32 AssertThrow(
false, dealii::ExcNotImplemented());
38 template <
template <
int,
int>
class Triangulation>
39 void wall(Triangulation<2, 2> &triangulation,
42 const double wall_position)
44 using namespace dealii;
46 dealii::Triangulation<2, 2> tria1, tria2, tria3;
47 tria3.set_mesh_smoothing(triangulation.get_mesh_smoothing());
49 GridGenerator::subdivided_hyper_rectangle(
50 tria1, {18, 6}, Point<2>(wall_position, 0), Point<2>(length, height));
52 GridGenerator::subdivided_hyper_rectangle(
53 tria2, {1, 6}, Point<2>(0., 0.), Point<2>(wall_position, height));
55 GridGenerator::merge_triangulations(tria1, tria2, tria3);
57 triangulation.copy_triangulation(tria3);
63 for (
auto cell : triangulation.active_cell_iterators()) {
64 for (
auto f : cell->face_indices()) {
65 const auto face = cell->face(f);
67 if (!face->at_boundary())
76 const auto center = face->center();
78 if (center[0] > wall_position && center[1] < 1.e-6) {
81 }
else if (center[0] > length - 1.e-6) {
108 Wall(
const std::string subsection)
113 "length", length_,
"length of computational domain");
117 "height", height_,
"height of computational domain");
119 wall_position_ = 1. / 6.;
121 "wall position", wall_position_,
"x position of wall");
133 double wall_position_;
void create_triangulation(typename Geometry< dim >::Triangulation &triangulation) final
Wall(const std::string subsection)
typename Discretization< dim >::Triangulation Triangulation
void wall(Triangulation< dim, spacedim > &, const double, const double, const double)