universal-physics-tensor 0.45.1 → 0.46.0

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 (473) hide show
  1. package/README.md +28 -27
  2. package/dist/atlas/applicability.d.ts +108 -0
  3. package/dist/atlas/applicability.d.ts.map +1 -0
  4. package/dist/atlas/applicability.js +301 -0
  5. package/dist/atlas/applicability.js.map +1 -0
  6. package/dist/atlas/association.d.ts +92 -0
  7. package/dist/atlas/association.d.ts.map +1 -0
  8. package/dist/atlas/association.js +112 -0
  9. package/dist/atlas/association.js.map +1 -0
  10. package/dist/atlas/benchmark/backend-shapes.d.ts +47 -0
  11. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -0
  12. package/dist/atlas/benchmark/backend-shapes.js +58 -0
  13. package/dist/atlas/benchmark/backend-shapes.js.map +1 -0
  14. package/dist/atlas/benchmark/baselines.d.ts +64 -0
  15. package/dist/atlas/benchmark/baselines.d.ts.map +1 -0
  16. package/dist/atlas/benchmark/baselines.js +112 -0
  17. package/dist/atlas/benchmark/baselines.js.map +1 -0
  18. package/dist/atlas/benchmark/leakage.d.ts +56 -0
  19. package/dist/atlas/benchmark/leakage.d.ts.map +1 -0
  20. package/dist/atlas/benchmark/leakage.js +100 -0
  21. package/dist/atlas/benchmark/leakage.js.map +1 -0
  22. package/dist/atlas/benchmark/loader.d.ts +56 -0
  23. package/dist/atlas/benchmark/loader.d.ts.map +1 -0
  24. package/dist/atlas/benchmark/loader.js +104 -0
  25. package/dist/atlas/benchmark/loader.js.map +1 -0
  26. package/dist/atlas/benchmark/run-atlas.d.ts +72 -0
  27. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -0
  28. package/dist/atlas/benchmark/run-atlas.js +210 -0
  29. package/dist/atlas/benchmark/run-atlas.js.map +1 -0
  30. package/dist/atlas/benchmark/stats.d.ts +90 -0
  31. package/dist/atlas/benchmark/stats.d.ts.map +1 -0
  32. package/dist/atlas/benchmark/stats.js +159 -0
  33. package/dist/atlas/benchmark/stats.js.map +1 -0
  34. package/dist/atlas/benchmark/study.d.ts +120 -0
  35. package/dist/atlas/benchmark/study.d.ts.map +1 -0
  36. package/dist/atlas/benchmark/study.js +192 -0
  37. package/dist/atlas/benchmark/study.js.map +1 -0
  38. package/dist/atlas/benchmark/types.d.ts +79 -0
  39. package/dist/atlas/benchmark/types.d.ts.map +1 -0
  40. package/dist/atlas/benchmark/types.js +46 -0
  41. package/dist/atlas/benchmark/types.js.map +1 -0
  42. package/dist/atlas/composition-table.d.ts +55 -0
  43. package/dist/atlas/composition-table.d.ts.map +1 -0
  44. package/dist/atlas/composition-table.js +133 -0
  45. package/dist/atlas/composition-table.js.map +1 -0
  46. package/dist/atlas/conventions.d.ts +63 -0
  47. package/dist/atlas/conventions.d.ts.map +1 -0
  48. package/dist/atlas/conventions.js +93 -0
  49. package/dist/atlas/conventions.js.map +1 -0
  50. package/dist/atlas/coverage.d.ts +93 -0
  51. package/dist/atlas/coverage.d.ts.map +1 -0
  52. package/dist/atlas/coverage.js +69 -0
  53. package/dist/atlas/coverage.js.map +1 -0
  54. package/dist/atlas/derivation.d.ts +137 -0
  55. package/dist/atlas/derivation.d.ts.map +1 -0
  56. package/dist/atlas/derivation.js +190 -0
  57. package/dist/atlas/derivation.js.map +1 -0
  58. package/dist/atlas/derive-evidence.d.ts +218 -0
  59. package/dist/atlas/derive-evidence.d.ts.map +1 -0
  60. package/dist/atlas/derive-evidence.js +225 -0
  61. package/dist/atlas/derive-evidence.js.map +1 -0
  62. package/dist/atlas/diffusion/bridges-closure.d.ts +63 -0
  63. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -0
  64. package/dist/atlas/diffusion/bridges-closure.js +324 -0
  65. package/dist/atlas/diffusion/bridges-closure.js.map +1 -0
  66. package/dist/atlas/diffusion/bridges.d.ts +36 -0
  67. package/dist/atlas/diffusion/bridges.d.ts.map +1 -0
  68. package/dist/atlas/diffusion/bridges.js +226 -0
  69. package/dist/atlas/diffusion/bridges.js.map +1 -0
  70. package/dist/atlas/diffusion/dimensions.d.ts +21 -0
  71. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -0
  72. package/dist/atlas/diffusion/dimensions.js +21 -0
  73. package/dist/atlas/diffusion/dimensions.js.map +1 -0
  74. package/dist/atlas/diffusion/index.d.ts +16 -0
  75. package/dist/atlas/diffusion/index.d.ts.map +1 -0
  76. package/dist/atlas/diffusion/index.js +23 -0
  77. package/dist/atlas/diffusion/index.js.map +1 -0
  78. package/dist/atlas/diffusion/models.d.ts +24 -0
  79. package/dist/atlas/diffusion/models.d.ts.map +1 -0
  80. package/dist/atlas/diffusion/models.js +139 -0
  81. package/dist/atlas/diffusion/models.js.map +1 -0
  82. package/dist/atlas/diffusion/numerics.d.ts +181 -0
  83. package/dist/atlas/diffusion/numerics.d.ts.map +1 -0
  84. package/dist/atlas/diffusion/numerics.js +251 -0
  85. package/dist/atlas/diffusion/numerics.js.map +1 -0
  86. package/dist/atlas/error-algebra.d.ts +52 -0
  87. package/dist/atlas/error-algebra.d.ts.map +1 -0
  88. package/dist/atlas/error-algebra.js +55 -0
  89. package/dist/atlas/error-algebra.js.map +1 -0
  90. package/dist/atlas/export.d.ts +48 -0
  91. package/dist/atlas/export.d.ts.map +1 -0
  92. package/dist/atlas/export.js +106 -0
  93. package/dist/atlas/export.js.map +1 -0
  94. package/dist/atlas/families.d.ts +14 -0
  95. package/dist/atlas/families.d.ts.map +1 -0
  96. package/dist/atlas/families.js +20 -0
  97. package/dist/atlas/families.js.map +1 -0
  98. package/dist/atlas/index.d.ts +90 -0
  99. package/dist/atlas/index.d.ts.map +1 -0
  100. package/dist/atlas/index.js +69 -0
  101. package/dist/atlas/index.js.map +1 -0
  102. package/dist/atlas/link-prediction.d.ts +71 -0
  103. package/dist/atlas/link-prediction.d.ts.map +1 -0
  104. package/dist/atlas/link-prediction.js +128 -0
  105. package/dist/atlas/link-prediction.js.map +1 -0
  106. package/dist/atlas/model.d.ts +70 -0
  107. package/dist/atlas/model.d.ts.map +1 -0
  108. package/dist/atlas/model.js +26 -0
  109. package/dist/atlas/model.js.map +1 -0
  110. package/dist/atlas/oscillators/bridges-coarse.d.ts +71 -0
  111. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -0
  112. package/dist/atlas/oscillators/bridges-coarse.js +146 -0
  113. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -0
  114. package/dist/atlas/oscillators/bridges-exact.d.ts +70 -0
  115. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -0
  116. package/dist/atlas/oscillators/bridges-exact.js +227 -0
  117. package/dist/atlas/oscillators/bridges-exact.js.map +1 -0
  118. package/dist/atlas/oscillators/bridges-limits.d.ts +118 -0
  119. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -0
  120. package/dist/atlas/oscillators/bridges-limits.js +342 -0
  121. package/dist/atlas/oscillators/bridges-limits.js.map +1 -0
  122. package/dist/atlas/oscillators/dimensions.d.ts +34 -0
  123. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -0
  124. package/dist/atlas/oscillators/dimensions.js +34 -0
  125. package/dist/atlas/oscillators/dimensions.js.map +1 -0
  126. package/dist/atlas/oscillators/index.d.ts +38 -0
  127. package/dist/atlas/oscillators/index.d.ts.map +1 -0
  128. package/dist/atlas/oscillators/index.js +37 -0
  129. package/dist/atlas/oscillators/index.js.map +1 -0
  130. package/dist/atlas/oscillators/models.d.ts +25 -0
  131. package/dist/atlas/oscillators/models.d.ts.map +1 -0
  132. package/dist/atlas/oscillators/models.js +160 -0
  133. package/dist/atlas/oscillators/models.js.map +1 -0
  134. package/dist/atlas/oscillators/rejections.d.ts +21 -0
  135. package/dist/atlas/oscillators/rejections.d.ts.map +1 -0
  136. package/dist/atlas/oscillators/rejections.js +54 -0
  137. package/dist/atlas/oscillators/rejections.js.map +1 -0
  138. package/dist/atlas/path-bound.d.ts +143 -0
  139. package/dist/atlas/path-bound.d.ts.map +1 -0
  140. package/dist/atlas/path-bound.js +268 -0
  141. package/dist/atlas/path-bound.js.map +1 -0
  142. package/dist/atlas/poster/associations.d.ts +66 -0
  143. package/dist/atlas/poster/associations.d.ts.map +1 -0
  144. package/dist/atlas/poster/associations.js +90 -0
  145. package/dist/atlas/poster/associations.js.map +1 -0
  146. package/dist/atlas/poster/derivations.d.ts +156 -0
  147. package/dist/atlas/poster/derivations.d.ts.map +1 -0
  148. package/dist/atlas/poster/derivations.js +430 -0
  149. package/dist/atlas/poster/derivations.js.map +1 -0
  150. package/dist/atlas/poster/statements.d.ts +198 -0
  151. package/dist/atlas/poster/statements.d.ts.map +1 -0
  152. package/dist/atlas/poster/statements.js +365 -0
  153. package/dist/atlas/poster/statements.js.map +1 -0
  154. package/dist/atlas/public.d.ts +26 -0
  155. package/dist/atlas/public.d.ts.map +1 -0
  156. package/dist/atlas/public.js +21 -0
  157. package/dist/atlas/public.js.map +1 -0
  158. package/dist/atlas/regime.d.ts +171 -0
  159. package/dist/atlas/regime.d.ts.map +1 -0
  160. package/dist/atlas/regime.js +309 -0
  161. package/dist/atlas/regime.js.map +1 -0
  162. package/dist/atlas/serialize.d.ts +50 -0
  163. package/dist/atlas/serialize.d.ts.map +1 -0
  164. package/dist/atlas/serialize.js +180 -0
  165. package/dist/atlas/serialize.js.map +1 -0
  166. package/dist/atlas/statement.d.ts +165 -0
  167. package/dist/atlas/statement.d.ts.map +1 -0
  168. package/dist/atlas/statement.js +176 -0
  169. package/dist/atlas/statement.js.map +1 -0
  170. package/dist/atlas/types.d.ts +308 -0
  171. package/dist/atlas/types.d.ts.map +1 -0
  172. package/dist/atlas/types.js +61 -0
  173. package/dist/atlas/types.js.map +1 -0
  174. package/dist/atlas/waves/bridges-closure.d.ts +39 -0
  175. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -0
  176. package/dist/atlas/waves/bridges-closure.js +223 -0
  177. package/dist/atlas/waves/bridges-closure.js.map +1 -0
  178. package/dist/atlas/waves/bridges.d.ts +49 -0
  179. package/dist/atlas/waves/bridges.d.ts.map +1 -0
  180. package/dist/atlas/waves/bridges.js +265 -0
  181. package/dist/atlas/waves/bridges.js.map +1 -0
  182. package/dist/atlas/waves/index.d.ts +16 -0
  183. package/dist/atlas/waves/index.d.ts.map +1 -0
  184. package/dist/atlas/waves/index.js +23 -0
  185. package/dist/atlas/waves/index.js.map +1 -0
  186. package/dist/atlas/waves/models.d.ts +29 -0
  187. package/dist/atlas/waves/models.d.ts.map +1 -0
  188. package/dist/atlas/waves/models.js +127 -0
  189. package/dist/atlas/waves/models.js.map +1 -0
  190. package/dist/atlas/waves/numerics.d.ts +149 -0
  191. package/dist/atlas/waves/numerics.d.ts.map +1 -0
  192. package/dist/atlas/waves/numerics.js +218 -0
  193. package/dist/atlas/waves/numerics.js.map +1 -0
  194. package/dist/atlas/witness-artifact.d.ts +65 -0
  195. package/dist/atlas/witness-artifact.d.ts.map +1 -0
  196. package/dist/atlas/witness-artifact.js +78 -0
  197. package/dist/atlas/witness-artifact.js.map +1 -0
  198. package/dist/atlas/witness-numeric.d.ts +81 -0
  199. package/dist/atlas/witness-numeric.d.ts.map +1 -0
  200. package/dist/atlas/witness-numeric.js +105 -0
  201. package/dist/atlas/witness-numeric.js.map +1 -0
  202. package/dist/atlas/witness-result.d.ts +77 -0
  203. package/dist/atlas/witness-result.d.ts.map +1 -0
  204. package/dist/atlas/witness-result.js +39 -0
  205. package/dist/atlas/witness-result.js.map +1 -0
  206. package/dist/atlas/witness-specs.d.ts +110 -0
  207. package/dist/atlas/witness-specs.d.ts.map +1 -0
  208. package/dist/atlas/witness-specs.js +372 -0
  209. package/dist/atlas/witness-specs.js.map +1 -0
  210. package/dist/atlas/witness-symbolic.d.ts +79 -0
  211. package/dist/atlas/witness-symbolic.d.ts.map +1 -0
  212. package/dist/atlas/witness-symbolic.js +140 -0
  213. package/dist/atlas/witness-symbolic.js.map +1 -0
  214. package/dist/atlas/witnesses/quantum-support.d.ts +50 -0
  215. package/dist/atlas/witnesses/quantum-support.d.ts.map +1 -0
  216. package/dist/atlas/witnesses/quantum-support.js +48 -0
  217. package/dist/atlas/witnesses/quantum-support.js.map +1 -0
  218. package/dist/bridges/be11-decoherence-confrontation.js.map +1 -1
  219. package/dist/bridges/be21-kss-confrontation.js.map +1 -1
  220. package/dist/bridges/be23-planckian-confrontation.js.map +1 -1
  221. package/dist/bridges/be35-bootstrap-confrontation.js.map +1 -1
  222. package/dist/bridges/be36-gw170817-confrontation.js.map +1 -1
  223. package/dist/bridges/be37-cassini-confrontation.js.map +1 -1
  224. package/dist/bridges/be48-collapse-confrontation.js.map +1 -1
  225. package/dist/bridges/be51-lensing-confrontation.js.map +1 -1
  226. package/dist/bridges/be52-mercury-confrontation.js.map +1 -1
  227. package/dist/bridges/be55-quantum-hall-confrontation.js.map +1 -1
  228. package/dist/bridges/be56-casimir-confrontation.js.map +1 -1
  229. package/dist/bridges/be58-johnson-nyquist-confrontation.js.map +1 -1
  230. package/dist/bridges/be59-ac-josephson-confrontation.js.map +1 -1
  231. package/dist/bridges/be60-fractional-qh-confrontation.js.map +1 -1
  232. package/dist/bridges/be61-wiedemann-franz-confrontation.js.map +1 -1
  233. package/dist/bridges/be62-bcs-gap-confrontation.js.map +1 -1
  234. package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +1 -1
  235. package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +1 -1
  236. package/dist/bridges/be65-jeans-mass-confrontation.js.map +1 -1
  237. package/dist/bridges/bridge-equations.d.ts +2 -1
  238. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  239. package/dist/bridges/bridge-equations.js +3 -2
  240. package/dist/bridges/bridge-equations.js.map +1 -1
  241. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  242. package/dist/bridges/catalog-adapter.js.map +1 -1
  243. package/dist/bridges/equations/_be-helpers.d.ts +2 -2
  244. package/dist/bridges/equations/_be-helpers.js +2 -2
  245. package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
  246. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +88 -58
  247. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
  248. package/dist/bridges/equations/be-35-conformal-bootstrap.js +102 -62
  249. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
  250. package/dist/bridges/equations/be-48-grw-localization.d.ts +9 -8
  251. package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
  252. package/dist/bridges/equations/be-48-grw-localization.js +9 -8
  253. package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
  254. package/dist/bridges/gravitational-lensing.d.ts +10 -0
  255. package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
  256. package/dist/bridges/gravitational-lensing.js.map +1 -1
  257. package/dist/bridges/index.d.ts +125 -7
  258. package/dist/bridges/index.d.ts.map +1 -1
  259. package/dist/bridges/index.js +483 -20
  260. package/dist/bridges/index.js.map +1 -1
  261. package/dist/bridges/perihelion-precession.d.ts +10 -0
  262. package/dist/bridges/perihelion-precession.d.ts.map +1 -1
  263. package/dist/bridges/perihelion-precession.js.map +1 -1
  264. package/dist/bridges/rhs-registry.js +2 -2
  265. package/dist/canonical/canonical-equation.d.ts +15 -0
  266. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  267. package/dist/canonical/entries/_l1-build.d.ts +1 -1
  268. package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
  269. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  270. package/dist/canonical/entries/atomic.js +23 -0
  271. package/dist/canonical/entries/atomic.js.map +1 -1
  272. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  273. package/dist/canonical/entries/nonmonomial.js +93 -0
  274. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  275. package/dist/canonical/normal-form.js.map +1 -1
  276. package/dist/canonical/residual.d.ts +28 -0
  277. package/dist/canonical/residual.d.ts.map +1 -0
  278. package/dist/canonical/residual.js +31 -0
  279. package/dist/canonical/residual.js.map +1 -0
  280. package/dist/cli/command.d.ts +8 -0
  281. package/dist/cli/command.d.ts.map +1 -1
  282. package/dist/cli/command.js +10 -0
  283. package/dist/cli/command.js.map +1 -1
  284. package/dist/cli/commands/atlas.d.ts +3 -0
  285. package/dist/cli/commands/atlas.d.ts.map +1 -0
  286. package/dist/cli/commands/atlas.js +158 -0
  287. package/dist/cli/commands/atlas.js.map +1 -0
  288. package/dist/cli/commands/confront.js.map +1 -1
  289. package/dist/cli/commands/coverage.js +3 -3
  290. package/dist/cli/commands/index.d.ts +3 -0
  291. package/dist/cli/commands/index.d.ts.map +1 -1
  292. package/dist/cli/commands/index.js +3 -0
  293. package/dist/cli/commands/index.js.map +1 -1
  294. package/dist/cli/commands/map.d.ts.map +1 -1
  295. package/dist/cli/commands/map.js +161 -27
  296. package/dist/cli/commands/map.js.map +1 -1
  297. package/dist/cli/commands/path.d.ts +3 -0
  298. package/dist/cli/commands/path.d.ts.map +1 -0
  299. package/dist/cli/commands/path.js +145 -0
  300. package/dist/cli/commands/path.js.map +1 -0
  301. package/dist/cli/commands/recover.d.ts.map +1 -1
  302. package/dist/cli/commands/recover.js +25 -6
  303. package/dist/cli/commands/recover.js.map +1 -1
  304. package/dist/cli/commands/regime.d.ts +14 -0
  305. package/dist/cli/commands/regime.d.ts.map +1 -0
  306. package/dist/cli/commands/regime.js +189 -0
  307. package/dist/cli/commands/regime.js.map +1 -0
  308. package/dist/cli/errors.d.ts.map +1 -1
  309. package/dist/cli/graphs.d.ts.map +1 -1
  310. package/dist/cli/graphs.js +5 -1
  311. package/dist/cli/graphs.js.map +1 -1
  312. package/dist/cli/main.d.ts.map +1 -1
  313. package/dist/cli/main.js +22 -0
  314. package/dist/cli/main.js.map +1 -1
  315. package/dist/cli/output.d.ts +6 -1
  316. package/dist/cli/output.d.ts.map +1 -1
  317. package/dist/cli/output.js.map +1 -1
  318. package/dist/cli/version.js.map +1 -1
  319. package/dist/cli-api.d.ts +16 -0
  320. package/dist/cli-api.d.ts.map +1 -1
  321. package/dist/cli-api.js +18 -0
  322. package/dist/cli-api.js.map +1 -1
  323. package/dist/composition/axis-audit.js.map +1 -1
  324. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  325. package/dist/composition/bridge-prediction.js +0 -0
  326. package/dist/composition/bridge-prediction.js.map +1 -1
  327. package/dist/composition/canonical-graph.d.ts +2 -2
  328. package/dist/composition/canonical-graph.js +2 -2
  329. package/dist/composition/canonical-graph.js.map +1 -1
  330. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  331. package/dist/composition/compose-symbolic.js.map +1 -1
  332. package/dist/composition/compose.d.ts.map +1 -1
  333. package/dist/composition/compose.js +80 -1
  334. package/dist/composition/compose.js.map +1 -1
  335. package/dist/composition/consequence.js.map +1 -1
  336. package/dist/composition/discovery.js.map +1 -1
  337. package/dist/composition/edge.d.ts +64 -0
  338. package/dist/composition/edge.d.ts.map +1 -1
  339. package/dist/composition/edge.js +29 -0
  340. package/dist/composition/edge.js.map +1 -1
  341. package/dist/composition/edges/calibration.d.ts.map +1 -1
  342. package/dist/composition/edges/calibration.js +46 -0
  343. package/dist/composition/edges/calibration.js.map +1 -1
  344. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  345. package/dist/composition/edges/catalog-quantum.js +9 -0
  346. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  347. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  348. package/dist/composition/edges/catalog-tranche.js +18 -0
  349. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  350. package/dist/composition/enumerate.js.map +1 -1
  351. package/dist/composition/explain.js.map +1 -1
  352. package/dist/composition/expr-eval.d.ts.map +1 -1
  353. package/dist/composition/expr-eval.js.map +1 -1
  354. package/dist/composition/expr-simplify.d.ts +13 -0
  355. package/dist/composition/expr-simplify.d.ts.map +1 -1
  356. package/dist/composition/expr-simplify.js +25 -0
  357. package/dist/composition/expr-simplify.js.map +1 -1
  358. package/dist/composition/expr-subst.js.map +1 -1
  359. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  360. package/dist/composition/graph-viz.d.ts +118 -1
  361. package/dist/composition/graph-viz.d.ts.map +1 -1
  362. package/dist/composition/graph-viz.js +189 -6
  363. package/dist/composition/graph-viz.js.map +1 -1
  364. package/dist/composition/identifiability.js.map +1 -1
  365. package/dist/composition/index.d.ts +4 -2
  366. package/dist/composition/index.d.ts.map +1 -1
  367. package/dist/composition/index.js +2 -1
  368. package/dist/composition/index.js.map +1 -1
  369. package/dist/composition/poster-source.d.ts +153 -0
  370. package/dist/composition/poster-source.d.ts.map +1 -0
  371. package/dist/composition/poster-source.js +183 -0
  372. package/dist/composition/poster-source.js.map +1 -0
  373. package/dist/composition/probe/backend-protocol.d.ts +34 -1
  374. package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
  375. package/dist/composition/probe/backend-protocol.js +9 -2
  376. package/dist/composition/probe/backend-protocol.js.map +1 -1
  377. package/dist/composition/probe/candidate-store.d.ts.map +1 -1
  378. package/dist/composition/probe/limits.js.map +1 -1
  379. package/dist/composition/probe/pipeline.js.map +1 -1
  380. package/dist/composition/probe/problem.js.map +1 -1
  381. package/dist/composition/probe/residual.d.ts.map +1 -1
  382. package/dist/composition/probe/residual.js.map +1 -1
  383. package/dist/composition/probe/search-budget.js.map +1 -1
  384. package/dist/composition/proposed-bridges.d.ts +2 -2
  385. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  386. package/dist/composition/proposed-bridges.js +1 -1
  387. package/dist/composition/proposed-bridges.js.map +1 -1
  388. package/dist/composition/retrodiction.js.map +1 -1
  389. package/dist/composition/uncertainty.d.ts +52 -2
  390. package/dist/composition/uncertainty.d.ts.map +1 -1
  391. package/dist/composition/uncertainty.js +38 -2
  392. package/dist/composition/uncertainty.js.map +1 -1
  393. package/dist/composition/user-equation.d.ts.map +1 -1
  394. package/dist/core/flux-rules.d.ts.map +1 -1
  395. package/dist/core/flux-rules.js.map +1 -1
  396. package/dist/core/labeled-tensor.d.ts.map +1 -1
  397. package/dist/core/regime-registry.d.ts.map +1 -1
  398. package/dist/core/regime-rule-install.js.map +1 -1
  399. package/dist/core/tensor.d.ts.map +1 -1
  400. package/dist/core/tensor.js.map +1 -1
  401. package/dist/core/types.d.ts.map +1 -1
  402. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  403. package/dist/dimensional/ast-types.d.ts +31 -1
  404. package/dist/dimensional/ast-types.d.ts.map +1 -1
  405. package/dist/dimensional/bridge-check.d.ts +1 -1
  406. package/dist/dimensional/bridge-check.js +1 -1
  407. package/dist/dimensional/buckingham.d.ts.map +1 -1
  408. package/dist/dimensional/connection.d.ts +2 -0
  409. package/dist/dimensional/connection.d.ts.map +1 -1
  410. package/dist/dimensional/connection.js +2 -0
  411. package/dist/dimensional/connection.js.map +1 -1
  412. package/dist/dimensional/curvature-composite.d.ts +5 -3
  413. package/dist/dimensional/curvature-composite.d.ts.map +1 -1
  414. package/dist/dimensional/curvature-composite.js +1 -0
  415. package/dist/dimensional/curvature-composite.js.map +1 -1
  416. package/dist/dimensional/curvature-invariants.d.ts +2 -0
  417. package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
  418. package/dist/dimensional/curvature-invariants.js +2 -0
  419. package/dist/dimensional/curvature-invariants.js.map +1 -1
  420. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  421. package/dist/dimensional/einstein-equation.d.ts +3 -3
  422. package/dist/dimensional/einstein-equation.js +3 -3
  423. package/dist/dimensional/errors.d.ts.map +1 -1
  424. package/dist/dimensional/metric.d.ts +5 -2
  425. package/dist/dimensional/metric.d.ts.map +1 -1
  426. package/dist/dimensional/metric.js +5 -2
  427. package/dist/dimensional/metric.js.map +1 -1
  428. package/dist/dimensional/tensor-trace.js.map +1 -1
  429. package/dist/dimensional/validator-registry.js.map +1 -1
  430. package/dist/dimensional/validator.d.ts +3 -2
  431. package/dist/dimensional/validator.d.ts.map +1 -1
  432. package/dist/dimensional/validator.js +23 -4
  433. package/dist/dimensional/validator.js.map +1 -1
  434. package/dist/index.d.ts +4 -3
  435. package/dist/index.d.ts.map +1 -1
  436. package/dist/index.js +4 -1
  437. package/dist/index.js.map +1 -1
  438. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  439. package/dist/numerical/curvature-lowering-helpers.js +142 -1
  440. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  441. package/dist/numerical/errors.d.ts.map +1 -1
  442. package/dist/numerical/errors.js.map +1 -1
  443. package/dist/numerical/float64-engine.d.ts.map +1 -1
  444. package/dist/numerical/float64-engine.js +51 -24
  445. package/dist/numerical/float64-engine.js.map +1 -1
  446. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  447. package/dist/numerical/formula-dimension.js.map +1 -1
  448. package/dist/numerical/formula.d.ts.map +1 -1
  449. package/dist/numerical/formula.js.map +1 -1
  450. package/dist/numerical/geometrized.d.ts.map +1 -1
  451. package/dist/numerical/gl4-integrator.d.ts +3 -3
  452. package/dist/numerical/gl4-integrator.js +3 -3
  453. package/dist/numerical/killing.d.ts +47 -5
  454. package/dist/numerical/killing.d.ts.map +1 -1
  455. package/dist/numerical/killing.js +41 -3
  456. package/dist/numerical/killing.js.map +1 -1
  457. package/dist/numerical/klein-gordon.d.ts +2 -2
  458. package/dist/numerical/klein-gordon.js +2 -2
  459. package/dist/numerical/lowering.d.ts +2 -2
  460. package/dist/numerical/lowering.d.ts.map +1 -1
  461. package/dist/numerical/lowering.js +5 -3
  462. package/dist/numerical/lowering.js.map +1 -1
  463. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  464. package/dist/numerical/mathts-engine.js.map +1 -1
  465. package/dist/numerical/metric-inverse.js.map +1 -1
  466. package/dist/numerical/perihelion-finder.d.ts +15 -13
  467. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  468. package/dist/numerical/perihelion-finder.js +15 -13
  469. package/dist/numerical/perihelion-finder.js.map +1 -1
  470. package/dist/numerical/weyl-lowering.d.ts.map +1 -1
  471. package/dist/numerical/weyl-lowering.js +90 -40
  472. package/dist/numerical/weyl-lowering.js.map +1 -1
  473. package/package.json +121 -104
