Welcome to PyCauset
PyCauset is a high-performance Python library for numerical Causal Set Theory. It is designed to bridge the gap between abstract mathematical models and large-scale numerical simulations.
The Philosophy: Tiered Storage
Causal sets are computationally demanding. For a set of size \(N\), the causal matrix is \(O(N^2)\). For \(N=100,000\), a dense matrix requires gigabytes of memory.
PyCauset solves this with a Hybrid Architecture:
1. RAM-First: Small matrices behave exactly like NumPy arrays.
2. Disk-Backed: Large matrices can automatically spill by switching to temporary memory-mapped backing files (for example .tmp files under the backing directory). Saving a portable .pycauset snapshot is explicit.
3. Bit-Packing: Causal relations are stored as single bits, reducing memory usage by 64x compared to standard integers.
Documentation Structure
π User Guides
Practical tutorials and conceptual explanations.
* Installation: Install PyCauset.
* User Guide: First steps and core workflow.
* Causal Sets: Working with the core CausalSet object.
* Field Theory: Simulating quantum fields and propagators.
* Visualization: Interactive 3D plotting.
* Performance: GPU acceleration and precision tuning.
* Storage: Understanding the file formats and memory management.
βοΈ API Reference
Detailed documentation of classes and functions.
* Classes: CausalSet, Matrix, Vector, Spacetime.
* Functions: matmul, inverse.
π§ Internals
Deep dive into the C++ core for contributors.
* Compute Architecture: CPU/GPU dispatch and solvers.
* Memory Architecture: Tiered storage, Governor, and CoW.
* Memory & Data: The .pycauset container format and memory mapping.
* Algorithms: Mathematical derivations and implementation details.
π Project
- Philosophy: Design mantras.
- Contributing: How to build and test.
- Roadmap: Future plans.
π§° Dev Handbook
High-signal onboarding for contributors. * Restructure Plan: The approved reorganization plan and gates.
Citation
If you use PyCauset in your research, please cite the repository: https://github.com/BrorH/pycauset