Skip to content

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

🧰 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