@@ -0,0 +1,265 @@
1
+ /**
2
+ * Atlas Phase 4, S4.5 — the four bridges of the wave family.
3
+ *
4
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §4.
5
+ *
6
+ * | Bridge | Relation | Premises | Witnesses |
7
+ * |---|---|---|---|
8
+ * | string → 1-D wave | `restriction` | 1 | WS1 (convergence) |
9
+ * | 1-D wave → d'Alembert | `derivation` | 1 | WS2 (convergence) |
10
+ * | Euler + adiabatic EOS → sound | `derivation` | **2 (hyperedge)** | WS3 (convergence), WS3b (Newton) |
11
+ * | Klein–Gordon → 1-D wave | `approximation` | 1 | WS4 (convergence), WS4b (long waves) |
12
+ *
13
+ * The chain → wave coarse-graining the plan also lists already exists in the
14
+ * oscillator family (`ab-chain-wave`) and is not duplicated.
15
+ *
16
+ * @module atlas/waves/bridges
17
+ */
18
+ import { FORCE, FREQUENCY, VELOCITY } from '../../dimensional/types.js';
19
+ import { DENSITY } from '../diffusion/dimensions.js';
20
+ import { makeApproximation } from '../oscillators/bridges-limits.js';
21
+ import { deriveRegimeGroups } from '../regime.js';
22
+ import { LINEAR_DENSITY, PRESSURE, WAVENUMBER, WAVES_FAMILY_NAME } from './models.js';
23
+ import { kleinGordonPhaseError } from './numerics.js';
24
+ const TEST = 'tests/atlas/waves.test.ts';
25
+ /** The perturbation ceiling of the sound derivation: `p₁/p₀ ≤ 1/100`. @internal */
26
+ export const SOUND_MAX_PERTURBATION = 0.01;
27
+ /** The dispersion-free domain edge: `ω₀/(c k) ≤ 0.1`. @internal */
28
+ export const KG_MAX_DISPERSION_RATIO = 0.1;
29
+ /** Bridge: string → 1-D wave equation, a restriction with c² = F/μ. @internal */
30
+ export const BRIDGE_STRING_WAVE = {
31
+ id: 'ab-string-wave',
32
+ relation: 'restriction',
33
+ premises: ['model-string'],
34
+ conclusion: 'model-wave-1d',
35
+ transformation: 'y ↦ u, with c² = F/μ',
36
+ preserves: ['the solution operator for small slopes', 'normal-mode frequencies nπc/ℓ'],
37
+ doesNotPreserve: [
38
+ 'the separate values of F and μ — only F/μ survives',
39
+ 'the transverse geometry: the wave equation does not know u is a displacement',
40
+ ],
41
+ sideConditions: ['small slopes |y_x| ≪ 1', 'uniform tension and density', 'perfectly flexible'],
42
+ regime: {
43
+ family: WAVES_FAMILY_NAME,
44
+ inequalities: [],
45
+ groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, [
46
+ { name: 'F', dim: FORCE },
47
+ { name: 'mu', dim: LINEAR_DENSITY },
48
+ { name: 'c', dim: VELOCITY },
49
+ ], []),
50
+ },
51
+ counterexamples: [],
52
+ evidence: new Set(['proposed', 'numerically-supported']),
53
+ witnesses: [
54
+ {
55
+ id: 'WS1',
56
+ kind: 'numeric',
57
+ test: TEST,
58
+ tolerance: 'leapfrog string solution at the midpoint within 2e-4 of sin(πx)cos(πct), c = √(F/μ), at 80 cells',
59
+ },
60
+ ],
61
+ citations: [
62
+ 'Morse & Ingard, Theoretical Acoustics - the flexible string and its wave equation with c² = T/ρ',
63
+ ],
64
+ reviewStatus: 'proposed',
65
+ };
66
+ /** Bridge: 1-D wave equation → d'Alembert's general solution. @internal */
67
+ export const BRIDGE_WAVE_DALEMBERT = {
68
+ id: 'ab-wave-dalembert',
69
+ relation: 'derivation',
70
+ premises: ['model-wave-1d'],
71
+ conclusion: 'model-dalembert',
72
+ transformation: 'characteristics ξ = x − ct, η = x + ct turn u_tt = c²u_xx into u_ξη = 0',
73
+ preserves: ['every C² solution on the whole line', 'the speed c'],
74
+ doesNotPreserve: [
75
+ 'boundary conditions: on a bounded domain f and g are fixed only up to reflections',
76
+ ],
77
+ sideConditions: ['infinite line, or boundaries handled by the method of images', 'u ∈ C²'],
78
+ regime: {
79
+ family: WAVES_FAMILY_NAME,
80
+ inequalities: [],
81
+ groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, [{ name: 'c', dim: VELOCITY }], []),
82
+ },
83
+ counterexamples: [],
84
+ evidence: new Set(['proposed', 'numerically-supported']),
85
+ witnesses: [
86
+ {
87
+ id: 'WS2',
88
+ kind: 'numeric',
89
+ test: TEST,
90
+ tolerance: 'finite-difference residual |u_tt − c²u_xx| below 2e-3 at h = 0.0125',
91
+ },
92
+ ],
93
+ citations: [
94
+ "d'Alembert, Recherches sur la courbe que forme une corde tendue mise en vibration (1747)",
95
+ 'Strauss, Partial Differential Equations: An Introduction - §2.1, the wave equation on the line',
96
+ ],
97
+ reviewStatus: 'proposed',
98
+ };
99
+ /**
100
+ * Bridge: linearized Euler + adiabatic EOS → the acoustic wave equation.
101
+ *
102
+ * A HYPEREDGE: neither premise alone yields sound. The Euler pair has no
103
+ * closure from ρ′ to p′, and the equation of state has no dynamics.
104
+ *
105
+ * @internal
106
+ */
107
+ export const BRIDGE_SOUND_SPEED = {
108
+ id: 'ab-sound-speed',
109
+ relation: 'derivation',
110
+ premises: ['model-euler-linear', 'model-adiabatic-eos'],
111
+ conclusion: 'model-sound',
112
+ transformation: 'close the Euler pair with p′ = (dp/dρ)|ρ₀ ρ′ = (γp₀/ρ₀) ρ′, then eliminate v: p′_tt = (γp₀/ρ₀) p′_xx',
113
+ preserves: ['linearity', 'the sound speed c_s² = γp₀/ρ₀'],
114
+ doesNotPreserve: [
115
+ 'nonlinear steepening and shocks at finite amplitude',
116
+ 'viscous and thermal attenuation',
117
+ ],
118
+ sideConditions: [
119
+ 'small perturbations: |p′| ≪ p₀',
120
+ 'adiabatic compression (no heat exchange within a wavelength)',
121
+ 'fluid at rest, no ambient flow',
122
+ ],
123
+ regime: {
124
+ family: WAVES_FAMILY_NAME,
125
+ inequalities: [
126
+ {
127
+ group: 'p0 · p1^-1',
128
+ op: '>=',
129
+ bound: 1 / SOUND_MAX_PERTURBATION,
130
+ alias: '|p′| ≪ p₀ (machine form p₀/p₁ ≥ 100)',
131
+ },
132
+ ],
133
+ groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, [
134
+ { name: 'rho0', dim: DENSITY },
135
+ { name: 'p0', dim: PRESSURE },
136
+ { name: 'p1', dim: PRESSURE },
137
+ { name: 'c', dim: VELOCITY },
138
+ ], ['gamma']),
139
+ },
140
+ counterexamples: [
141
+ {
142
+ description: 'The adiabatic premise is necessary. Closing the same Euler pair ISOTHERMALLY (Newton) ' +
143
+ 'gives √(p₀/ρ₀) = 290.1 m/s for air at 20 °C, 15% below the measured ≈343 m/s; the ' +
144
+ 'adiabatic closure gives 343.2 m/s.',
145
+ witness: 'WS3b',
146
+ },
147
+ ],
148
+ evidence: new Set(['proposed', 'numerically-supported']),
149
+ witnesses: [
150
+ {
151
+ id: 'WS3',
152
+ kind: 'numeric',
153
+ test: TEST,
154
+ tolerance: 'staggered Euler + adiabatic-closure solution within 2e-4 of the sound model’s sin(2πx)cos(2πc_s t) at 128 cells',
155
+ },
156
+ {
157
+ id: 'WS3b',
158
+ kind: 'numeric',
159
+ test: TEST,
160
+ tolerance: 'air, 101325 Pa, 1.204 kg/m³, γ = 1.4: adiabatic 343.25 m/s, isothermal 290.10 m/s',
161
+ },
162
+ ],
163
+ citations: [
164
+ 'Laplace, Ann. Chim. Phys. 3 (1816) 238 - the adiabatic correction to Newton’s speed of sound',
165
+ 'Landau & Lifshitz, Fluid Mechanics §64 - sound waves from the linearized equations of motion',
166
+ ],
167
+ reviewStatus: 'proposed',
168
+ };
169
+ /**
170
+ * Bridge: Klein–Gordon → 1-D wave, the dispersion-free limit ω₀/(ck) → 0.
171
+ *
172
+ * `delta` is the EXACT relative phase-velocity error at the domain edge, not a
173
+ * series term: {@link kleinGordonPhaseError} is increasing in ω₀/(ck), so its
174
+ * edge value is the supremum. The pendulum record learned the hard way that a
175
+ * truncated series can sit BELOW the error it claims to bound.
176
+ *
177
+ * @internal
178
+ */
179
+ export const BRIDGE_KLEIN_GORDON_WAVE = {
180
+ id: 'ab-klein-gordon-wave',
181
+ relation: 'approximation',
182
+ premises: ['model-klein-gordon'],
183
+ conclusion: 'model-wave-1d',
184
+ transformation: 'drop the mass term ω₀²u; ω(k) = √(c²k² + ω₀²) → ck',
185
+ preserves: ['the wave speed c for short wavelengths', 'linearity'],
186
+ doesNotPreserve: [
187
+ 'dispersion: wave packets spread under Klein–Gordon and not under the wave equation',
188
+ 'the gap: Klein–Gordon has no mode below ω₀',
189
+ ],
190
+ sideConditions: ['short wavelengths: ω₀/(ck) ≤ 0.1', 'the bound is a PHASE-VELOCITY error, not uniform in time'],
191
+ bound: makeApproximation({
192
+ K: 1,
193
+ delta: kleinGordonPhaseError(KG_MAX_DISPERSION_RATIO, 1, 1),
194
+ deltaAt: (params) => {
195
+ const { omega0, c, k } = params;
196
+ return kleinGordonPhaseError(omega0 ?? Number.NaN, c ?? Number.NaN, k ?? Number.NaN);
197
+ },
198
+ norm: 'relative phase-velocity error of a Fourier mode',
199
+ domain: 'ω₀/(c k) ≤ 0.1',
200
+ horizon: 't ≪ π/(2 c k δ): the phase drift reaches π/2; machine form t < π/(2 c k δ(ω₀, c, k))',
201
+ horizonHolds: (t, params) => {
202
+ const { omega0, c, k } = params;
203
+ if (omega0 === undefined || c === undefined || k === undefined)
204
+ return false;
205
+ const delta = kleinGordonPhaseError(omega0, c, k);
206
+ if (!Number.isFinite(delta) || delta <= 0)
207
+ return delta === 0;
208
+ return t < Math.PI / (2 * c * k * delta);
209
+ },
210
+ parameterRange: 'ω₀/(c k) ≤ 0.1',
211
+ limitCharacter: 'regular',
212
+ // A phase-velocity error. The record says it is not uniform in time.
213
+ uniformity: ['phase velocity of one Fourier mode, for ω₀/(ck) ≤ 0.1'],
214
+ }),
215
+ regime: {
216
+ family: WAVES_FAMILY_NAME,
217
+ inequalities: [
218
+ {
219
+ group: 'c · omega0^-1 · k',
220
+ op: '>=',
221
+ bound: 1 / KG_MAX_DISPERSION_RATIO,
222
+ alias: 'ω₀/(c k) ≤ 0.1',
223
+ },
224
+ ],
225
+ groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, [
226
+ { name: 'c', dim: VELOCITY },
227
+ { name: 'omega0', dim: FREQUENCY },
228
+ { name: 'k', dim: WAVENUMBER },
229
+ ], []),
230
+ },
231
+ counterexamples: [
232
+ {
233
+ description: 'At ω₀/(c k) = 1 the phase velocity is √2 c: a 41% error. The dispersion-free limit is a ' +
234
+ 'short-wavelength statement and fails for the long waves the domain excludes.',
235
+ witness: 'WS4b',
236
+ },
237
+ ],
238
+ evidence: new Set(['proposed', 'numerically-supported']),
239
+ witnesses: [
240
+ {
241
+ id: 'WS4',
242
+ kind: 'numeric',
243
+ test: TEST,
244
+ tolerance: 'phase velocity within 2e-3 of c at k = 20 (ω₀ = c = 1); error falls ≈4× per doubling of k',
245
+ },
246
+ {
247
+ id: 'WS4b',
248
+ kind: 'numeric',
249
+ test: TEST,
250
+ tolerance: 'relative phase error √2 − 1 at ω₀/(ck) = 1',
251
+ },
252
+ ],
253
+ citations: [
254
+ 'Whitham, Linear and Nonlinear Waves - §11.1, dispersive waves and the Klein-Gordon equation',
255
+ ],
256
+ reviewStatus: 'proposed',
257
+ };
258
+ /** The wave family's bridges, in design-note order. @internal */
259
+ export const WAVE_BRIDGES = [
260
+ BRIDGE_STRING_WAVE,
261
+ BRIDGE_WAVE_DALEMBERT,
262
+ BRIDGE_SOUND_SPEED,
263
+ BRIDGE_KLEIN_GORDON_WAVE,
264
+ ];
265
+ //# sourceMappingURL=bridges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges.js","sourceRoot":"","sources":["../../../src/atlas/waves/bridges.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Wave-family assembly (Atlas Phase 4, S4.5).
3
+ *
4
+ * Assembly only: this module defines no physics and no numbers of its own.
5
+ *
6
+ * @module atlas/waves
7
+ */
8
+ import type { AtlasFamily } from '../oscillators/index.js';
9
+ /**
10
+ * The wave family: seven models and seven bridges (four from S4.5, three from
11
+ * the Sprint 4 closure), no rejections. Several bridges end in other families.
12
+ *
13
+ * @internal
14
+ */
15
+ export declare const WAVES_FAMILY: AtlasFamily;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK3D;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,WAK1B,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Wave-family assembly (Atlas Phase 4, S4.5).
3
+ *
4
+ * Assembly only: this module defines no physics and no numbers of its own.
5
+ *
6
+ * @module atlas/waves
7
+ */
8
+ import { WAVE_BRIDGES } from './bridges.js';
9
+ import { WAVE_CLOSURE_BRIDGES } from './bridges-closure.js';
10
+ import { WAVE_MODELS, WAVES_FAMILY_NAME } from './models.js';
11
+ /**
12
+ * The wave family: seven models and seven bridges (four from S4.5, three from
13
+ * the Sprint 4 closure), no rejections. Several bridges end in other families.
14
+ *
15
+ * @internal
16
+ */
17
+ export const WAVES_FAMILY = {
18
+ family: WAVES_FAMILY_NAME,
19
+ models: WAVE_MODELS,
20
+ bridges: [...WAVE_BRIDGES, ...WAVE_CLOSURE_BRIDGES],
21
+ rejections: [],
22
+ };
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/atlas/waves/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,oBAAoB,CAAC;IACnD,UAAU,EAAE,EAAE;CACf,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Atlas Phase 4, S4.5 — the models of the wave family.
3
+ *
4
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §4.
5
+ *
6
+ * The 1-D wave equation itself is NOT redefined here. It is `model-wave-1d` in
7
+ * the oscillator family, where Phase 0 put it as the conclusion of the chain →
8
+ * wave coarse-graining. The wave family's bridges point at that same record,
9
+ * because a second definition of one model would be a second source of truth.
10
+ * `tests/atlas/families.test.ts` pins that model ids are unique across the
11
+ * whole atlas and that every bridge endpoint resolves in SOME registered family.
12
+ *
13
+ * @module atlas/waves/models
14
+ */
15
+ import type { Dimension } from '../../dimensional/types.js';
16
+ import type { AtlasModel } from '../model.js';
17
+ /** The family name every wave record carries. @internal */
18
+ export declare const WAVES_FAMILY_NAME = "waves";
19
+ /** kg/m, `L^-1 M` — `src/canonical/entries/dimensional-classics.ts` (`LIN_DENSITY`). @internal */
20
+ export declare const LINEAR_DENSITY: Dimension;
21
+ /** Pa, `L^-1 M T^-2` — `src/canonical/entries/fluids-waves.ts` (`PRESSURE`). @internal */
22
+ export declare const PRESSURE: Dimension;
23
+ /** Flexural rigidity E·I, N·m², `L^3 M T^-2`. @internal */
24
+ export declare const FLEXURAL_RIGIDITY: Dimension;
25
+ /** rad/m, `L^-1`. @internal */
26
+ export declare const WAVENUMBER: Dimension;
27
+ /** The wave-family models, in design-note order. @internal */
28
+ export declare const WAVE_MODELS: readonly AtlasModel[];
29
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC,kGAAkG;AAClG,eAAO,MAAM,cAAc,EAAE,SAAsB,CAAC;AAEpD,0FAA0F;AAC1F,eAAO,MAAM,QAAQ,EAAE,SAA0B,CAAC;AAElD,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,EAAE,SAAyB,CAAC;AAE1D,+BAA+B;AAC/B,eAAO,MAAM,UAAU,EAAE,SAAmB,CAAC;AA+B7C,8DAA8D;AAC9D,eAAO,MAAM,WAAW,EAAE,SAAS,UAAU,EA8E5C,CAAC"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Atlas Phase 4, S4.5 — the models of the wave family.
3
+ *
4
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §4.
5
+ *
6
+ * The 1-D wave equation itself is NOT redefined here. It is `model-wave-1d` in
7
+ * the oscillator family, where Phase 0 put it as the conclusion of the chain →
8
+ * wave coarse-graining. The wave family's bridges point at that same record,
9
+ * because a second definition of one model would be a second source of truth.
10
+ * `tests/atlas/families.test.ts` pins that model ids are unique across the
11
+ * whole atlas and that every bridge endpoint resolves in SOME registered family.
12
+ *
13
+ * @module atlas/waves/models
14
+ */
15
+ import { dim } from '../../dimensional/ast-builders.js';
16
+ import { FORCE, FREQUENCY, VELOCITY } from '../../dimensional/types.js';
17
+ import { DENSITY } from '../diffusion/dimensions.js';
18
+ import { deriveRegimeGroups } from '../regime.js';
19
+ /** The family name every wave record carries. @internal */
20
+ export const WAVES_FAMILY_NAME = 'waves';
21
+ /** kg/m, `L^-1 M` — `src/canonical/entries/dimensional-classics.ts` (`LIN_DENSITY`). @internal */
22
+ export const LINEAR_DENSITY = dim(-1, 1);
23
+ /** Pa, `L^-1 M T^-2` — `src/canonical/entries/fluids-waves.ts` (`PRESSURE`). @internal */
24
+ export const PRESSURE = dim(-1, 1, -2);
25
+ /** Flexural rigidity E·I, N·m², `L^3 M T^-2`. @internal */
26
+ export const FLEXURAL_RIGIDITY = dim(3, 1, -2);
27
+ /** rad/m, `L^-1`. @internal */
28
+ export const WAVENUMBER = dim(-1);
29
+ function model(spec) {
30
+ const dimensionless = spec.dimensionlessInputs ?? [];
31
+ return {
32
+ id: spec.id,
33
+ family: WAVES_FAMILY_NAME,
34
+ stateSpace: spec.stateSpace,
35
+ dynamics: spec.dynamics,
36
+ observables: spec.observables,
37
+ parameters: spec.parameters,
38
+ dimensionlessInputs: dimensionless,
39
+ canonicalRefs: spec.canonicalRefs,
40
+ regime: {
41
+ family: WAVES_FAMILY_NAME,
42
+ inequalities: [],
43
+ groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, spec.parameters, dimensionless),
44
+ },
45
+ };
46
+ }
47
+ /** The wave-family models, in design-note order. @internal */
48
+ export const WAVE_MODELS = [
49
+ model({
50
+ id: 'model-string',
51
+ stateSpace: 'y(x, t), transverse displacement of a string on [0, ℓ]',
52
+ dynamics: 'μ y_tt = F y_xx (small slopes, |y_x| ≪ 1)',
53
+ observables: ['y', 'y_t', 'normal-mode frequencies'],
54
+ parameters: [
55
+ { name: 'F', dim: FORCE },
56
+ { name: 'mu', dim: LINEAR_DENSITY },
57
+ ],
58
+ canonicalRefs: ['CE-string-wave-speed'],
59
+ }),
60
+ model({
61
+ id: 'model-dalembert',
62
+ stateSpace: 'u(x, t) = f(x − ct) + g(x + ct), f and g twice differentiable',
63
+ dynamics: 'two profiles translating rigidly at ±c',
64
+ observables: ['u', 'the two travelling profiles'],
65
+ parameters: [{ name: 'c', dim: VELOCITY }],
66
+ canonicalRefs: [],
67
+ }),
68
+ model({
69
+ id: 'model-euler-linear',
70
+ stateSpace: '(ρ′, v)(x, t), small perturbations of a fluid at rest',
71
+ dynamics: '∂ρ′/∂t = −ρ₀ ∂v/∂x, ρ₀ ∂v/∂t = −∂p′/∂x',
72
+ observables: ['ρ′', 'v', 'p′'],
73
+ parameters: [
74
+ { name: 'rho0', dim: DENSITY },
75
+ { name: 'p0', dim: PRESSURE },
76
+ ],
77
+ canonicalRefs: [],
78
+ }),
79
+ model({
80
+ id: 'model-adiabatic-eos',
81
+ stateSpace: 'p(ρ), a barotropic closure',
82
+ dynamics: 'p = p₀ (ρ/ρ₀)^γ',
83
+ observables: ['p', 'dp/dρ'],
84
+ parameters: [
85
+ { name: 'rho0', dim: DENSITY },
86
+ { name: 'p0', dim: PRESSURE },
87
+ ],
88
+ dimensionlessInputs: ['gamma'],
89
+ canonicalRefs: [],
90
+ }),
91
+ model({
92
+ id: 'model-sound',
93
+ stateSpace: 'p′(x, t), the acoustic pressure',
94
+ dynamics: 'p′_tt = c_s² p′_xx with c_s² = γ p₀/ρ₀',
95
+ observables: ['p′', 'sound speed c_s'],
96
+ parameters: [
97
+ { name: 'rho0', dim: DENSITY },
98
+ { name: 'p0', dim: PRESSURE },
99
+ ],
100
+ dimensionlessInputs: ['gamma'],
101
+ canonicalRefs: ['CE-sound-speed'],
102
+ }),
103
+ model({
104
+ id: 'model-klein-gordon',
105
+ stateSpace: 'u(x, t), a field on ℝ × ℝ',
106
+ dynamics: 'u_tt = c² u_xx − ω₀² u (dispersive: ω² = c²k² + ω₀²)',
107
+ observables: ['u', 'dispersion ω(k)', 'phase velocity'],
108
+ parameters: [
109
+ { name: 'c', dim: VELOCITY },
110
+ { name: 'omega0', dim: FREQUENCY },
111
+ ],
112
+ canonicalRefs: [],
113
+ }),
114
+ model({
115
+ id: 'model-stiff-string',
116
+ stateSpace: 'y(x, t), transverse displacement of a string with bending stiffness',
117
+ dynamics: 'μ y_tt = F y_xx − EI y_xxxx (dispersive: ω² = (F/μ)k² + (EI/μ)k⁴)',
118
+ observables: ['y', 'partial frequencies (inharmonicity)'],
119
+ parameters: [
120
+ { name: 'F', dim: FORCE },
121
+ { name: 'mu', dim: LINEAR_DENSITY },
122
+ { name: 'EI', dim: FLEXURAL_RIGIDITY },
123
+ ],
124
+ canonicalRefs: [],
125
+ }),
126
+ ];
127
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/atlas/waves/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Atlas Phase 4, S4.5 — the numerics behind the wave family's witnesses.
3
+ *
4
+ * Each function evaluates one claim at a RESOLUTION, so the numeric witness
5
+ * runner can record how the error shrinks under refinement. No function
6
+ * asserts an order; the runner reports the ratio (Phase 4 design note §2.3).
7
+ *
8
+ * @module atlas/waves/numerics
9
+ */
10
+ /** Parameters of the WS1 string fixture. @internal */
11
+ export interface StringFixture {
12
+ /** Tension F. */
13
+ readonly tension: number;
14
+ /** Linear mass density μ. */
15
+ readonly mu: number;
16
+ /** Final time. */
17
+ readonly tEnd: number;
18
+ }
19
+ /**
20
+ * WS1 — the displacement at the midpoint `x = ½, t = tEnd` of a string of unit
21
+ * length with fixed ends, from a leapfrog solution of `μ y_tt = F y_xx` written
22
+ * in the string's OWN variables, starting from `y = sin(πx)` at rest.
23
+ *
24
+ * The comparison target, `sin(πx) cos(π c t)` with `c = √(F/μ)`, is the 1-D
25
+ * wave equation's solution, so the pair tests the restriction's dictionary.
26
+ * The Courant number `cΔt/Δx` is held at 1/2.
27
+ *
28
+ * @param cells - spatial intervals (made even so the midpoint is a node).
29
+ * @internal
30
+ */
31
+ export declare function stringLeapfrogMidpoint(cells: number, f: StringFixture): number;
32
+ /** Parameters of the WS2 d'Alembert fixture. @internal */
33
+ export interface DalembertFixture {
34
+ readonly c: number;
35
+ /** The point `(x, t)` the residual is evaluated at. */
36
+ readonly x: number;
37
+ readonly t: number;
38
+ /** Base finite-difference step; the resolution divides it. */
39
+ readonly h0: number;
40
+ }
41
+ /**
42
+ * The d'Alembert form `u = f(x − ct) + g(x + ct)` with the WS2 profiles.
43
+ *
44
+ * @internal
45
+ */
46
+ export declare function dalembert(x: number, t: number, c: number): number;
47
+ /**
48
+ * WS2 — the finite-difference residual `|u_tt − c² u_xx|` of the d'Alembert
49
+ * form at one point, step `h = h0/resolution` in both variables. Exactly zero
50
+ * in the limit; the runner records how fast the estimate gets there.
51
+ *
52
+ * @internal
53
+ */
54
+ export declare function dalembertResidual(resolution: number, f: DalembertFixture): number;
55
+ /** Parameters of the WS3 acoustic fixture. @internal */
56
+ export interface AcousticFixture {
57
+ /** Ambient pressure p₀. */
58
+ readonly p0: number;
59
+ /** Ambient density ρ₀. */
60
+ readonly rho0: number;
61
+ /** Adiabatic index γ. */
62
+ readonly gamma: number;
63
+ readonly tEnd: number;
64
+ }
65
+ /**
66
+ * The adiabatic equation of state `p(ρ) = p₀ (ρ/ρ₀)^γ` — the SECOND premise of
67
+ * the sound-speed hyperedge — and its derivative at `ρ`.
68
+ *
69
+ * @internal
70
+ */
71
+ export declare function adiabaticSlope(rho: number, f: AcousticFixture): number;
72
+ /**
73
+ * WS3 — the pressure perturbation at `x = ¼, t = tEnd` from a staggered
74
+ * leapfrog solution of the LINEARIZED EULER equations
75
+ * `∂ρ′/∂t = −ρ₀ ∂v/∂x`, `ρ₀ ∂v/∂t = −∂p′/∂x`, closed by the ADIABATIC EOS
76
+ * `p′ = (dp/dρ)|ρ₀ ρ′`, on a periodic unit domain from `p′ = sin 2πx` at rest.
77
+ *
78
+ * Both premises enter in their own form: the Euler pair steps `ρ′` and `v`,
79
+ * and the only link from `ρ′` to `p′` is {@link adiabaticSlope}. The
80
+ * comparison target `sin(2πx) cos(2π c t)` with `c² = γ p₀/ρ₀` is the SOUND
81
+ * model's solution, so the pair tests the hyperedge's derivation.
82
+ *
83
+ * @param cells - grid intervals (made a multiple of 4 so `x = ¼` is a node).
84
+ * @internal
85
+ */
86
+ export declare function acousticLeapfrogQuarter(cells: number, f: AcousticFixture): number;
87
+ /**
88
+ * Speed of sound from the adiabatic (Laplace) and isothermal (Newton) closures.
89
+ *
90
+ * @internal
91
+ */
92
+ export declare function soundSpeeds(p0: number, rho0: number, gamma: number): {
93
+ readonly adiabatic: number;
94
+ readonly isothermal: number;
95
+ };
96
+ /**
97
+ * Relative phase-velocity error of the Klein–Gordon mode against the
98
+ * dispersion-free wave: `√(1 + (ω₀/(c k))²) − 1`.
99
+ *
100
+ * This is the exact quantity the approximation bound of `ab-klein-gordon-wave`
101
+ * is stated in; it is increasing in `ω₀/(c k)`, so its value at the edge of the
102
+ * declared range is the supremum over the range.
103
+ *
104
+ * @internal
105
+ */
106
+ export declare function kleinGordonPhaseError(omega0: number, c: number, k: number): number;
107
+ /**
108
+ * WS4 — the Klein–Gordon phase velocity `√(c² + ω₀²/k²)` at wavenumber
109
+ * `k = k₀ · resolution`. It tends to the wave speed `c` as `k` grows: the
110
+ * dispersion-free limit, approached from above.
111
+ *
112
+ * @internal
113
+ */
114
+ export declare function kleinGordonPhaseVelocity(resolution: number, omega0: number, c: number, k0: number): number;
115
+ /**
116
+ * The relative error of the non-relativistic kinetic frequency: the
117
+ * Klein–Gordon mode's `ω − ω₀ = ω₀(√(1 + x²) − 1)` against the free
118
+ * Schrödinger particle's `ω₀ x²/2` under `ħ/m ↦ c²/ω₀`, with `x = c k/ω₀`.
119
+ * Equals `|(√(1 + x²) − 1)/(x²/2) − 1|`, increasing in x.
120
+ *
121
+ * @internal
122
+ */
123
+ export declare function kgNonrelativisticError(x: number): number;
124
+ /**
125
+ * WS6 — `u(tEnd)` of the SPATIALLY UNIFORM Klein–Gordon field on a periodic
126
+ * grid, stepped by leapfrog in the full PDE `u_tt = c² u_xx − ω₀² u` from
127
+ * `u = 1` at rest, with `steps` time steps. The uniform mode's Laplacian
128
+ * vanishes, so the field should follow the oscillator solution `cos(ω₀ t)`.
129
+ *
130
+ * @internal
131
+ */
132
+ export declare function kgUniformModeValue(steps: number, c: number, omega0: number, tEnd: number, cells?: number): number;
133
+ /**
134
+ * Relative phase-velocity error of a stiff string against the flexible string:
135
+ * `√(1 + β) − 1` with `β = EI k²/F`. Increasing in β, so its value at the
136
+ * domain edge is the supremum over the domain.
137
+ *
138
+ * @internal
139
+ */
140
+ export declare function stiffStringPhaseError(F: number, EI: number, k: number): number;
141
+ /**
142
+ * WS7 — the stiff string's phase velocity `√(F/μ + (EI/μ)k²)` at wavenumber
143
+ * `k = k₀/resolution`: it tends to the flexible-string speed `√(F/μ)` as the
144
+ * wavelength grows.
145
+ *
146
+ * @internal
147
+ */
148
+ export declare function stiffStringPhaseVelocity(resolution: number, F: number, mu: number, EI: number, k0: number): number;
149
+ //# sourceMappingURL=numerics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numerics.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/numerics.ts"],"names":[],"mappings":"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"}