8#include <compile_time_options.h>
14 namespace GridGenerator
28 template <
int dim,
int spacedim,
template <
int,
int>
class Triangulation>
29 void wall(Triangulation<dim, spacedim> &,
34 AssertThrow(
false, dealii::ExcNotImplemented());
40 template <
template <
int,
int>
class Triangulation>
41 void wall(Triangulation<2, 2> &triangulation,
44 const double wall_position)
46 using namespace dealii;
48 dealii::Triangulation<2, 2> tria1, tria2, tria3;
49 tria3.set_mesh_smoothing(triangulation.get_mesh_smoothing());
51 GridGenerator::subdivided_hyper_rectangle(
52 tria1, {18, 6}, Point<2>(wall_position, 0), Point<2>(length, height));
54 GridGenerator::subdivided_hyper_rectangle(
55 tria2, {1, 6}, Point<2>(0., 0.), Point<2>(wall_position, height));
57 GridGenerator::merge_triangulations(tria1, tria2, tria3);
59 triangulation.copy_triangulation(tria3);
65 for (
auto cell : triangulation.active_cell_iterators()) {
66 for (
auto f : cell->face_indices()) {
67 const auto face = cell->face(f);
69 if (!face->at_boundary())
78 const auto center = face->center();
80 if (center[0] > wall_position && center[1] < 1.e-6) {
83 }
else if (center[0] > length - 1.e-6) {
110 Wall(
const std::string subsection)
115 "length", length_,
"length of computational domain");
119 "height", height_,
"height of computational domain");
121 wall_position_ = 1. / 6.;
123 "wall position", wall_position_,
"x position of wall");
127 typename dealii::Triangulation<dim> &triangulation)
final
135 double wall_position_;
void create_triangulation(typename dealii::Triangulation< dim > &triangulation) final
Wall(const std::string subsection)
void wall(Triangulation< dim, spacedim > &, const double, const double, const double)