Cell.h¶
Note
The documentation on this page was automatically extracted from the DOLFIN C++ code and may need to be edited or expanded.
-
class
Cell¶ Parent class(es)
A Cell is a
MeshEntityof topological codimension 0.-
Cell()¶ Create empty cell
-
Cell(const Mesh &mesh, std::size_t index)¶ Create cell on given mesh with given index
- Arguments
- mesh (
Mesh) - The mesh.
- index (std::size_t)
- The index.
- mesh (
-
std::size_t
num_vertices() const¶ Return number of vertices of cell
-
std::size_t
orientation() const¶ Compute orientation of cell
- Returns
- std::size_t
- Orientation of the cell (0 is ‘up’/’right’, 1 is ‘down’/’left’)
-
std::size_t
orientation(const Point &up) const¶ Compute orientation of cell relative to given ‘up’ direction
- Arguments
- up (
Point) - The direction defined as ‘up’
- up (
- Returns
- std::size_t
- Orientation of the cell (0 is ‘same’, 1 is ‘opposite’)
-
double
volume() const¶ Compute (generalized) volume of cell
- Returns
- double
- The volume of the cell.
- Example
UnitSquare mesh(1, 1); Cell cell(mesh, 0); info("%g", cell.volume());
output:
0.5
-
double
h() const¶ Compute greatest distance between any two vertices
- Returns
- double
- The greatest distance between any two vertices of the cell.
- Example
UnitSquareMesh mesh(1, 1); Cell cell(mesh, 0); info("%g", cell.h());
output:
1.41421
-
double
diameter() const¶ Compute diameter of cell (deprecated)
- Returns
- double
- The diameter of the cell.
- Example
UnitSquareMesh mesh(1, 1); Cell cell(mesh, 0); info("%g", cell.diameter());
output:
1.41421
-
double
circumradius() const¶ Compute circumradius of cell
- Returns
- double
- The circumradius of the cell.
- Example
UnitSquareMesh mesh(1, 1); Cell cell(mesh, 0); info("%g", cell.circumradius());
output:
0.707106
-
double
inradius() const¶ Compute inradius of cell
- Returns
- double
- Radius of the sphere inscribed in the cell.
- Example
UnitSquareMesh mesh(1, 1); Cell cell(mesh, 0); info("%g", cell.inradius());
output:
0.29289
-
double
radius_ratio() const¶ Compute ratio of inradius to circumradius times dim for cell. Useful as cell quality measure. Returns 1. for equilateral and 0. for degenerate cell. See Jonathan Richard Shewchuk: What Is a Good Linear Finite Element?, online: http://www.cs.berkeley.edu/~jrs/papers/elemj.pdf
- Returns
- double
- topological_dimension * inradius / circumradius
- Example
UnitSquareMesh mesh(1, 1); Cell cell(mesh, 0); info("%g", cell.radius_ratio());
output:
0.828427
-
double
squared_distance(const Point &point) const¶ Compute squared distance to given point.
- Arguments
- point (
Point) - The point.
- point (
- Returns
- double
- The squared distance to the point.
-
double
distance(const Point &point) const¶ Compute distance to given point.
- Arguments
- point (
Point) - The point.
- point (
- Returns
- double
- The distance to the point.
-
double
normal(std::size_t facet, std::size_t i) const¶ Compute component i of normal of given facet with respect to the cell
- Arguments
- facet (std::size_t)
- Index of facet.
- i (std::size_t)
- Component.
- Returns
- double
- Component i of the normal of the facet.
-
Point
normal(std::size_t facet) const¶ Compute normal of given facet with respect to the cell
- Arguments
- facet (std::size_t)
- Index of facet.
- Returns
Point- Normal of the facet.
-
Point
cell_normal() const¶ Compute normal to cell itself (viewed as embedded in 3D)
- Returns
Point- Normal of the cell
-
double
facet_area(std::size_t facet) const¶ Compute the area/length of given facet with respect to the cell
- Arguments
- facet (std::size_t)
- Index of the facet.
- Returns
- double
- Area/length of the facet.
-
void
order(const std::vector<std::size_t> &local_to_global_vertex_indices)¶ Order entities locally
- Arguments
- global_vertex_indices (_std::vector<std::size_t>_)
- The global vertex indices.
-
bool
ordered(const std::vector<std::size_t> &local_to_global_vertex_indices) const¶ Check if entities are ordered
- Arguments
- global_vertex_indices (_std::vector<std::size_t>)
- The global vertex indices.
- Returns
- bool
- True iff ordered.
-
bool
contains(const Point &point) const¶ Check whether given point is contained in cell. This function is identical to the function collides(point).
- Arguments
- point (
Point) - The point to be checked.
- point (
- Returns
- bool
- True iff point is contained in cell.
-
bool
collides(const Point &point) const¶ Check whether given point collides with cell
- Arguments
- point (
Point) - The point to be checked.
- point (
- Returns
- bool
- True iff point collides with cell.
-
bool
collides(const MeshEntity &entity) const¶ Check whether given entity collides with cell
- Arguments
- entity (
MeshEntity) - The cell to be checked.
- entity (
- Returns
- bool
- True iff entity collides with cell.
-
std::vector<double>
triangulate_intersection(const MeshEntity &entity) const¶ Compute triangulation of intersection with given entity
- Arguments
- entity (
MeshEntity) - The entity with which to intersect.
- entity (
- Returns
- std::vector<double>
- A flattened array of simplices of dimension num_simplices x num_vertices x gdim = num_simplices x (tdim + 1) x gdim
-
void
get_coordinate_dofs(std::vector<double> &coordinates) const¶ Get cell coordinate dofs (not vertex coordinates)
-
void
get_vertex_coordinates(std::vector<double> &coordinates) const¶ Get cell vertex coordinates (not coordinate dofs)
-
void
get_cell_data(ufc::cell &ufc_cell, int local_facet = -1) const¶ Fill UFC cell with miscellaneous data
-
void
get_cell_topology(ufc::cell &ufc_cell) const¶ Fill UFC cell with topology data
-
-
class
CellFunction¶ Parent class(es)
MeshFunction
A CellFunction is a MeshFunction of topological codimension 0.