gridoxide 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. gridoxide-0.0.1/.github/workflows/book.yml +52 -0
  2. gridoxide-0.0.1/.github/workflows/build.yml +22 -0
  3. gridoxide-0.0.1/.github/workflows/pypi.yml +134 -0
  4. gridoxide-0.0.1/.github/workflows/python.yml +47 -0
  5. gridoxide-0.0.1/.gitignore +5 -0
  6. gridoxide-0.0.1/Cargo.lock +1512 -0
  7. gridoxide-0.0.1/Cargo.toml +54 -0
  8. gridoxide-0.0.1/LICENSE +201 -0
  9. gridoxide-0.0.1/PKG-INFO +8 -0
  10. gridoxide-0.0.1/README.md +204 -0
  11. gridoxide-0.0.1/build.rs +124 -0
  12. gridoxide-0.0.1/docs/.gitignore +2 -0
  13. gridoxide-0.0.1/docs/book.toml +7 -0
  14. gridoxide-0.0.1/docs/src/SUMMARY.md +3 -0
  15. gridoxide-0.0.1/docs/src/powerflow.md +212 -0
  16. gridoxide-0.0.1/examples/bench_network.rs +104 -0
  17. gridoxide-0.0.1/pyproject.toml +20 -0
  18. gridoxide-0.0.1/python/tests/test_gridoxide.py +93 -0
  19. gridoxide-0.0.1/scripts/bench/README.md +249 -0
  20. gridoxide-0.0.1/scripts/bench/bench_gridoxide_native.py +71 -0
  21. gridoxide-0.0.1/scripts/bench/bench_lightsim2grid.py +91 -0
  22. gridoxide-0.0.1/scripts/bench/bench_pandapower.py +67 -0
  23. gridoxide-0.0.1/scripts/bench/bench_pgm.py +54 -0
  24. gridoxide-0.0.1/scripts/bench/bench_pypowsybl.py +111 -0
  25. gridoxide-0.0.1/scripts/bench/cases.py +43 -0
  26. gridoxide-0.0.1/scripts/bench/convert_pandapower_case.py +140 -0
  27. gridoxide-0.0.1/scripts/bench/generate_grid.py +240 -0
  28. gridoxide-0.0.1/scripts/bench/matpower_to_pgm.py +316 -0
  29. gridoxide-0.0.1/scripts/bench/run_case_suite.py +220 -0
  30. gridoxide-0.0.1/src/block_sparse.rs +737 -0
  31. gridoxide-0.0.1/src/json.rs +8 -0
  32. gridoxide-0.0.1/src/lib.rs +34 -0
  33. gridoxide-0.0.1/src/main.rs +23 -0
  34. gridoxide-0.0.1/src/network.rs +568 -0
  35. gridoxide-0.0.1/src/pgm.rs +803 -0
  36. gridoxide-0.0.1/src/python.rs +149 -0
  37. gridoxide-0.0.1/src/solver.rs +561 -0
  38. gridoxide-0.0.1/src/sparse.rs +180 -0
  39. gridoxide-0.0.1/src/sparse_klu.rs +285 -0
  40. gridoxide-0.0.1/src/types.rs +97 -0
  41. gridoxide-0.0.1/tests/block_jacobian_test.rs +126 -0
  42. gridoxide-0.0.1/tests/common/mod.rs +101 -0
  43. gridoxide-0.0.1/tests/data/network.json +57 -0
  44. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/asym_gen/README.md +23 -0
  45. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/asym_gen/asym_output.json +109 -0
  46. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/asym_gen/input.json +81 -0
  47. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/asym_load/README.md +23 -0
  48. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/asym_load/asym_output.json +109 -0
  49. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/asym_load/input.json +81 -0
  50. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/distribution-case/README.md +27 -0
  51. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/distribution-case/asym_output_batch.json +772 -0
  52. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/distribution-case/input.json +473 -0
  53. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/distribution-case/update_batch.json +328 -0
  54. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/line/README.md +21 -0
  55. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/line/asym_output.json +196 -0
  56. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/line/input.json +133 -0
  57. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/node/README.md +22 -0
  58. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/node/asym_output.json +99 -0
  59. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/node/input.json +51 -0
  60. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/shunt/README.md +23 -0
  61. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/shunt/asym_output.json +81 -0
  62. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/shunt/input.json +67 -0
  63. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/source/README.md +20 -0
  64. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/source/asym_output.json +132 -0
  65. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/source/input.json +76 -0
  66. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/sym_gen/README.md +25 -0
  67. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/sym_gen/asym_output.json +109 -0
  68. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/sym_gen/input.json +65 -0
  69. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/sym_load/README.md +25 -0
  70. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/sym_load/asym_output.json +109 -0
  71. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/sym_load/input.json +65 -0
  72. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/transformer/README.md +28 -0
  73. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/transformer/asym_output_batch.json +888 -0
  74. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/transformer/input.json +64 -0
  75. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/transformer/update_batch.json +96 -0
  76. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/transmission-case/README.md +25 -0
  77. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/transmission-case/asym_output.json +557 -0
  78. gridoxide-0.0.1/tests/data/pgm/powerflow/asymmetric/transmission-case/input.json +353 -0
  79. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/basic-node/README.md +18 -0
  80. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/basic-node/input.json +29 -0
  81. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/basic-node/sym_output.json +31 -0
  82. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/distribution-case/README.md +29 -0
  83. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/distribution-case/input.json +473 -0
  84. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/distribution-case/sym_output_batch.json +362 -0
  85. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/distribution-case/update_batch.json +328 -0
  86. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/line/README.md +21 -0
  87. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/line/input.json +125 -0
  88. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/line/sym_output.json +106 -0
  89. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/node/README.md +18 -0
  90. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/node/input.json +51 -0
  91. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/node/sym_output.json +51 -0
  92. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/shunt/README.md +19 -0
  93. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/shunt/input.json +67 -0
  94. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/shunt/sym_output.json +57 -0
  95. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/source/README.md +18 -0
  96. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/source/input.json +76 -0
  97. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/source/sym_output.json +70 -0
  98. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/sym_gen/README.md +22 -0
  99. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/sym_gen/input.json +81 -0
  100. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/sym_gen/sym_output.json +67 -0
  101. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/sym_load/README.md +22 -0
  102. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/sym_load/input.json +81 -0
  103. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/sym_load/sym_output.json +67 -0
  104. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/three_winding_transformer/README.md +24 -0
  105. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/three_winding_transformer/input.json +69 -0
  106. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/three_winding_transformer/sym_output_batch.json +378 -0
  107. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/three_winding_transformer/update_batch.json +118 -0
  108. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/transformer/input.json +133 -0
  109. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/transformer/sym_output_batch.json +723 -0
  110. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/transformer/update_batch.json +228 -0
  111. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/transmission-case/README.md +25 -0
  112. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/transmission-case/input.json +353 -0
  113. gridoxide-0.0.1/tests/data/pgm/powerflow/symmetric/transmission-case/sym_output.json +241 -0
  114. gridoxide-0.0.1/tests/klu_jacobian_test.rs +126 -0
  115. gridoxide-0.0.1/tests/persistent_solver_test.rs +102 -0
  116. gridoxide-0.0.1/tests/pgm_asym_line_test.rs +25 -0
  117. gridoxide-0.0.1/tests/pgm_asym_transformer_test.rs +35 -0
  118. gridoxide-0.0.1/tests/pgm_gen_test.rs +62 -0
  119. gridoxide-0.0.1/tests/pgm_line_test.rs +26 -0
  120. gridoxide-0.0.1/tests/pgm_load_test.rs +62 -0
  121. gridoxide-0.0.1/tests/pgm_network_test.rs +112 -0
  122. gridoxide-0.0.1/tests/pgm_node_test.rs +63 -0
  123. gridoxide-0.0.1/tests/pgm_shunt_test.rs +50 -0
  124. gridoxide-0.0.1/tests/pgm_source_test.rs +45 -0
  125. gridoxide-0.0.1/tests/pgm_three_winding_transformer_test.rs +31 -0
  126. gridoxide-0.0.1/tests/pgm_transformer_test.rs +38 -0
  127. gridoxide-0.0.1/tests/powerflow_test.rs +32 -0
  128. gridoxide-0.0.1/vendor/suitesparse/AMD/Doc/License.txt +35 -0
  129. gridoxide-0.0.1/vendor/suitesparse/AMD/Include/amd.h +399 -0
  130. gridoxide-0.0.1/vendor/suitesparse/AMD/Include/amd_internal.h +277 -0
  131. gridoxide-0.0.1/vendor/suitesparse/AMD/README.txt +185 -0
  132. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd.f +1220 -0
  133. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_1.c +180 -0
  134. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_2.c +1842 -0
  135. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_aat.c +184 -0
  136. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_control.c +64 -0
  137. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_defaults.c +37 -0
  138. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_dump.c +179 -0
  139. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_info.c +119 -0
  140. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l1.c +13 -0
  141. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l2.c +13 -0
  142. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l_aat.c +14 -0
  143. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l_control.c +14 -0
  144. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l_defaults.c +14 -0
  145. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l_dump.c +14 -0
  146. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l_info.c +14 -0
  147. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l_order.c +14 -0
  148. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l_post_tree.c +13 -0
  149. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l_postorder.c +13 -0
  150. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l_preprocess.c +13 -0
  151. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_l_valid.c +13 -0
  152. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_order.c +199 -0
  153. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_post_tree.c +120 -0
  154. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_postorder.c +206 -0
  155. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_preprocess.c +114 -0
  156. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_valid.c +93 -0
  157. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amd_version.c +19 -0
  158. gridoxide-0.0.1/vendor/suitesparse/AMD/Source/amdbar.f +1212 -0
  159. gridoxide-0.0.1/vendor/suitesparse/BTF/Doc/License.txt +20 -0
  160. gridoxide-0.0.1/vendor/suitesparse/BTF/Include/btf.h +281 -0
  161. gridoxide-0.0.1/vendor/suitesparse/BTF/Include/btf_internal.h +65 -0
  162. gridoxide-0.0.1/vendor/suitesparse/BTF/README.txt +94 -0
  163. gridoxide-0.0.1/vendor/suitesparse/BTF/Source/btf_l_maxtrans.c +13 -0
  164. gridoxide-0.0.1/vendor/suitesparse/BTF/Source/btf_l_order.c +13 -0
  165. gridoxide-0.0.1/vendor/suitesparse/BTF/Source/btf_l_strongcomp.c +13 -0
  166. gridoxide-0.0.1/vendor/suitesparse/BTF/Source/btf_maxtrans.c +391 -0
  167. gridoxide-0.0.1/vendor/suitesparse/BTF/Source/btf_order.c +135 -0
  168. gridoxide-0.0.1/vendor/suitesparse/BTF/Source/btf_strongcomp.c +596 -0
  169. gridoxide-0.0.1/vendor/suitesparse/BTF/Source/btf_version.c +19 -0
  170. gridoxide-0.0.1/vendor/suitesparse/COLAMD/Doc/License.txt +30 -0
  171. gridoxide-0.0.1/vendor/suitesparse/COLAMD/Include/colamd.h +243 -0
  172. gridoxide-0.0.1/vendor/suitesparse/COLAMD/README.txt +133 -0
  173. gridoxide-0.0.1/vendor/suitesparse/COLAMD/Source/colamd.c +3581 -0
  174. gridoxide-0.0.1/vendor/suitesparse/COLAMD/Source/colamd_l.c +13 -0
  175. gridoxide-0.0.1/vendor/suitesparse/COLAMD/Source/colamd_version.c +19 -0
  176. gridoxide-0.0.1/vendor/suitesparse/KLU/Doc/License.txt +22 -0
  177. gridoxide-0.0.1/vendor/suitesparse/KLU/Include/klu.h +856 -0
  178. gridoxide-0.0.1/vendor/suitesparse/KLU/Include/klu_internal.h +245 -0
  179. gridoxide-0.0.1/vendor/suitesparse/KLU/Include/klu_version.h +710 -0
  180. gridoxide-0.0.1/vendor/suitesparse/KLU/README.txt +129 -0
  181. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu.c +773 -0
  182. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_analyze.c +488 -0
  183. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_analyze_given.c +375 -0
  184. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_defaults.c +60 -0
  185. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_diagnostics.c +574 -0
  186. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_dump.c +153 -0
  187. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_extract.c +296 -0
  188. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_factor.c +549 -0
  189. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_free_numeric.c +77 -0
  190. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_free_symbolic.c +40 -0
  191. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_kernel.c +1016 -0
  192. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l.c +11 -0
  193. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_analyze.c +11 -0
  194. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_analyze_given.c +11 -0
  195. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_defaults.c +11 -0
  196. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_diagnostics.c +11 -0
  197. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_dump.c +11 -0
  198. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_extract.c +11 -0
  199. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_factor.c +11 -0
  200. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_free_numeric.c +11 -0
  201. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_free_symbolic.c +11 -0
  202. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_kernel.c +11 -0
  203. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_memory.c +11 -0
  204. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_refactor.c +11 -0
  205. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_scale.c +11 -0
  206. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_solve.c +11 -0
  207. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_sort.c +11 -0
  208. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_l_tsolve.c +11 -0
  209. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_memory.c +222 -0
  210. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_refactor.c +480 -0
  211. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_scale.c +165 -0
  212. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_solve.c +402 -0
  213. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_sort.c +162 -0
  214. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_tsolve.c +471 -0
  215. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_version.c +19 -0
  216. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z.c +11 -0
  217. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_diagnostics.c +11 -0
  218. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_dump.c +11 -0
  219. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_extract.c +11 -0
  220. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_factor.c +11 -0
  221. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_free_numeric.c +11 -0
  222. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_kernel.c +11 -0
  223. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_refactor.c +11 -0
  224. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_scale.c +11 -0
  225. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_solve.c +11 -0
  226. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_sort.c +11 -0
  227. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_z_tsolve.c +11 -0
  228. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl.c +12 -0
  229. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_diagnostics.c +12 -0
  230. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_dump.c +12 -0
  231. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_extract.c +12 -0
  232. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_factor.c +12 -0
  233. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_free_numeric.c +12 -0
  234. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_kernel.c +12 -0
  235. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_refactor.c +12 -0
  236. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_scale.c +12 -0
  237. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_solve.c +12 -0
  238. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_sort.c +12 -0
  239. gridoxide-0.0.1/vendor/suitesparse/KLU/Source/klu_zl_tsolve.c +12 -0
  240. gridoxide-0.0.1/vendor/suitesparse/PROVENANCE.md +49 -0
  241. gridoxide-0.0.1/vendor/suitesparse/SuiteSparse_config/README.txt +98 -0
  242. gridoxide-0.0.1/vendor/suitesparse/SuiteSparse_config/SuiteSparse_config.c +820 -0
  243. gridoxide-0.0.1/vendor/suitesparse/SuiteSparse_config/SuiteSparse_config.h +2345 -0
