* Initialize the given triangulation with a hyper-L (in 2d or 3d)
* consisting of exactly <tt>2^dim-1</tt> cells. It produces the hypercube
* with the interval [<i>left,right</i>] without the hypercube made out of
- * the interval [<i>(left+right)/2,right</i>] for each coordinate. All
- * faces will have boundary indicator 0. This function will create the
- * classical L-shape in 2d and it will look like the following in 3d:
+ * the interval [<i>(left+right)/2,right</i>] for each coordinate. If the
+ * @p colorize flag is set, the @p boundary_ids of the surfaces are
+ * assigned, such that the left boundary is 0, and the others are set with
+ * growing number accordingly to the counterclockwise. This function will
+ * create the classical L-shape in 2d and it will look like the following
+ * in 3d:
*
* @image html hyper_l.png
*
template <int dim>
void hyper_L (Triangulation<dim> &tria,
const double left = -1.,
- const double right= 1.);
+ const double right= 1.,
+ const bool colorize = false);
/**
* Initialize the given Triangulation with a hypercube with a slit. In each
-//TODO: Colorize edges as circumference, left and right radius
// Implementation for 2D only
template <>
void
tria.create_triangulation (
std::vector<Point<2> >(&vertices[0], &vertices[8]),
cells,
- SubCellData()); // no boundary information
+ SubCellData());
if (colorize)
{
hyper_L (Triangulation<3> &tria,
const double a,
const double b,
- const bool)
+ const bool colorize)
{
// we slice out the top back right
// part of the cube
std::vector<Point<3> >(&vertices[0], &vertices[26]),
cells,
SubCellData()); // no boundary information
+
+ if (colorize)
+ {
+ Assert (false, ExcNotImplemented());
+ }
}