Hyperbolic resistor-network simulator (numerical model, no trained weights)
This repository holds a numerical simulator, not a machine-learning model: there are no weights and no training. It builds layer-truncated hyperbolic {p,q} tilings and flat lattice disks, and computes
- the Dirichlet-to-Neumann map (Schur complement) and its exact sensitivity Jacobian,
- exact Jacobian ranks over GF(p),
- the Neumann-to-Dirichlet map and its conditioning,
- the RC network dynamics
C dV/dt = -(L_ii V + L_ib V_b)with SciPy BDF or, when installed, the rusty-SUNDIALS CVODE integrator (https://github.com/xaviercallens/rusty-SUNDIALS), gated by analytic controls K1 (matrix exponential) and K2 (steady state = DtN).
Use
pip install numpy scipy
python3 hyperbolic_network.py --self-test
python3 -c "from hyperbolic_network import build_hyperbolic, boundary_nodes, dtn; import numpy as np; \
g = build_hyperbolic(7, 3, 2); b = boundary_nodes(g); print(dtn(len(g['nodes']), g['edges'], np.ones(len(g['edges'])), b).shape)"
To run the CVODE leg, build the rusty-SUNDIALS Python extension (maturin develop in
crates/rusty-sundials-py) and re-run rc_network.py.
Intended use and limits
Research on conditioning of discrete inverse problems and design of tabletop resistor/RC network experiments. Results are linearised sensitivities at unit conductances; see the paper's limitations section.
Source commit: 13b8e69507d1ae61873ae01e8350ed7210f632c4. Dataset: companion Hugging Face dataset. Paper: paper.pdf.
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support