|
CDT++
Causal Dynamical Triangulations in C++
|
3D Foliated triangulation More...
#include <Foliated_triangulation.hpp>
Collaboration diagram for foliated_triangulations::FoliatedTriangulation< 3 >:Public Member Functions | |
| FoliatedTriangulation ()=default | |
| Default ctor. | |
| FoliatedTriangulation (Causal_vertices_t< 3 > const &causal_vertices, double const t_initial_radius=INITIAL_RADIUS, double const t_foliation_spacing=FOLIATION_SPACING) | |
| Constructor from Causal_vertices. | |
| FoliatedTriangulation (Delaunay triangulation, double const initial_radius=INITIAL_RADIUS, double const foliation_spacing=FOLIATION_SPACING) | |
| Constructor using delaunay triangulation Pass-by-value-then-move. Delaunay is the ctor for the Delaunay triangulation. | |
| FoliatedTriangulation (FoliatedTriangulation &&other) noexcept | |
| Move ctor. | |
| FoliatedTriangulation (FoliatedTriangulation const &other) noexcept | |
| Copy Constructor. | |
| FoliatedTriangulation (Int_precision const t_simplices, Int_precision const t_timeslices, double const t_initial_radius=INITIAL_RADIUS, double const t_foliation_spacing=FOLIATION_SPACING) | |
| Constructor with parameters. | |
| ~FoliatedTriangulation ()=default | |
| Default dtor. | |
| auto | check_all_cells () const -> bool |
| Check that all cells are correctly classified. | |
| auto | check_all_vertices () const -> bool |
| template<typename VertexHandle > | |
| auto | degree (VertexHandle &&t_vertex) const |
| Perfect forwarding to TriangulationDataStructure_3::degree. | |
| auto | delaunay () -> Delaunay & |
| auto | dimension () const |
| auto | does_vertex_radius_match_timevalue (Vertex_handle_t< 3 > const t_vertex) const -> bool |
| Check the radius of a vertex from the origin with its timevalue. | |
| auto | expected_radius (Vertex_handle_t< 3 > const &t_vertex) const -> double |
| Calculates the expected radial distance of a vertex. | |
| auto | expected_timevalue (Vertex_handle_t< 3 > const &t_vertex) const -> int |
| Calculate the expected timevalue for a vertex. | |
| auto | find_incorrect_vertices () const |
| auto | fix_cells () const -> bool |
| Fix all cells in the triangulation. | |
| auto | fix_vertices () const -> bool |
| Fix vertices with wrong timevalues after foliation. | |
| template<typename... Ts> | |
| auto | flip (Ts &&... args) |
| Call one of the TSD3.flip functions. | |
| auto | foliation_spacing () const |
| auto | get_cells () const -> Cell_container const & |
| auto | get_delaunay () const -> Delaunay const & |
| auto | get_one_three () const noexcept -> Cell_container const & |
| auto | get_spacelike_edges () const -> Edge_container const & |
| auto | get_three_one () const noexcept -> std::span< Cell_handle const > |
| auto | get_timelike_edges () const noexcept -> Edge_container const & |
| auto | get_two_two () const noexcept -> Cell_container const & |
| auto | get_vertices () const noexcept -> Vertex_container const & |
| auto | get_vertices_span () const noexcept -> std::span< Vertex_handle const > |
| template<typename... Ts> | |
| auto | incident_cells (Ts &&... args) const noexcept -> decltype(auto) |
| Perfect forwarding to TriangulationDataStructure_3::incident_cells. | |
| template<typename VertexHandle > | |
| auto | incident_cells (VertexHandle &&t_vh) const noexcept -> decltype(auto) |
| Perfect forwarding to TriangulationDataStructure_3::incident_cells. | |
| auto | infinite_vertex () const |
| auto | initial_radius () const |
| auto | is_correct () const -> bool |
| auto | is_delaunay () const -> bool |
| auto | is_fixed () -> bool |
| auto | is_foliated () const -> bool |
| Verifies the triangulation is properly foliated. | |
| template<typename VertexHandle > | |
| auto | is_infinite (VertexHandle &&t_vertex) const |
| auto | is_initialized () const -> bool |
| auto | is_tds_valid () const -> bool |
| auto | max_time () const |
| auto | min_time () const |
| auto | N1_SL () const |
| auto | N1_TL () const |
| auto | N2_SL () const -> std::multimap< Int_precision, TriangulationTraits< 3 >::Facet > const & |
| auto | number_of_finite_cells () const |
| auto | number_of_finite_edges () const |
| auto | number_of_finite_facets () const |
| auto | number_of_vertices () const |
| auto | operator= (FoliatedTriangulation other) noexcept -> FoliatedTriangulation & |
| Copy/Move Assignment operator. | |
| void | print () const |
| Print triangulation statistics. | |
| void | print_cells () const |
| Print timevalues of each vertex in the cell and the resulting cell->info() | |
| void | print_edges () const |
| Print timevalues of each vertex in the edge and classify as timelike or spacelike. | |
| void | print_vertices () const |
| Print values of a vertex. | |
| void | print_volume_per_timeslice () const |
| Print the number of spacelike faces per timeslice. | |
Private Types | |
| using | Cell_container = std::vector< Cell_handle > |
| using | Cell_handle = Cell_handle_t< 3 > |
| using | Delaunay = Delaunay_t< 3 > |
| using | Edge_container = std::vector< Edge_handle_t< 3 > > |
| using | Face_container = std::vector< Face_handle_t< 3 > > |
| using | Vertex_container = std::vector< Vertex_handle > |
| using | Vertex_handle = Vertex_handle_t< 3 > |
| using | Volume_by_timeslice = std::multimap< Int_precision, Facet_t< 3 > > |
Private Member Functions | |
| auto | classify_cells (Cell_container const &cells) const -> Cell_container |
| Classify cells. | |
| auto | classify_vertices (Vertex_container const &vertices) const -> Vertex_container |
| auto | collect_edges () const -> Edge_container |
| auto | collect_faces () const -> Face_container |
Private Attributes | |
| Cell_container | m_cells |
| Edge_container | m_edges |
| Face_container | m_faces |
| double | m_foliation_spacing {FOLIATION_SPACING} |
| double | m_initial_radius {INITIAL_RADIUS} |
| Int_precision | m_max_timevalue {0} |
| Int_precision | m_min_timevalue {0} |
| Cell_container | m_one_three |
| Edge_container | m_spacelike_edges |
| Volume_by_timeslice | m_spacelike_facets |
| Cell_container | m_three_one |
| Edge_container | m_timelike_edges |
| Delaunay | m_triangulation {Delaunay{}} |
| Cell_container | m_two_two |
| Vertex_container | m_vertices |
Friends | |
| void | swap (FoliatedTriangulation &swap_from, FoliatedTriangulation &swap_into) noexcept |
| Non-member swap function for Foliated Triangulations. | |
3D Foliated triangulation
This class is a wrapper around a Delaunay triangulation. The Delaunay triangulation is augmented with a timevalue for each vertex and a simplex type for each cell. The FoliatedTriangulation class invariant is that the Delaunay triangulation has validly foliated vertices and cells, and has further containers for the various sub-simplicial complexes of the triangulation.
Definition at line 995 of file Foliated_triangulation.hpp.
|
private |
Definition at line 999 of file Foliated_triangulation.hpp.
|
private |
Definition at line 998 of file Foliated_triangulation.hpp.
|
private |
Definition at line 997 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1001 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1000 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1003 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1002 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1004 of file Foliated_triangulation.hpp.
|
inlinenoexcept |
Copy Constructor.
Definition at line 1032 of file Foliated_triangulation.hpp.
|
inlinenoexcept |
Move ctor.
Definition at line 1047 of file Foliated_triangulation.hpp.
|
inlineexplicit |
Constructor using delaunay triangulation Pass-by-value-then-move. Delaunay is the ctor for the Delaunay triangulation.
| triangulation | Delaunay triangulation |
| initial_radius | Radius of first timeslice |
| foliation_spacing | Radial separation between timeslices |
Definition at line 1094 of file Foliated_triangulation.hpp.
References foliated_triangulations::collect_cells(), foliated_triangulations::collect_edges(), foliated_triangulations::collect_vertices(), foliated_triangulations::filter_cells(), foliated_triangulations::filter_edges(), foliated_triangulations::find_max_timevalue(), foliated_triangulations::find_min_timevalue(), and foliated_triangulations::volume_per_timeslice().
|
inline |
Constructor with parameters.
| t_simplices | Number of desired simplices |
| t_timeslices | Number of desired timeslices |
| t_initial_radius | Radius of first timeslice |
| t_foliation_spacing | Radial separation between timeslices |
Definition at line 1119 of file Foliated_triangulation.hpp.
References foliated_triangulations::make_triangulation().
|
inlineexplicit |
Constructor from Causal_vertices.
| causal_vertices | Causal_vertices to place into the FoliatedTriangulation |
| t_initial_radius | Radius of first timeslice |
| t_foliation_spacing | Radial separation between timeslices |
Definition at line 1134 of file Foliated_triangulation.hpp.
|
inline |
Check that all cells are correctly classified.
A default triangulation will have no cells, and for this case the triangulation is correctly classified. A triangulation with cells will have them checked via check_cells.
Definition at line 1480 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::check_simplices().
|
inline |
Definition at line 1397 of file Foliated_triangulation.hpp.
|
inlineprivate |
Classify cells.
| cells | The container of simplices to classify |
Definition at line 1523 of file Foliated_triangulation.hpp.
|
inlineprivate |
Definition at line 1509 of file Foliated_triangulation.hpp.
|
inlineprivate |
Definition at line 1555 of file Foliated_triangulation.hpp.
|
inlineprivate |
Definition at line 1535 of file Foliated_triangulation.hpp.
|
inline |
Perfect forwarding to TriangulationDataStructure_3::degree.
Definition at line 1318 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::degree().
|
inline |
Definition at line 1193 of file Foliated_triangulation.hpp.
|
inline |
Definition at line 1254 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::dimensionality().
|
inline |
Check the radius of a vertex from the origin with its timevalue.
| t_vertex | The vertex to check |
Definition at line 1359 of file Foliated_triangulation.hpp.
References TOLERANCE.
|
inline |
Calculates the expected radial distance of a vertex.
The formula for the radius is:
\[R=I+S(t-1)\]
Where I is INITIAL_RADIUS, S is RADIAL_SEPARATION, and t is timevalue
| t_vertex | The vertex to check |
Definition at line 1379 of file Foliated_triangulation.hpp.
|
inline |
Calculate the expected timevalue for a vertex.
| t_vertex | The vertex to check |
Definition at line 1389 of file Foliated_triangulation.hpp.
|
inline |
Definition at line 1404 of file Foliated_triangulation.hpp.
|
inline |
Fix all cells in the triangulation.
Definition at line 1486 of file Foliated_triangulation.hpp.
|
inline |
Fix vertices with wrong timevalues after foliation.
Definition at line 1411 of file Foliated_triangulation.hpp.
|
inline |
Call one of the TSD3.flip functions.
| Ts | Variadic template of types of the arguments |
| args | Parameter pack of arguments to TDS3.flip |
Definition at line 1242 of file Foliated_triangulation.hpp.
|
inline |
Definition at line 1311 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::foliation_spacing().
|
inline |
Definition at line 1450 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::simplices().
|
inline |
Definition at line 1196 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::get_cell(), manifolds::Manifold< 3 >::get_vertex(), manifolds::Manifold< 3 >::is_edge(), manifolds::Manifold< 3 >::is_vertex(), and manifolds::Manifold< 3 >::update_triangulation().
|
inlinenoexcept |
Definition at line 1470 of file Foliated_triangulation.hpp.
|
inline |
Definition at line 1283 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::get_spacelike_edges().
|
inlinenoexcept |
Definition at line 1457 of file Foliated_triangulation.hpp.
|
inlinenoexcept |
Definition at line 1276 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::get_timelike_edges().
|
inlinenoexcept |
Definition at line 1464 of file Foliated_triangulation.hpp.
|
inlinenoexcept |
Definition at line 1289 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::get_vertices().
|
inlinenoexcept |
Definition at line 1295 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::get_vertices_span().
|
inlinenoexcept |
Perfect forwarding to TriangulationDataStructure_3::incident_cells.
| Ts | Variadic template used to forward |
| args | Parameter pack of arguments to call incident_cells() |
Definition at line 1349 of file Foliated_triangulation.hpp.
|
inlinenoexcept |
Perfect forwarding to TriangulationDataStructure_3::incident_cells.
If there are n incident edges there are 2(n-2) incident cells
| VertexHandle | Template parameter used to forward |
| t_vh | Vertex |
Definition at line 1332 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::incident_cells().
|
inline |
Definition at line 1248 of file Foliated_triangulation.hpp.
|
inline |
Definition at line 1308 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::initial_radius().
|
inline |
Definition at line 1168 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::is_correct().
|
inline |
Definition at line 1156 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::is_delaunay().
|
inline |
Definition at line 1181 of file Foliated_triangulation.hpp.
|
inline |
Verifies the triangulation is properly foliated.
Can not be called until after Foliated_triangulation has been constructed (i.e. not in make_triangulation)
Definition at line 1150 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::is_foliated().
|
inline |
Definition at line 1228 of file Foliated_triangulation.hpp.
|
inline |
Definition at line 1175 of file Foliated_triangulation.hpp.
|
inline |
Definition at line 1162 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::is_valid().
|
inline |
Definition at line 1302 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::max_time().
|
inline |
Definition at line 1305 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::min_time().
|
inline |
Definition at line 1270 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::N1_SL().
|
inline |
Definition at line 1264 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::N1_TL().
|
inline |
Definition at line 1257 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::N2_SL().
|
inline |
Definition at line 1202 of file Foliated_triangulation.hpp.
|
inline |
Definition at line 1214 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::edges().
|
inline |
Definition at line 1208 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::faces().
|
inline |
Definition at line 1220 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::vertices().
|
inlinenoexcept |
Copy/Move Assignment operator.
Definition at line 1039 of file Foliated_triangulation.hpp.
|
inline |
Print triangulation statistics.
Definition at line 1499 of file Foliated_triangulation.hpp.
|
inline |
Print timevalues of each vertex in the cell and the resulting cell->info()
Definition at line 1493 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::print_cells().
|
inline |
Print timevalues of each vertex in the edge and classify as timelike or spacelike.
Definition at line 1430 of file Foliated_triangulation.hpp.
|
inline |
Print values of a vertex.
Definition at line 1418 of file Foliated_triangulation.hpp.
References foliated_triangulations::expected_timevalue().
Referenced by manifolds::Manifold< 3 >::print_vertices().
|
inline |
Print the number of spacelike faces per timeslice.
Definition at line 1440 of file Foliated_triangulation.hpp.
Referenced by manifolds::Manifold< 3 >::print_volume_per_timeslice().
|
friend |
Non-member swap function for Foliated Triangulations.
Note that this function calls swap() from CGAL's Triangulation_3 base class, which assumes that the first triangulation is discarded after it is swapped into the second one.
| swap_from | The value to be swapped from. Assumed to be discarded. |
| swap_into | The value to be swapped into. |
Definition at line 1059 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1012 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1018 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1016 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1010 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1009 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1021 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1022 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1015 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1020 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1017 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1013 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1019 of file Foliated_triangulation.hpp.
|
private |
Data members initialized in order of declaration (Working Draft, Standard for C++ Programming Language, 11.9.3 section 13.3)
Definition at line 1008 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1014 of file Foliated_triangulation.hpp.
|
private |
Definition at line 1011 of file Foliated_triangulation.hpp.