Expand description
Causal Dynamical Triangulations library for quantum gravity simulations.
This library implements Causal Dynamical Triangulations (CDT) in 2D, providing the necessary tools for Monte Carlo simulations of discrete spacetime geometries.
§Key Features
- Integration with delaunay crate for proper Delaunay triangulations
- 2D Regge Action calculation for CDT
- Foliated 2D triangulation construction and validation
- Foliation-aware 2D ergodic moves backed by bistellar flips
- Metropolis-Hastings sampling over foliation-aware 2D ergodic moves
- Volume-profile, Hausdorff-dimension, and spectral-dimension observables for CDT analysis
- Trace CSV/JSON simulation output and resumable serde-backed CDT/MCMC checkpoints
The crate root re-exports the most common construction, simulation,
observable, and error types. Focused preludes under prelude provide
smaller import surfaces for documentation, examples, integration tests, and
benchmarks.
§Checkpointing
CDT triangulations backed by geometry::DelaunayBackend2D serialize their
stable geometry, metadata, foliation, and simulation history while rebuilding
transient caches and timestamps on load.
use causal_triangulations::{CheckpointOperation, CdtError};
use causal_triangulations::prelude::triangulation::*;
use serde_json::{from_str, to_string};
fn main() -> CdtResult<()> {
let tri = CdtTriangulation::from_cdt_strip(4, 3)?;
let json = to_string(&tri).map_err(|err| CdtError::CheckpointSerializationFailed {
operation: CheckpointOperation::Serialize,
target: "triangulation".to_string(),
detail: err.to_string(),
})?;
let restored: CdtTriangulation2D =
from_str(&json).map_err(|err| CdtError::CheckpointSerializationFailed {
operation: CheckpointOperation::Deserialize,
target: "triangulation".to_string(),
detail: err.to_string(),
})?;
restored.validate_topology()?;
restored.validate_foliation()?;
restored.validate_causality()?;
restored.validate_simplex_classification()?;
assert_eq!(restored.slice_sizes(), &[4, 4, 4]);
Ok(())
}§Example
use causal_triangulations::prelude::triangulation::CdtTriangulation;
use causal_triangulations::prelude::errors::CdtResult;
fn main() -> CdtResult<()> {
let tri = CdtTriangulation::from_toroidal_cdt(4, 3)?;
assert_eq!(tri.vertex_count(), 12);
assert!(tri.validate_topology().is_ok());
assert!(tri.validate_foliation().is_ok());
Ok(())
}Re-exports§
pub use cdt::action::ActionConfig;pub use cdt::action::CDT_1P1_CRITICAL_TRIANGLE_COSMOLOGICAL_CONSTANT;pub use cdt::action::DEFAULT_CDT_1P1_EDGE_COSMOLOGICAL_CONSTANT;pub use cdt::action::compute_regge_action;pub use cdt::ergodic_moves::ErgodicsSystem;pub use cdt::ergodic_moves::MoveResult;pub use cdt::ergodic_moves::MoveStatistics;pub use cdt::ergodic_moves::MoveType;pub use cdt::foliation::EdgeType;pub use cdt::foliation::Foliation;pub use cdt::foliation::FoliationError;pub use cdt::foliation::SimplexType;pub use cdt::metropolis::AcceptedStepTelemetry;pub use cdt::metropolis::CdtMcmcCheckpoint;pub use cdt::metropolis::CdtProposal;pub use cdt::metropolis::CdtProposalError;pub use cdt::metropolis::CdtProposalInfo;pub use cdt::metropolis::CdtProposalPlan;pub use cdt::metropolis::CdtTarget;pub use cdt::metropolis::MetropolisAlgorithm;pub use cdt::metropolis::MetropolisConfig;pub use cdt::metropolis::MonteCarloStep;pub use cdt::metropolis::MonteCarloStepOutcome;pub use cdt::metropolis::ProposalStatistics;pub use cdt::metropolis::RejectedProposalStepTelemetry;pub use cdt::observables::estimate_hausdorff_dimension;pub use cdt::observables::estimate_spectral_dimension;pub use cdt::results::Measurement;pub use cdt::results::SimulationResultsBackend;pub use cdt::triangulation::CdtSimplexCounts;pub use cdt::triangulation::CdtTriangulation;pub use cdt::triangulation::SimulationEvent;pub use config::CdtConfig;pub use config::CdtConfigOverrides;pub use config::CdtTopology;pub use config::DimensionOverride;pub use config::TestConfig;pub use config::ValidatedCdtConfig;pub use config::ValidatedInitialVolume;pub use errors::BackendMutationOperation;pub use errors::CdtError;pub use errors::CdtResult;pub use errors::CdtValidationCheck;pub use errors::CdtValidationFailure;pub use errors::CheckpointMoveCounter;pub use errors::CheckpointOperation;pub use errors::CheckpointResumeFailure;pub use errors::ConfigurationSetting;pub use errors::DelaunayValidationLevel;pub use errors::GenerationParameterIssue;pub use errors::MeasurementCountField;pub use errors::MetropolisMoveApplicationFailure;pub use errors::OutputFormat;pub use errors::ProposalTelemetryCounter;pub use errors::ScalarTraceField;pub use errors::SimplexCountField;pub use errors::TriangulationMetadataField;pub use geometry::traits::TriangulationQuery;
Modules§
- cdt
- Causal Dynamical Triangulations implementation modules.
- config
- Configuration management for CDT simulations. Configuration management for CDT simulations.
- errors
- Error types for the CDT library. Error types for the CDT library.
- geometry
- Geometry abstraction layer for CDT simulations.
- prelude
- Prelude module for convenient imports.
- util
- Utility functions for random number generation and mathematical operations. Utility functions for random number generation and mathematical operations.
Enums§
- Step
Outcome - Outcome of a completed Metropolis-Hastings step.
Functions§
- run_
simulation - Runs a CDT simulation with an already validated configuration.