DOLFIN
DOLFIN C++ interface
Public Types | Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
dolfin::CellType Class Referenceabstract

#include <CellType.h>

Inheritance diagram for dolfin::CellType:
Inheritance graph
[legend]

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 CellTypecreate (Type type)
 Create cell type from type (factory function)
 
static CellTypecreate (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
 

Detailed Description

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.

Member Function Documentation

virtual void dolfin::CellType::create_entities ( boost::multi_array< unsigned int, 2 > &  e,
std::size_t  dim,
const unsigned int *  v 
) const
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.


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