Data for: From Feedback Loops to Spectra: Stability of the Interaction Matrix in Rock Engineering Systems
Description
Reproduction code and data for the paper of the same name, submitted to Rock Mechanics and Rock Engineering. The Rock Engineering Systems (RES) fully coupled model turns a binary interaction matrix A into a global description G = (I - A)^-1. This deposit contains the three interaction matrices analyzed in that paper, together with the Python code that reproduces every numerical quantity the paper reports. The matrices are transcribed from their published sources: the six-variable dam foundation in two codings and the nine-variable hydroelectric pressure tunnel from Y. Jiao and J.A. Hudson (1995), The fully-coupled model for rock engineering systems, International Journal of Rock Mechanics and Mining Sciences and Geomechanics Abstracts 32(5):491-512, and the fourteen-variable gas-storage cavern from Y. Jiao (1995), Formalizing the systems approach to rock engineering, PhD thesis, Imperial College. The printed global matrices for the tunnel and the cavern are included so that the resolvent identity can be checked against them directly. No new experimental or field data are included. The quantities recomputed are the spectral radius and the exact stability criterion, the multiplicative and additive Distance-to-Instability margins, the pseudospectral stability radius under the published coding and under matrix balancing, the eigenvalue condition numbers, the closed-form sensitivities checked against centered finite differences, and the two audits of the resolvent against the printed global matrices.
Files
Steps to reproduce
1. Install Python 3.9 or later. 2. Install the dependencies: pip install -r requirements.txt (numpy >= 1.21, scipy >= 1.7). sympy >= 1.9 is optional and is used only for the exact-arithmetic block at the end; without it that block is skipped and everything else still runs. 3. Arrange the files as follows. The three Python files, README.md, LICENSE, CITATION.cff and requirements.txt sit at the top level; the six matrix files sit in a subdirectory named data: res_spectral.py systems.py reproduce.py requirements.txt README.md LICENSE CITATION.cff data/dam_case1_bim.csv data/dam_case2_bim.csv data/tunnel_bim.csv data/tunnel_gim_printed.csv data/gas_bim.csv data/gas_gim_printed.csv 4. Run: python reproduce.py 5. The script prints five blocks, to be compared against the values stated in the paper: the spectral quantities and Distance-to-Instability margins for all four matrices, the two misprint audits of the resolvent against the printed global matrices, the closed-form sensitivities beside central finite differences, the Section 3.2 touching-loop counterexample, and an exact-arithmetic check of the tunnel misprint. It ends by printing DONE and exits without error. Expected key values: spectral radii rho(A) = 0.9027, 0.8355, 0.8387 and 0.8223 for dam case 1, dam case 2, the tunnel and the gas-storage cavern. The matrix files are plain comma-separated grids with no header row and no label column, so they can also be read directly with numpy.loadtxt(path, delimiter=',').