54 boost::container::small_vector<
Point<2>, 200> &a)
const
56 const unsigned int dim = 2;
57 const std::array<double, 2> interior_gl_points{
63 for (
unsigned int line_no = 0; line_no < GeometryInfo<dim>::lines_per_cell;
68 if (line->at_boundary())
101 line->vertex(1) - line->vertex(0);
102 const double h =
std::sqrt(coordinate_vector * coordinate_vector);
104 coordinate_axis /= h;
107 std::atan2(coordinate_axis[1], coordinate_axis[0]);
108 const double c = -((face_vertex_normals[0][1] *
std::sin(alpha) +
109 face_vertex_normals[0][0] *
std::cos(alpha)) /
110 (face_vertex_normals[0][1] *
std::cos(alpha) -
111 face_vertex_normals[0][0] *
std::sin(alpha)));
112 const double b = ((face_vertex_normals[1][1] *
std::sin(alpha) +
113 face_vertex_normals[1][0] *
std::cos(alpha)) /
114 (face_vertex_normals[1][1] *
std::cos(alpha) -
115 face_vertex_normals[1][0] *
std::sin(alpha))) -
118 const double t1 = interior_gl_points[0];
119 const double t2 = interior_gl_points[1];
120 const double s_t1 = (((-b - c) * t1 + b) * t1 + c) * t1;
121 const double s_t2 = (((-b - c) * t2 + b) * t2 + c) * t2;
129 for (
const auto &new_unit_point : new_unit_points)
132 std::sin(alpha) * new_unit_point[1],
133 std::sin(alpha) * new_unit_point[0] +
134 std::cos(alpha) * new_unit_point[1]);
136 real_point += line->vertex(0);
137 a.push_back(real_point);
146 a.push_back((1.0 - interior_gl_points[0]) * line->vertex(0) +
147 (interior_gl_points[0] * line->vertex(1)));
148 a.push_back((1.0 - interior_gl_points[1]) * line->vertex(0) +
149 (interior_gl_points[1] * line->vertex(1)));