run the program.
An alternative way to change the boundary indicator is to label
- the boundaries by the cartesian coordinates of the face centers.
+ the boundaries based on the Cartesian coordinates of the face centers.
For example, we can label all of the cells along the top and
bottom boundaries with a boundary indicator 1 by checking to
see if the cell centers' y-coordinates are within a tolerance
(here 1e-12) of -1 and 1. Try this immediately after calling
- <code>GridGenerator::hyper_cube</code>, as before:
+ GridGenerator::hyper_cube(), as before:
@code
for (const auto &cell : dof_handler.active_cell_iterators())
{
for (unsigned int face_number = 0;
face_number < GeometryInfo<2>::faces_per_cell;
++face_number)
- if ((std::fabs(cell->face(face_number)->center()(1) - (-1)) <
+ if ((std::fabs(cell->face(face_number)->center()(1) - (-1.0)) <
1e-12) ||
- (std::fabs(cell->face(face_number)->center()(1) - (1)) < 1e-12))
+ (std::fabs(cell->face(face_number)->center()(1) - (1.0)) < 1e-12))
cell->face(face_number)->set_boundary_id(1);
}
@code