8#ifndef model_Simplex_H_
9#define model_Simplex_H_
33 template<
short int dim>
34 class Simplex<
dim,0> :
47 const Eigen::Matrix<double,dim,1>
P0;
54 : Simplex(factory->
mesh,id)
59 const Eigen::Matrix<double,dim,1>&
center()
const
68 Eigen::Matrix<double,dim,1>
outNormal()
const;
69 Eigen::Matrix<double,dim,1>
outNormal(
const size_t& rID)
const;
74 template<
short int dim,
short int order>
103 : Simplex(factory->
mesh,id)
115 std::set<const Simplex<dim,order>*>
spouses()
const;
119 Eigen::Matrix<double,dim,1>
outNormal(
const size_t& rID)
const;
125 template<
short int dim>
133 const Eigen::Matrix<double,dim,dim+1> get_nda()
const;
150 const std::shared_ptr<MeshRegionType>
region;
153 const Eigen::Matrix<double,dim+1,dim+1>
p2b;
156 const Eigen::Matrix<double,dim,dim+1>
nda;
165 : Simplex(factory->
mesh,id,regionID)
179 Eigen::Matrix<double,dim+1,1> pos2bary(
const Eigen::Matrix<double,dim,1>& P)
const;
180 void convexDelaunaynSearch(
const bool& searchAllRegions,
181 const Eigen::Matrix<double,dim,1>& P,
184 Eigen::Matrix<double,dim+1,1> faceLineIntersection(
const Eigen::Matrix<double,dim+1,1>& bary0,
185 const Eigen::Matrix<double,dim+1,1>& bary1,
186 const int& faceID)
const;
SimplexTraits< dim, order >::SimplexIDType SimplexIDType
const Eigen::Matrix< double, dim, 1 > & center() const
std::set< const Simplex< dim, 0 > * > regionBoundaryNeighbors() const
const Eigen::Matrix< double, dim, 1 > P0
Polyhedron< dim, dim > MeshRegionType
SimplexTraits< dim, order >::SimplexIDType SimplexIDType
Simplex< dim, order-1 > ChildSimplexType
SimplexTraits< dim, order-1 >::SimplexIDType ChildIDType
const std::shared_ptr< MeshRegionType > region
Shared pointer to MeshRegioin containing *this.
const Eigen::Matrix< double, dim, dim+1 > nda
The column matrix of face normals.
const Eigen::Matrix< double, dim+1, dim+1 > p2b
The position to barycentric-coordinate transformation matrix.
bool isBoundarySimplex() const
bool isRegionBoundarySimplex() const
std::set< size_t > regionIDs() const
static constexpr int nVertices
Eigen::Matrix< double, dim, 1 > outNormal() const
static constexpr int nFaces
std::set< const Simplex< dim, order > * > boundaryNeighbors() const
Eigen::Matrix< double, dim, 1 > outNormal(const size_t &rID) const
Simplex< dim, order-1 > ChildSimplexType
std::set< const Simplex< dim, order > * > regionBoundaryNeighbors() const
size_t childOrder(const ChildIDType &childID) const
SimplexTraits< dim, order >::SimplexIDType SimplexIDType
SimplexTraits< dim, order-1 >::SimplexIDType ChildIDType
std::set< const Simplex< dim, order > * > spouses() const
std::vector< int > boundaryFaces() const
SimplexBase(SimplicialMesh< dim > *const m, const SimplexIDType &vIN)
static constexpr short int dim
SimplicialMesh< dim > *const mesh
SimplexParent(SimplicialMesh< dim > *const mesh, const SimplexIDType &xID)
std::array< std::shared_ptr< Simplex< dim, order-1 > >, nFaces > BaseArrayType
static constexpr int nFaces
static constexpr int nVertices
SimplexID< nVertices > SimplexIDType