@@ -0,0 +1,52 @@
1
+ name: Deploy mdBook site to Pages
2
+
3
+ on:
4
+ push:
5
+ branches: ["main"]
6
+
7
+ workflow_dispatch:
8
+
9
+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
10
+ permissions:
11
+ contents: read
12
+ pages: write
13
+ id-token: write
14
+
15
+ # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
16
+ # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
17
+ concurrency:
18
+ group: "pages"
19
+ cancel-in-progress: false
20
+
21
+ jobs:
22
+ build:
23
+ runs-on: ubuntu-latest
24
+ env:
25
+ MDBOOK_VERSION: 0.4.36
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ - name: Install mdBook
29
+ run: |
30
+ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf -y | sh
31
+ rustup update
32
+ cargo install --version ${MDBOOK_VERSION} mdbook
33
+ - name: Setup Pages
34
+ id: pages
35
+ uses: actions/configure-pages@v5
36
+ - name: Build with mdBook
37
+ run: mdbook build docs
38
+ - name: Upload artifact
39
+ uses: actions/upload-pages-artifact@v3
40
+ with:
41
+ path: ./docs/book
42
+
43
+ deploy:
44
+ environment:
45
+ name: github-pages
46
+ url: ${{ steps.deployment.outputs.page_url }}
47
+ runs-on: ubuntu-latest
48
+ needs: build
49
+ steps:
50
+ - name: Deploy to GitHub Pages
51
+ id: deployment
52
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,22 @@
1
+ name: Rust build and test
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+
9
+ env:
10
+ CARGO_TERM_COLOR: always
11
+
12
+ jobs:
13
+ build:
14
+
15
+ runs-on: ubuntu-latest
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - name: Build
20
+ run: cargo build --verbose
21
+ - name: Run tests
22
+ run: cargo test --verbose
@@ -0,0 +1,134 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ linux:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ target: [x86_64]
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - uses: dtolnay/rust-toolchain@stable
19
+
20
+ - uses: actions/cache@v4
21
+ with:
22
+ path: |
23
+ ~/.cargo/registry
24
+ ~/.cargo/git
25
+ target
26
+ key: ${{ runner.os }}-cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}
27
+ restore-keys: ${{ runner.os }}-cargo-${{ matrix.target }}-
28
+
29
+ - uses: PyO3/maturin-action@v1
30
+ with:
31
+ target: ${{ matrix.target }}
32
+ args: --release --out dist
33
+ manylinux: auto
34
+ # No `klu` — the published wheel doesn't ship it (see
35
+ # Cargo.toml's `python`/`klu` feature doc comments: klu vendors
36
+ # LGPL-2.1-or-later SuiteSparse source and needs a C compiler +
37
+ # libclang on every target platform). `features = ["python"]`
38
+ # already set in pyproject.toml's [tool.maturin], so no
39
+ # --features flag needed here.
40
+
41
+ - uses: actions/upload-artifact@v4
42
+ with:
43
+ name: wheels-linux-${{ matrix.target }}
44
+ path: dist
45
+
46
+ windows:
47
+ runs-on: windows-latest
48
+ steps:
49
+ - uses: actions/checkout@v4
50
+
51
+ - uses: dtolnay/rust-toolchain@stable
52
+
53
+ - uses: actions/cache@v4
54
+ with:
55
+ path: |
56
+ ~/.cargo/registry
57
+ ~/.cargo/git
58
+ target
59
+ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
60
+ restore-keys: ${{ runner.os }}-cargo-
61
+
62
+ - uses: PyO3/maturin-action@v1
63
+ with:
64
+ args: --release --out dist
65
+
66
+ - uses: actions/upload-artifact@v4
67
+ with:
68
+ name: wheels-windows
69
+ path: dist
70
+
71
+ macos:
72
+ runs-on: macos-latest
73
+ strategy:
74
+ matrix:
75
+ target: [aarch64]
76
+ steps:
77
+ - uses: actions/checkout@v4
78
+
79
+ - uses: dtolnay/rust-toolchain@stable
80
+
81
+ - uses: actions/cache@v4
82
+ with:
83
+ path: |
84
+ ~/.cargo/registry
85
+ ~/.cargo/git
86
+ target
87
+ key: ${{ runner.os }}-cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}
88
+ restore-keys: ${{ runner.os }}-cargo-${{ matrix.target }}-
89
+
90
+ - uses: PyO3/maturin-action@v1
91
+ with:
92
+ target: ${{ matrix.target }}
93
+ args: --release --out dist
94
+
95
+ - uses: actions/upload-artifact@v4
96
+ with:
97
+ name: wheels-macos-${{ matrix.target }}
98
+ path: dist
99
+
100
+ sdist:
101
+ runs-on: ubuntu-latest
102
+ steps:
103
+ - uses: actions/checkout@v4
104
+
105
+ - uses: dtolnay/rust-toolchain@stable
106
+
107
+ - uses: PyO3/maturin-action@v1
108
+ with:
109
+ command: sdist
110
+ args: --out dist
111
+
112
+ - uses: actions/upload-artifact@v4
113
+ with:
114
+ name: wheels-sdist
115
+ path: dist
116
+
117
+ publish:
118
+ name: Publish to PyPI
119
+ if: startsWith(github.ref, 'refs/tags/')
120
+ needs: [linux, windows, macos, sdist]
121
+ runs-on: ubuntu-latest
122
+ environment: pypi
123
+ permissions:
124
+ id-token: write
125
+ steps:
126
+ - uses: actions/download-artifact@v4
127
+ with:
128
+ pattern: wheels-*
129
+ merge-multiple: true
130
+ path: dist
131
+
132
+ - uses: pypa/gh-action-pypi-publish@release/v1
133
+ with:
134
+ packages-dir: dist
@@ -0,0 +1,47 @@
1
+ name: Python
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+
9
+ jobs:
10
+ python:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - name: Install Rust (stable)
17
+ uses: dtolnay/rust-toolchain@stable
18
+
19
+ - name: Cache cargo registry and build artifacts
20
+ uses: actions/cache@v4
21
+ with:
22
+ path: |
23
+ ~/.cargo/registry
24
+ ~/.cargo/git
25
+ target
26
+ key: ${{ runner.os }}-cargo-python-${{ hashFiles('**/Cargo.lock') }}
27
+ restore-keys: ${{ runner.os }}-cargo-python-
28
+
29
+ - name: Set up Python
30
+ uses: actions/setup-python@v5
31
+ with:
32
+ python-version: "3.12"
33
+
34
+ - name: Install Python dependencies
35
+ run: |
36
+ python -m venv .venv
37
+ .venv/bin/pip install maturin pytest
38
+
39
+ - name: Build Python extension
40
+ # No `klu` here — the published wheel doesn't ship it either (see
41
+ # pypi.yml and Cargo.toml's `python`/`klu` feature doc comments:
42
+ # klu vendors LGPL-2.1-or-later SuiteSparse source and needs a C
43
+ # compiler + libclang, both extra weight this CI job doesn't need).
44
+ run: .venv/bin/maturin develop --release --features python
45
+
46
+ - name: Run Python tests
47
+ run: .venv/bin/pytest python/tests/ -v
@@ -0,0 +1,5 @@
1
+ /target
2
+ /scripts/bench/.case-cache/
3
+ /.venv*
4
+ __pycache__/
5
+ /references/