DOLFIN
DOLFIN C++ interface
|
#include <CellType.h>
Public Types | |
enum | Type : int { point, interval, triangle, quadrilateral, tetrahedron, hexahedron } |
Enum for different cell types. | |
Public Member Functions | |
CellType (Type cell_type, Type facet_type) | |
Constructor. | |
virtual | ~CellType () |
Destructor. | |
Type | cell_type () const |
Return type of cell. | |
Type | facet_type () const |
Return type of cell for facets. | |
Type | entity_type (std::size_t i) const |
Return type of cell for entity of dimension i. | |
virtual bool | is_simplex () const =0 |
Check if cell is a simplex. | |
virtual std::size_t | dim () const =0 |
Return topological dimension of cell. | |
virtual std::size_t | num_entities (std::size_t dim) const =0 |
Return number of entities of given topological dimension. | |
std::size_t | num_vertices () const |
Return number of vertices for cell. | |
virtual std::size_t | num_vertices (std::size_t dim) const =0 |
Return number of vertices for entity of given topological dimension. | |
virtual std::size_t | orientation (const Cell &cell) const =0 |
Return orientation of the cell (assuming flat space) | |
std::size_t | orientation (const Cell &cell, const Point &up) const |
Return orientation of the cell relative to given up direction. | |
virtual void | create_entities (boost::multi_array< unsigned int, 2 > &e, std::size_t dim, const unsigned int *v) const =0 |
virtual double | volume (const MeshEntity &entity) const =0 |
Compute (generalized) volume of mesh entity. | |
virtual double | h (const MeshEntity &entity) const |
Compute greatest distance between any two vertices. | |
virtual double | circumradius (const MeshEntity &entity) const =0 |
Compute circumradius of mesh entity. | |
virtual double | inradius (const Cell &cell) const |
Compute inradius of cell. | |
virtual double | radius_ratio (const Cell &cell) const |
Compute dim*inradius/circumradius for given cell. | |
virtual double | squared_distance (const Cell &cell, const Point &point) const =0 |
Compute squared distance to given point. | |
virtual double | normal (const Cell &cell, std::size_t facet, std::size_t i) const =0 |
Compute component i of normal of given facet with respect to the cell. | |
virtual Point | normal (const Cell &cell, std::size_t facet) const =0 |
Compute of given facet with respect to the cell. | |
virtual Point | cell_normal (const Cell &cell) const =0 |
Compute normal to given cell (viewed as embedded in 3D) | |
virtual double | facet_area (const Cell &cell, std::size_t facet) const =0 |
Compute the area/length of given facet with respect to the cell. | |
virtual void | order (Cell &cell, const std::vector< std::int64_t > &local_to_global_vertex_indices) const =0 |
Order entities locally. | |
bool | ordered (const Cell &cell, const std::vector< std::int64_t > &local_to_global_vertex_indices) const |
Check if entities are ordered. | |
virtual bool | collides (const Cell &cell, const Point &point) const =0 |
Check whether given point collides with cell. | |
virtual bool | collides (const Cell &cell, const MeshEntity &entity) const =0 |
Check whether given entity collides with cell. | |
virtual std::string | description (bool plural) const =0 |
Return description of cell type. | |
virtual std::vector< std::int8_t > | vtk_mapping () const =0 |
Mapping of DOLFIN/UFC vertex ordering to VTK/XDMF ordering. | |
Static Public Member Functions | |
static CellType * | create (Type type) |
Create cell type from type (factory function) | |
static CellType * | create (std::string type) |
Create cell type from string (factory function) | |
static Type | string2type (std::string type) |
Convert from string to cell type. | |
static std::string | type2string (Type type) |
Convert from cell type to string. | |
Static Protected Member Functions | |
static void | sort_entities (std::size_t num_vertices, unsigned int *vertices, const std::vector< std::int64_t > &local_to_global_vertex_indices) |
Sort vertices based on global entity indices. | |
Protected Attributes | |
Type | _cell_type |
Type | _facet_type |
This class provides a common interface for different cell types. Each cell type implements mesh functionality that is specific to a certain type of cell.
|
pure virtual |
Create entities e of given topological dimension from vertices v
Implemented in dolfin::IntervalCell, dolfin::TetrahedronCell, dolfin::PointCell, dolfin::TriangleCell, dolfin::HexahedronCell, and dolfin::QuadrilateralCell.