21 inline std::array<SimplexId, 3>
const &
23 return this->vertexCoords_[v];
26 return this->edgePositions_[e];
28 inline std::array<SimplexId, 3>
const &
30 return this->edgeCoords_[e];
33 return this->trianglePositions_[t];
35 inline std::array<SimplexId, 3>
const &
37 return this->triangleCoords_[t];
39 inline std::array<SimplexId, 3>
const &
41 return this->tetrahedronCoords_[t];
44 return this->edgeVertexAccelerated_[e];
48 vertexCoords_ = std::vector<std::array<SimplexId, 3>>{};
49 edgePositions_ = std::vector<EdgePosition>{};
50 edgeCoords_ = std::vector<std::array<SimplexId, 3>>{};
51 trianglePositions_ = std::vector<TrianglePosition>{};
52 triangleCoords_ = std::vector<std::array<SimplexId, 3>>{};
53 tetrahedronCoords_ = std::vector<std::array<SimplexId, 3>>{};
54 edgeVertexAccelerated_ = std::vector<SimplexId>{};
61 std::vector<std::array<SimplexId, 3>> vertexCoords_{};
63 std::vector<EdgePosition> edgePositions_{};
65 std::vector<std::array<SimplexId, 3>> edgeCoords_{};
67 std::vector<TrianglePosition> trianglePositions_{};
69 std::vector<std::array<SimplexId, 3>> triangleCoords_{};
71 std::vector<std::array<SimplexId, 3>> tetrahedronCoords_{};
74 std::vector<SimplexId> edgeVertexAccelerated_{};
101 std::array<SimplexId, 3> p{};
115 inline std::array<SimplexId, 3>
117 std::array<SimplexId, 3> p{};
125 return (p[1] << this->
div_[0]) + (p[2] << this->
div_[1]);
void setDebugMsgPrefix(const std::string &prefix)
bool hasPreconditionedVerticesAndCells_
Periodic implicit Triangulation class without preconditioning.
int preconditionVerticesInternal() override
EdgePosition getEdgePosition(const SimplexId e) const
int preconditionTetrahedronsInternal() override
std::array< SimplexId, 3 > getEdgeCoords(const SimplexId e) const
std::array< SimplexId, 3 > getVertexCoords(const SimplexId v) const
int preconditionTrianglesInternal() override
TrianglePosition getTrianglePosition(const SimplexId t) const
SimplexId getEdgeVertexAccelerated(const SimplexId e) const
int preconditionEdgesInternal() override
PeriodicNoPreconditions()
std::array< SimplexId, 3 > getTriangleCoords(const SimplexId t) const
std::array< SimplexId, 3 > getTetrahedronCoords(const SimplexId t) const
Periodic implicit Triangulation class with preconditioning.
int preconditionEdgesInternal() override
TrianglePosition getTrianglePosition(const SimplexId t) const
std::array< SimplexId, 3 > const & getTetrahedronCoords(const SimplexId t) const
int preconditionVerticesInternal() override
EdgePosition getEdgePosition(const SimplexId e) const
std::array< SimplexId, 3 > const & getEdgeCoords(const SimplexId e) const
int preconditionTrianglesInternal() override
int preconditionTetrahedronsInternal() override
SimplexId getEdgeVertexAccelerated(const SimplexId e) const
std::array< SimplexId, 3 > const & getVertexCoords(const SimplexId v) const
PeriodicWithPreconditions()
std::array< SimplexId, 3 > const & getTriangleCoords(const SimplexId t) const
virtual void tetrahedronToPosition(const SimplexId tetrahedron, SimplexId p[3]) const =0
virtual void vertexToPosition(const SimplexId vertex, SimplexId p[3]) const =0
virtual void vertexToPosition2d(const SimplexId vertex, SimplexId p[2]) const =0
int SimplexId
Identifier type for simplices of any dimension.