Reference documentation for deal.II version 9.3.3
internal::SubfacePossibilities< 3 > Struct Reference

#include <deal.II/base/geometry_info.h>

## Public Types

enum  Possibilities {
case_none = 0 , case_x = 1 , case_x1y = 2 , case_x2y = 3 ,
case_x1y2y = 4 , case_y = 5 , case_y1x = 6 , case_y2x = 7 ,
case_y1x2x = 8 , case_xy = 9 , case_isotropic = case_xy
}

## Detailed Description

A class that provides all possible situations a face (in the current space dimension dim) might be subdivided into subfaces.

This specialization is used for dim=3, where it offers following possibilities: a face (quad) being refined in x- or y-direction (in the face-intern coordinate system) separately, (case_x or (case_y), and in both directions (case_x which corresponds to (case_isotropic). Additionally, it offers the possibilities a face can have through repeated anisotropic refinement steps performed on one of the two neighboring cells. It might be possible for example, that a face (quad) is refined with cut_x and afterwards the left child is again refined with cut_y, so that there are three active subfaces. Note, however, that only refinement cases are allowed such that each line on a face between two hexes has not more than one hanging node. Furthermore, it is not allowed that two neighboring hexes are refined such that one of the hexes refines the common face with cut_x and the other hex refines that face with cut_y. In fact, Triangulation::prepare_coarsening_and_refinement takes care of this situation and ensures that each face of a refined cell is completely contained in a single face of neighboring cells.

The following drawings explain the SubfacePossibilities and give the corresponding subface numbers:

*-------*
| |
| 0 | case_none
| |
*-------*
*---*---*
| | |
| 0 | 1 | case_x
| | |
*---*---*
*---*---*
| 1 | |
*---* 2 | case_x1y
| 0 | |
*---*---*
*---*---*
| | 2 |
| 0 *---* case_x2y
| | 1 |
*---*---*
*---*---*
| 1 | 3 |
*---*---* case_x1y2y (successive refinement: first cut_x, then cut_y for both children)
| 0 | 2 |
*---*---*
*-------*
| 1 |
*-------* case_y
| 0 |
*-------*
*-------*
| 2 |
*---*---* case_y1x
| 0 | 1 |
*---*---*
*---*---*
| 1 | 2 |
*---*---* case_y2x
| 0 |
*-------*
*---*---*
| 2 | 3 |
*---*---* case_y1x2x (successive refinement: first cut_y, then cut_x for both children)
| 0 | 1 |
*---+---*
*---*---*
| 2 | 3 |
*---*---* case_xy (one isotropic refinement step)
| 0 | 1 |
*---*---*
Point< 2 > first
Definition: grid_out.cc:4587
static const types::blas_int one

Definition at line 1127 of file geometry_info.h.

## ◆ Possibilities

 enum internal::SubfacePossibilities< 3 >::Possibilities

Possible cases of faces being subdivided into subface.

See documentation to the SubfacePossibilities<3> for more details on the subface possibilities.

Enumerator
case_none
case_x
case_x1y
case_x2y
case_x1y2y
case_y
case_y1x
case_y2x
case_y1x2x
case_xy
case_isotropic

Definition at line 1135 of file geometry_info.h.

The documentation for this struct was generated from the following file: