Reference documentation for deal.II version Git 4abc4a1666 2020-07-04 19:58:34 +0200
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Static Public Member Functions | Static Public Attributes | List of all members
GeometryInfo< 0 > Struct Template Reference

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

Static Public Member Functions

static std::array< unsigned int, 0 > face_indices ()
 
static unsigned int n_children (const RefinementCase< 0 > &refinement_case)
 
static std::array< unsigned int, vertices_per_cellvertex_indices ()
 

Static Public Attributes

static constexpr unsigned int max_children_per_cell = 1
 
static constexpr unsigned int faces_per_cell = 0
 
static constexpr unsigned int max_children_per_face = 0
 
static constexpr unsigned int vertices_per_cell = 1
 
static constexpr unsigned int vertices_per_face = 0
 
static constexpr unsigned int lines_per_face = 0
 
static constexpr unsigned int quads_per_face = 0
 
static constexpr unsigned int lines_per_cell = 0
 
static constexpr unsigned int quads_per_cell = 0
 
static constexpr unsigned int hexes_per_cell = 0
 
static const std::array< unsigned int, vertices_per_cellucd_to_deal = {{0}}
 
static const std::array< unsigned int, vertices_per_celldx_to_deal = {{0}}
 

Detailed Description

template<>
struct GeometryInfo< 0 >

Topological description of zero dimensional cells, i.e. points. This class might not look too useful but often is if in a certain dimension we would like to enquire information about objects with dimension one lower than the present, e.g. about faces.

This class contains as static members information on vertices and faces of a dim-dimensional grid cell. The interface is the same for all dimensions. If a value is of no use in a low dimensional cell, it is (correctly) set to zero, e.g. max_children_per_face in 1d.

This information should always replace hard-coded numbers of vertices, neighbors and so on, since it can be used dimension independently.

Definition at line 1232 of file geometry_info.h.

Member Function Documentation

◆ face_indices()

static std::array<unsigned int, 0> GeometryInfo< 0 >::face_indices ( )
static

Return an object that can be thought of as an array containing all indices from zero to faces_per_cell. This allows to write code using range-based for loops of the following kind:

for (auto &cell : triangulation.active_cell_iterators())
for (auto face_index : GeometryInfo<dim>::face_indices())
if (cell->face(face_index)->at_boundary())
... do something ...

Here, we are looping over all faces of all cells, with face_index taking on all valid indices.

Of course, since this class is for the case dim==0, the returned object is actually an empty array.

◆ n_children()

static unsigned int GeometryInfo< 0 >::n_children ( const RefinementCase< 0 > &  refinement_case)
static

Return the number of children of a cell (or face) refined with ref_case. Since we are concerned here with points, the number of children is equal to one.

◆ vertex_indices()

static std::array<unsigned int, vertices_per_cell> GeometryInfo< 0 >::vertex_indices ( )
static

Return an object that can be thought of as an array containing all indices from zero to vertices_per_cell. This allows to write code using range-based for loops of the following kind:

for (auto &cell : triangulation.active_cell_iterators())
for (auto vertex_index : GeometryInfo<dim>::vertex_indices())
if (cell->vertex(vertex_index) satisfies some condition)
... do something ...

Here, we are looping over all vertices of all cells, with vertex_index taking on all valid indices.

Of course, since this class is for the case dim==0, the returned object is a array with just one entry: zero. That's because an of dimension zero is really just a single point, corresponding to a vertex itself.

Member Data Documentation

◆ max_children_per_cell

constexpr unsigned int GeometryInfo< 0 >::max_children_per_cell = 1
static

Maximum number of children of a cell, i.e. the number of children of an isotropically refined cell.

If a cell is refined anisotropically, the actual number of children may be less than the value given here.

Definition at line 1241 of file geometry_info.h.

◆ faces_per_cell

constexpr unsigned int GeometryInfo< 0 >::faces_per_cell = 0
static

Number of faces a cell has.

Definition at line 1246 of file geometry_info.h.

◆ max_children_per_face

constexpr unsigned int GeometryInfo< 0 >::max_children_per_face = 0
static

Maximum number of children of a refined face, i.e. the number of children of an isotropically refined face.

If a cell is refined anisotropically, the actual number of children may be less than the value given here.

Definition at line 1274 of file geometry_info.h.

◆ vertices_per_cell

constexpr unsigned int GeometryInfo< 0 >::vertices_per_cell = 1
static

Number of vertices a cell has.

Definition at line 1287 of file geometry_info.h.

◆ vertices_per_face

constexpr unsigned int GeometryInfo< 0 >::vertices_per_face = 0
static

Number of vertices each face has. Since this is not useful in one dimension, we provide a useless number (in the hope that a compiler may warn when it sees constructs like for (i=0; i<vertices_per_face; ++i), at least if i is an unsigned int.

Definition at line 1316 of file geometry_info.h.

◆ lines_per_face

constexpr unsigned int GeometryInfo< 0 >::lines_per_face = 0
static

Number of lines each face has.

Definition at line 1321 of file geometry_info.h.

◆ quads_per_face

constexpr unsigned int GeometryInfo< 0 >::quads_per_face = 0
static

Number of quads on each face.

Definition at line 1326 of file geometry_info.h.

◆ lines_per_cell

constexpr unsigned int GeometryInfo< 0 >::lines_per_cell = 0
static

Number of lines of a cell.

Definition at line 1331 of file geometry_info.h.

◆ quads_per_cell

constexpr unsigned int GeometryInfo< 0 >::quads_per_cell = 0
static

Number of quadrilaterals of a cell.

Definition at line 1336 of file geometry_info.h.

◆ hexes_per_cell

constexpr unsigned int GeometryInfo< 0 >::hexes_per_cell = 0
static

Number of hexahedra of a cell.

Definition at line 1341 of file geometry_info.h.

◆ ucd_to_deal

const std::array< unsigned int, GeometryInfo< 0 >::vertices_per_cell > GeometryInfo< 0 >::ucd_to_deal = {{0}}
static

Rearrange vertices for UCD output. For a cell being written in UCD format, each entry in this field contains the number of a vertex in deal.II that corresponds to the UCD numbering at this location.

Typical example: write a cell and arrange the vertices, such that UCD understands them.

for (i=0; i< n_vertices; ++i)
out << cell->vertex(ucd_to_deal[i]);

As the vertex numbering in deal.II versions <= 5.1 happened to coincide with the UCD numbering, this field can also be used like a old_to_lexicographic mapping.

Definition at line 1360 of file geometry_info.h.

◆ dx_to_deal

const std::array< unsigned int, GeometryInfo< 0 >::vertices_per_cell > GeometryInfo< 0 >::dx_to_deal = {{0}}
static

Rearrange vertices for OpenDX output. For a cell being written in OpenDX format, each entry in this field contains the number of a vertex in deal.II that corresponds to the DX numbering at this location.

Typical example: write a cell and arrange the vertices, such that OpenDX understands them.

for (i=0; i< n_vertices; ++i)
out << cell->vertex(dx_to_deal[i]);

Definition at line 1375 of file geometry_info.h.


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