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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support