universal-physics-tensor 0.47.1 → 1.0.2

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 (702) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +405 -383
  3. package/bin/upt.mjs +7 -1
  4. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +108 -0
  5. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -0
  6. package/dist/atlas/benchmark/hybrid-retrieval.js +241 -0
  7. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -0
  8. package/dist/atlas/catalog-formal-ref.d.ts +24 -0
  9. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -0
  10. package/dist/atlas/catalog-formal-ref.js +36 -0
  11. package/dist/atlas/catalog-formal-ref.js.map +1 -0
  12. package/dist/atlas/chain-pipeline.d.ts +52 -0
  13. package/dist/atlas/chain-pipeline.d.ts.map +1 -0
  14. package/dist/atlas/chain-pipeline.js +176 -0
  15. package/dist/atlas/chain-pipeline.js.map +1 -0
  16. package/dist/atlas/composition-table.d.ts +11 -46
  17. package/dist/atlas/composition-table.d.ts.map +1 -1
  18. package/dist/atlas/composition-table.js +7 -124
  19. package/dist/atlas/composition-table.js.map +1 -1
  20. package/dist/atlas/conventions.d.ts +4 -58
  21. package/dist/atlas/conventions.d.ts.map +1 -1
  22. package/dist/atlas/conventions.js +3 -88
  23. package/dist/atlas/conventions.js.map +1 -1
  24. package/dist/atlas/derive-evidence.d.ts +50 -3
  25. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  26. package/dist/atlas/derive-evidence.js +73 -4
  27. package/dist/atlas/derive-evidence.js.map +1 -1
  28. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  29. package/dist/atlas/diffusion/bridges-closure.js +5 -1
  30. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  31. package/dist/atlas/index.d.ts +9 -7
  32. package/dist/atlas/index.d.ts.map +1 -1
  33. package/dist/atlas/index.js +6 -5
  34. package/dist/atlas/index.js.map +1 -1
  35. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  36. package/dist/atlas/oscillators/bridges-exact.js +6 -0
  37. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  38. package/dist/atlas/oscillators/bridges-limits.d.ts +2 -0
  39. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  40. package/dist/atlas/oscillators/bridges-limits.js +11 -19
  41. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  42. package/dist/atlas/oscillators/limit-witnesses.d.ts +93 -0
  43. package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -0
  44. package/dist/atlas/oscillators/limit-witnesses.js +152 -0
  45. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -0
  46. package/dist/atlas/oscillators/models.d.ts +2 -1
  47. package/dist/atlas/oscillators/models.d.ts.map +1 -1
  48. package/dist/atlas/oscillators/models.js +4 -3
  49. package/dist/atlas/oscillators/models.js.map +1 -1
  50. package/dist/atlas/oscillators/norm-transport-witness.d.ts +37 -0
  51. package/dist/atlas/oscillators/norm-transport-witness.d.ts.map +1 -0
  52. package/dist/atlas/oscillators/norm-transport-witness.js +58 -0
  53. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -0
  54. package/dist/atlas/oscillators/norm-transport.d.ts +44 -0
  55. package/dist/atlas/oscillators/norm-transport.d.ts.map +1 -0
  56. package/dist/atlas/oscillators/norm-transport.js +66 -0
  57. package/dist/atlas/oscillators/norm-transport.js.map +1 -0
  58. package/dist/atlas/oscillators/norms.d.ts +11 -0
  59. package/dist/atlas/oscillators/norms.d.ts.map +1 -0
  60. package/dist/atlas/oscillators/norms.js +11 -0
  61. package/dist/atlas/oscillators/norms.js.map +1 -0
  62. package/dist/atlas/oscillators/pendulum-motion.d.ts +38 -0
  63. package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -0
  64. package/dist/atlas/oscillators/pendulum-motion.js +122 -0
  65. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -0
  66. package/dist/atlas/oscillators/phase-carriage.d.ts +38 -0
  67. package/dist/atlas/oscillators/phase-carriage.d.ts.map +1 -0
  68. package/dist/atlas/oscillators/phase-carriage.js +96 -0
  69. package/dist/atlas/oscillators/phase-carriage.js.map +1 -0
  70. package/dist/atlas/oscillators/phase-translation.d.ts +46 -0
  71. package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -0
  72. package/dist/atlas/oscillators/phase-translation.js +178 -0
  73. package/dist/atlas/oscillators/phase-translation.js.map +1 -0
  74. package/dist/atlas/oscillators/position-translation.d.ts +59 -0
  75. package/dist/atlas/oscillators/position-translation.d.ts.map +1 -0
  76. package/dist/atlas/oscillators/position-translation.js +254 -0
  77. package/dist/atlas/oscillators/position-translation.js.map +1 -0
  78. package/dist/atlas/path-bound.d.ts +126 -9
  79. package/dist/atlas/path-bound.d.ts.map +1 -1
  80. package/dist/atlas/path-bound.js +372 -23
  81. package/dist/atlas/path-bound.js.map +1 -1
  82. package/dist/atlas/physjs-ref.d.ts +141 -0
  83. package/dist/atlas/physjs-ref.d.ts.map +1 -0
  84. package/dist/atlas/physjs-ref.js +878 -0
  85. package/dist/atlas/physjs-ref.js.map +1 -0
  86. package/dist/atlas/proof-target.d.ts +32 -0
  87. package/dist/atlas/proof-target.d.ts.map +1 -0
  88. package/dist/atlas/proof-target.js +140 -0
  89. package/dist/atlas/proof-target.js.map +1 -0
  90. package/dist/atlas/regime.d.ts +12 -136
  91. package/dist/atlas/regime.d.ts.map +1 -1
  92. package/dist/atlas/regime.js +8 -254
  93. package/dist/atlas/regime.js.map +1 -1
  94. package/dist/atlas/serialize.d.ts.map +1 -1
  95. package/dist/atlas/serialize.js +25 -0
  96. package/dist/atlas/serialize.js.map +1 -1
  97. package/dist/atlas/translation-registry.d.ts +22 -0
  98. package/dist/atlas/translation-registry.d.ts.map +1 -0
  99. package/dist/atlas/translation-registry.js +31 -0
  100. package/dist/atlas/translation-registry.js.map +1 -0
  101. package/dist/atlas/translation.d.ts +116 -0
  102. package/dist/atlas/translation.d.ts.map +1 -0
  103. package/dist/atlas/translation.js +34 -0
  104. package/dist/atlas/translation.js.map +1 -0
  105. package/dist/atlas/types.d.ts +74 -240
  106. package/dist/atlas/types.d.ts.map +1 -1
  107. package/dist/atlas/types.js +5 -37
  108. package/dist/atlas/types.js.map +1 -1
  109. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  110. package/dist/atlas/waves/bridges-closure.js +4 -0
  111. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  112. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  113. package/dist/atlas/waves/bridges.js +3 -0
  114. package/dist/atlas/waves/bridges.js.map +1 -1
  115. package/dist/atlas/waves/models.js +1 -1
  116. package/dist/atlas/waves/models.js.map +1 -1
  117. package/dist/atlas/witness-dominance.d.ts +50 -0
  118. package/dist/atlas/witness-dominance.d.ts.map +1 -0
  119. package/dist/atlas/witness-dominance.js +86 -0
  120. package/dist/atlas/witness-dominance.js.map +1 -0
  121. package/dist/atlas/witness-specs.d.ts +30 -0
  122. package/dist/atlas/witness-specs.d.ts.map +1 -1
  123. package/dist/atlas/witness-specs.js +107 -0
  124. package/dist/atlas/witness-specs.js.map +1 -1
  125. package/dist/bridges/be53-yang-mills-confrontation.d.ts +81 -0
  126. package/dist/bridges/be53-yang-mills-confrontation.d.ts.map +1 -0
  127. package/dist/bridges/be53-yang-mills-confrontation.js +110 -0
  128. package/dist/bridges/be53-yang-mills-confrontation.js.map +1 -0
  129. package/dist/bridges/be63-chandrasekhar-mass.d.ts.map +1 -1
  130. package/dist/bridges/be63-chandrasekhar-mass.js +1 -3
  131. package/dist/bridges/be63-chandrasekhar-mass.js.map +1 -1
  132. package/dist/bridges/confrontation-coverage.d.ts +5 -61
  133. package/dist/bridges/confrontation-coverage.d.ts.map +1 -1
  134. package/dist/bridges/confrontation-coverage.js +5 -70
  135. package/dist/bridges/confrontation-coverage.js.map +1 -1
  136. package/dist/bridges/confrontations.d.ts +1 -1
  137. package/dist/bridges/confrontations.d.ts.map +1 -1
  138. package/dist/bridges/confrontations.js +291 -3
  139. package/dist/bridges/confrontations.js.map +1 -1
  140. package/dist/bridges/equations/be-13-einstein-trace.d.ts +2 -3
  141. package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -1
  142. package/dist/bridges/equations/be-13-einstein-trace.js +2 -3
  143. package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -1
  144. package/dist/bridges/equations/be-38-mond.d.ts +7 -5
  145. package/dist/bridges/equations/be-38-mond.d.ts.map +1 -1
  146. package/dist/bridges/equations/be-38-mond.js +7 -5
  147. package/dist/bridges/equations/be-38-mond.js.map +1 -1
  148. package/dist/bridges/equations/be-42-hawking-temperature.d.ts +3 -0
  149. package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -1
  150. package/dist/bridges/equations/be-42-hawking-temperature.js +8 -1
  151. package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -1
  152. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +21 -0
  153. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +1 -1
  154. package/dist/bridges/equations/be-53-yang-mills-beta.js +12 -0
  155. package/dist/bridges/equations/be-53-yang-mills-beta.js.map +1 -1
  156. package/dist/bridges/evaluator-inputs.d.ts +21 -0
  157. package/dist/bridges/evaluator-inputs.d.ts.map +1 -0
  158. package/dist/bridges/evaluator-inputs.js +75 -0
  159. package/dist/bridges/evaluator-inputs.js.map +1 -0
  160. package/dist/bridges/evaluators.d.ts +46 -0
  161. package/dist/bridges/evaluators.d.ts.map +1 -1
  162. package/dist/bridges/evaluators.js +57 -16
  163. package/dist/bridges/evaluators.js.map +1 -1
  164. package/dist/bridges/gravitational-lensing.d.ts +1 -1
  165. package/dist/bridges/gravitational-lensing.js +1 -1
  166. package/dist/bridges/index.d.ts +3 -2
  167. package/dist/bridges/index.d.ts.map +1 -1
  168. package/dist/bridges/index.js +15 -14
  169. package/dist/bridges/index.js.map +1 -1
  170. package/dist/bridges/observations/types.d.ts +110 -2
  171. package/dist/bridges/observations/types.d.ts.map +1 -1
  172. package/dist/bridges/observations/types.js +29 -0
  173. package/dist/bridges/observations/types.js.map +1 -1
  174. package/dist/bridges/perihelion-precession.d.ts +1 -1
  175. package/dist/bridges/perihelion-precession.js +1 -1
  176. package/dist/bridges/tensor-index.d.ts +39 -0
  177. package/dist/bridges/tensor-index.d.ts.map +1 -0
  178. package/dist/bridges/tensor-index.js +66 -0
  179. package/dist/bridges/tensor-index.js.map +1 -0
  180. package/dist/canonical/canonical-equation.d.ts +1 -1
  181. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  182. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  183. package/dist/canonical/entries/atomic.js +32 -10
  184. package/dist/canonical/entries/atomic.js.map +1 -1
  185. package/dist/canonical/entries/dimensional-classics.js +2 -2
  186. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  187. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  188. package/dist/canonical/entries/mechanics.js +10 -6
  189. package/dist/canonical/entries/mechanics.js.map +1 -1
  190. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  191. package/dist/canonical/entries/relativity.js +41 -8
  192. package/dist/canonical/entries/relativity.js.map +1 -1
  193. package/dist/canonical/entries/thermo-nuclear-cosmo.js +5 -5
  194. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  195. package/dist/canonical/linkage.d.ts.map +1 -1
  196. package/dist/canonical/linkage.js +31 -28
  197. package/dist/canonical/linkage.js.map +1 -1
  198. package/dist/canonical/normal-form.d.ts +17 -0
  199. package/dist/canonical/normal-form.d.ts.map +1 -1
  200. package/dist/canonical/normal-form.js +21 -4
  201. package/dist/canonical/normal-form.js.map +1 -1
  202. package/dist/canonical/structural.d.ts +84 -0
  203. package/dist/canonical/structural.d.ts.map +1 -0
  204. package/dist/canonical/structural.js +107 -0
  205. package/dist/canonical/structural.js.map +1 -0
  206. package/dist/cases/brownian-sphere.d.ts +68 -0
  207. package/dist/cases/brownian-sphere.d.ts.map +1 -0
  208. package/dist/cases/brownian-sphere.js +353 -0
  209. package/dist/cases/brownian-sphere.js.map +1 -0
  210. package/dist/cases/damped-resonator.d.ts +23 -0
  211. package/dist/cases/damped-resonator.d.ts.map +1 -0
  212. package/dist/cases/damped-resonator.js +224 -0
  213. package/dist/cases/damped-resonator.js.map +1 -0
  214. package/dist/cases/index.d.ts +11 -0
  215. package/dist/cases/index.d.ts.map +1 -0
  216. package/dist/cases/index.js +29 -0
  217. package/dist/cases/index.js.map +1 -0
  218. package/dist/cases/kepler-rv.d.ts +13 -0
  219. package/dist/cases/kepler-rv.d.ts.map +1 -0
  220. package/dist/cases/kepler-rv.js +168 -0
  221. package/dist/cases/kepler-rv.js.map +1 -0
  222. package/dist/cases/lumped-cooling.d.ts +46 -0
  223. package/dist/cases/lumped-cooling.d.ts.map +1 -0
  224. package/dist/cases/lumped-cooling.js +261 -0
  225. package/dist/cases/lumped-cooling.js.map +1 -0
  226. package/dist/cases/quadrature.d.ts +14 -0
  227. package/dist/cases/quadrature.d.ts.map +1 -0
  228. package/dist/cases/quadrature.js +41 -0
  229. package/dist/cases/quadrature.js.map +1 -0
  230. package/dist/cases/resistor-noise.d.ts +14 -0
  231. package/dist/cases/resistor-noise.d.ts.map +1 -0
  232. package/dist/cases/resistor-noise.js +210 -0
  233. package/dist/cases/resistor-noise.js.map +1 -0
  234. package/dist/cases/skin-depth.d.ts +21 -0
  235. package/dist/cases/skin-depth.d.ts.map +1 -0
  236. package/dist/cases/skin-depth.js +174 -0
  237. package/dist/cases/skin-depth.js.map +1 -0
  238. package/dist/cases/types.d.ts +115 -0
  239. package/dist/cases/types.d.ts.map +1 -0
  240. package/dist/cases/types.js +20 -0
  241. package/dist/cases/types.js.map +1 -0
  242. package/dist/cli/commands/_atlas-map.d.ts +409 -0
  243. package/dist/cli/commands/_atlas-map.d.ts.map +1 -0
  244. package/dist/cli/commands/_atlas-map.js +1014 -0
  245. package/dist/cli/commands/_atlas-map.js.map +1 -0
  246. package/dist/cli/commands/_atlas-route.d.ts +111 -0
  247. package/dist/cli/commands/_atlas-route.d.ts.map +1 -0
  248. package/dist/cli/commands/_atlas-route.js +140 -0
  249. package/dist/cli/commands/_atlas-route.js.map +1 -0
  250. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  251. package/dist/cli/commands/_discovery-opts.js +10 -1
  252. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  253. package/dist/cli/commands/atlas.d.ts +20 -0
  254. package/dist/cli/commands/atlas.d.ts.map +1 -1
  255. package/dist/cli/commands/atlas.js +333 -19
  256. package/dist/cli/commands/atlas.js.map +1 -1
  257. package/dist/cli/commands/audit.d.ts.map +1 -1
  258. package/dist/cli/commands/audit.js +12 -3
  259. package/dist/cli/commands/audit.js.map +1 -1
  260. package/dist/cli/commands/axes.js +4 -4
  261. package/dist/cli/commands/candidates.d.ts.map +1 -1
  262. package/dist/cli/commands/candidates.js +3 -2
  263. package/dist/cli/commands/candidates.js.map +1 -1
  264. package/dist/cli/commands/canonical.d.ts.map +1 -1
  265. package/dist/cli/commands/canonical.js +39 -10
  266. package/dist/cli/commands/canonical.js.map +1 -1
  267. package/dist/cli/commands/confront.d.ts.map +1 -1
  268. package/dist/cli/commands/confront.js +210 -28
  269. package/dist/cli/commands/confront.js.map +1 -1
  270. package/dist/cli/commands/connectors.d.ts.map +1 -1
  271. package/dist/cli/commands/connectors.js +5 -4
  272. package/dist/cli/commands/connectors.js.map +1 -1
  273. package/dist/cli/commands/coverage.js +3 -3
  274. package/dist/cli/commands/derive.d.ts.map +1 -1
  275. package/dist/cli/commands/derive.js +22 -9
  276. package/dist/cli/commands/derive.js.map +1 -1
  277. package/dist/cli/commands/discover.d.ts.map +1 -1
  278. package/dist/cli/commands/discover.js +149 -32
  279. package/dist/cli/commands/discover.js.map +1 -1
  280. package/dist/cli/commands/eval.d.ts.map +1 -1
  281. package/dist/cli/commands/eval.js +87 -17
  282. package/dist/cli/commands/eval.js.map +1 -1
  283. package/dist/cli/commands/evaluate.d.ts +30 -0
  284. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  285. package/dist/cli/commands/evaluate.js +441 -25
  286. package/dist/cli/commands/evaluate.js.map +1 -1
  287. package/dist/cli/commands/explain.d.ts.map +1 -1
  288. package/dist/cli/commands/explain.js +38 -11
  289. package/dist/cli/commands/explain.js.map +1 -1
  290. package/dist/cli/commands/frontier.d.ts +3 -0
  291. package/dist/cli/commands/frontier.d.ts.map +1 -0
  292. package/dist/cli/commands/frontier.js +28 -0
  293. package/dist/cli/commands/frontier.js.map +1 -0
  294. package/dist/cli/commands/ground.d.ts.map +1 -1
  295. package/dist/cli/commands/ground.js +37 -12
  296. package/dist/cli/commands/ground.js.map +1 -1
  297. package/dist/cli/commands/index.d.ts +5 -0
  298. package/dist/cli/commands/index.d.ts.map +1 -1
  299. package/dist/cli/commands/index.js +5 -0
  300. package/dist/cli/commands/index.js.map +1 -1
  301. package/dist/cli/commands/map.d.ts +8 -0
  302. package/dist/cli/commands/map.d.ts.map +1 -1
  303. package/dist/cli/commands/map.js +385 -57
  304. package/dist/cli/commands/map.js.map +1 -1
  305. package/dist/cli/commands/metric.d.ts +3 -0
  306. package/dist/cli/commands/metric.d.ts.map +1 -0
  307. package/dist/cli/commands/metric.js +136 -0
  308. package/dist/cli/commands/metric.js.map +1 -0
  309. package/dist/cli/commands/path.d.ts +109 -1
  310. package/dist/cli/commands/path.d.ts.map +1 -1
  311. package/dist/cli/commands/path.js +1019 -109
  312. package/dist/cli/commands/path.js.map +1 -1
  313. package/dist/cli/commands/predict.d.ts.map +1 -1
  314. package/dist/cli/commands/predict.js +3 -2
  315. package/dist/cli/commands/predict.js.map +1 -1
  316. package/dist/cli/commands/priority.d.ts.map +1 -1
  317. package/dist/cli/commands/priority.js +3 -2
  318. package/dist/cli/commands/priority.js.map +1 -1
  319. package/dist/cli/commands/probe.d.ts +7 -0
  320. package/dist/cli/commands/probe.d.ts.map +1 -1
  321. package/dist/cli/commands/probe.js +234 -52
  322. package/dist/cli/commands/probe.js.map +1 -1
  323. package/dist/cli/commands/recover.d.ts.map +1 -1
  324. package/dist/cli/commands/recover.js +17 -6
  325. package/dist/cli/commands/recover.js.map +1 -1
  326. package/dist/cli/commands/regime.d.ts +1 -1
  327. package/dist/cli/commands/regime.d.ts.map +1 -1
  328. package/dist/cli/commands/regime.js +134 -33
  329. package/dist/cli/commands/regime.js.map +1 -1
  330. package/dist/cli/commands/retrieve.d.ts +3 -0
  331. package/dist/cli/commands/retrieve.d.ts.map +1 -0
  332. package/dist/cli/commands/retrieve.js +65 -0
  333. package/dist/cli/commands/retrieve.js.map +1 -0
  334. package/dist/cli/commands/search.d.ts +3 -0
  335. package/dist/cli/commands/search.d.ts.map +1 -0
  336. package/dist/cli/commands/search.js +70 -0
  337. package/dist/cli/commands/search.js.map +1 -0
  338. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  339. package/dist/cli/commands/symbolic.js +107 -16
  340. package/dist/cli/commands/symbolic.js.map +1 -1
  341. package/dist/cli/commands/testplan.d.ts +3 -0
  342. package/dist/cli/commands/testplan.d.ts.map +1 -0
  343. package/dist/cli/commands/testplan.js +131 -0
  344. package/dist/cli/commands/testplan.js.map +1 -0
  345. package/dist/cli/conventions.d.ts +22 -0
  346. package/dist/cli/conventions.d.ts.map +1 -0
  347. package/dist/cli/conventions.js +48 -0
  348. package/dist/cli/conventions.js.map +1 -0
  349. package/dist/cli/euler-guard.d.ts +9 -0
  350. package/dist/cli/euler-guard.d.ts.map +1 -0
  351. package/dist/cli/euler-guard.js +11 -0
  352. package/dist/cli/euler-guard.js.map +1 -0
  353. package/dist/cli/eval-numbers.d.ts +26 -0
  354. package/dist/cli/eval-numbers.d.ts.map +1 -0
  355. package/dist/cli/eval-numbers.js +48 -0
  356. package/dist/cli/eval-numbers.js.map +1 -0
  357. package/dist/cli/expr-print.d.ts +25 -0
  358. package/dist/cli/expr-print.d.ts.map +1 -0
  359. package/dist/cli/expr-print.js +123 -0
  360. package/dist/cli/expr-print.js.map +1 -0
  361. package/dist/cli/graphs.d.ts +26 -0
  362. package/dist/cli/graphs.d.ts.map +1 -1
  363. package/dist/cli/graphs.js +19 -0
  364. package/dist/cli/graphs.js.map +1 -1
  365. package/dist/cli/main.d.ts +4 -10
  366. package/dist/cli/main.d.ts.map +1 -1
  367. package/dist/cli/main.js +370 -167
  368. package/dist/cli/main.js.map +1 -1
  369. package/dist/cli/map-evidence.d.ts +47 -0
  370. package/dist/cli/map-evidence.d.ts.map +1 -0
  371. package/dist/cli/map-evidence.js +53 -0
  372. package/dist/cli/map-evidence.js.map +1 -0
  373. package/dist/cli/output.d.ts +21 -1
  374. package/dist/cli/output.d.ts.map +1 -1
  375. package/dist/cli/output.js +5 -1
  376. package/dist/cli/output.js.map +1 -1
  377. package/dist/{composition → cli}/poster-source.d.ts +3 -2
  378. package/dist/cli/poster-source.d.ts.map +1 -0
  379. package/dist/{composition → cli}/poster-source.js +2 -1
  380. package/dist/cli/poster-source.js.map +1 -0
  381. package/dist/cli/record-reach.d.ts +44 -0
  382. package/dist/cli/record-reach.d.ts.map +1 -0
  383. package/dist/cli/record-reach.js +228 -0
  384. package/dist/cli/record-reach.js.map +1 -0
  385. package/dist/cli/record-tables.d.ts +38 -0
  386. package/dist/cli/record-tables.d.ts.map +1 -0
  387. package/dist/cli/record-tables.js +110 -0
  388. package/dist/cli/record-tables.js.map +1 -0
  389. package/dist/cli/record.d.ts +141 -0
  390. package/dist/cli/record.d.ts.map +1 -0
  391. package/dist/cli/record.js +612 -0
  392. package/dist/cli/record.js.map +1 -0
  393. package/dist/cli/search-index.d.ts +56 -0
  394. package/dist/cli/search-index.d.ts.map +1 -0
  395. package/dist/cli/search-index.js +190 -0
  396. package/dist/cli/search-index.js.map +1 -0
  397. package/dist/cli/statuses.d.ts +25 -0
  398. package/dist/cli/statuses.d.ts.map +1 -0
  399. package/dist/cli/statuses.js +276 -0
  400. package/dist/cli/statuses.js.map +1 -0
  401. package/dist/cli/version.d.ts +8 -0
  402. package/dist/cli/version.d.ts.map +1 -1
  403. package/dist/cli/version.js +32 -1
  404. package/dist/cli/version.js.map +1 -1
  405. package/dist/cli-api.d.ts +34 -16
  406. package/dist/cli-api.d.ts.map +1 -1
  407. package/dist/cli-api.js +32 -12
  408. package/dist/cli-api.js.map +1 -1
  409. package/dist/composition/audit-coverage.d.ts +70 -0
  410. package/dist/composition/audit-coverage.d.ts.map +1 -0
  411. package/dist/composition/audit-coverage.js +80 -0
  412. package/dist/composition/audit-coverage.js.map +1 -0
  413. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  414. package/dist/composition/bridge-analysis.js +2 -1
  415. package/dist/composition/bridge-analysis.js.map +1 -1
  416. package/dist/composition/buckingham-filter.d.ts +34 -0
  417. package/dist/composition/buckingham-filter.d.ts.map +1 -0
  418. package/dist/composition/buckingham-filter.js +64 -0
  419. package/dist/composition/buckingham-filter.js.map +1 -0
  420. package/dist/composition/canonical-compare.d.ts +29 -16
  421. package/dist/composition/canonical-compare.d.ts.map +1 -1
  422. package/dist/composition/canonical-compare.js +355 -59
  423. package/dist/composition/canonical-compare.js.map +1 -1
  424. package/dist/composition/canonical-graph.d.ts +2 -2
  425. package/dist/composition/canonical-graph.js +3 -3
  426. package/dist/composition/canonical-graph.js.map +1 -1
  427. package/dist/composition/canonical-prefactors.d.ts +24 -1
  428. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  429. package/dist/composition/canonical-prefactors.js +97 -1
  430. package/dist/composition/canonical-prefactors.js.map +1 -1
  431. package/dist/composition/catalog-graph.d.ts +4 -4
  432. package/dist/composition/catalog-graph.d.ts.map +1 -1
  433. package/dist/composition/catalog-graph.js +6 -4
  434. package/dist/composition/catalog-graph.js.map +1 -1
  435. package/dist/composition/chain-candidate.d.ts +43 -0
  436. package/dist/composition/chain-candidate.d.ts.map +1 -0
  437. package/dist/composition/chain-candidate.js +56 -0
  438. package/dist/composition/chain-candidate.js.map +1 -0
  439. package/dist/composition/chain-match.d.ts +19 -0
  440. package/dist/composition/chain-match.d.ts.map +1 -0
  441. package/dist/composition/chain-match.js +10 -0
  442. package/dist/composition/chain-match.js.map +1 -0
  443. package/dist/composition/chain-regime.d.ts +34 -0
  444. package/dist/composition/chain-regime.d.ts.map +1 -0
  445. package/dist/composition/chain-regime.js +89 -0
  446. package/dist/composition/chain-regime.js.map +1 -0
  447. package/dist/composition/compose-symbolic.js +1 -1
  448. package/dist/composition/compose-symbolic.js.map +1 -1
  449. package/dist/composition/compose.d.ts +11 -0
  450. package/dist/composition/compose.d.ts.map +1 -1
  451. package/dist/composition/compose.js +30 -10
  452. package/dist/composition/compose.js.map +1 -1
  453. package/dist/composition/composition-recovery.d.ts +47 -0
  454. package/dist/composition/composition-recovery.d.ts.map +1 -0
  455. package/dist/composition/composition-recovery.js +77 -0
  456. package/dist/composition/composition-recovery.js.map +1 -0
  457. package/dist/composition/consequence.d.ts +39 -0
  458. package/dist/composition/consequence.d.ts.map +1 -1
  459. package/dist/composition/consequence.js +37 -0
  460. package/dist/composition/consequence.js.map +1 -1
  461. package/dist/{bridges → composition}/descriptor.d.ts +6 -3
  462. package/dist/composition/descriptor.d.ts.map +1 -0
  463. package/dist/{bridges → composition}/descriptor.js +7 -4
  464. package/dist/composition/descriptor.js.map +1 -0
  465. package/dist/composition/discovery.d.ts +20 -0
  466. package/dist/composition/discovery.d.ts.map +1 -1
  467. package/dist/composition/discovery.js +27 -5
  468. package/dist/composition/discovery.js.map +1 -1
  469. package/dist/composition/edge.d.ts +1 -1
  470. package/dist/composition/edge.d.ts.map +1 -1
  471. package/dist/composition/edge.js.map +1 -1
  472. package/dist/composition/edges/_catalog-helpers.d.ts +4 -0
  473. package/dist/composition/edges/_catalog-helpers.d.ts.map +1 -1
  474. package/dist/composition/edges/_catalog-helpers.js +15 -0
  475. package/dist/composition/edges/_catalog-helpers.js.map +1 -1
  476. package/dist/composition/edges/calibration.d.ts +0 -9
  477. package/dist/composition/edges/calibration.d.ts.map +1 -1
  478. package/dist/composition/edges/calibration.js +85 -0
  479. package/dist/composition/edges/calibration.js.map +1 -1
  480. package/dist/composition/edges/catalog-condensed-matter.d.ts +0 -9
  481. package/dist/composition/edges/catalog-condensed-matter.d.ts.map +1 -1
  482. package/dist/composition/edges/catalog-condensed-matter.js +32 -1
  483. package/dist/composition/edges/catalog-condensed-matter.js.map +1 -1
  484. package/dist/composition/edges/catalog-fields.d.ts.map +1 -1
  485. package/dist/composition/edges/catalog-fields.js +2 -1
  486. package/dist/composition/edges/catalog-fields.js.map +1 -1
  487. package/dist/composition/edges/catalog-full.d.ts +4 -2
  488. package/dist/composition/edges/catalog-full.d.ts.map +1 -1
  489. package/dist/composition/edges/catalog-full.js +4 -2
  490. package/dist/composition/edges/catalog-full.js.map +1 -1
  491. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts +0 -10
  492. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +1 -1
  493. package/dist/composition/edges/catalog-gravitation-cosmology.js +31 -1
  494. package/dist/composition/edges/catalog-gravitation-cosmology.js.map +1 -1
  495. package/dist/composition/edges/catalog-quantum.d.ts +0 -10
  496. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  497. package/dist/composition/edges/catalog-quantum.js +53 -17
  498. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  499. package/dist/composition/edges/catalog-tranche.d.ts +0 -15
  500. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  501. package/dist/composition/edges/catalog-tranche.js +70 -16
  502. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  503. package/dist/composition/edges/proved-seeds.d.ts +39 -0
  504. package/dist/composition/edges/proved-seeds.d.ts.map +1 -0
  505. package/dist/composition/edges/proved-seeds.js +197 -0
  506. package/dist/composition/edges/proved-seeds.js.map +1 -0
  507. package/dist/composition/enumerate.d.ts +20 -0
  508. package/dist/composition/enumerate.d.ts.map +1 -1
  509. package/dist/composition/enumerate.js +23 -0
  510. package/dist/composition/enumerate.js.map +1 -1
  511. package/dist/composition/expr-eval.d.ts +5 -4
  512. package/dist/composition/expr-eval.d.ts.map +1 -1
  513. package/dist/composition/expr-eval.js +40 -6
  514. package/dist/composition/expr-eval.js.map +1 -1
  515. package/dist/composition/expr-simplify.js +1 -1
  516. package/dist/composition/expr-simplify.js.map +1 -1
  517. package/dist/composition/expr-subst.d.ts +2 -1
  518. package/dist/composition/expr-subst.d.ts.map +1 -1
  519. package/dist/composition/expr-subst.js +9 -2
  520. package/dist/composition/expr-subst.js.map +1 -1
  521. package/dist/composition/frontier-account.d.ts +78 -0
  522. package/dist/composition/frontier-account.d.ts.map +1 -0
  523. package/dist/composition/frontier-account.js +127 -0
  524. package/dist/composition/frontier-account.js.map +1 -0
  525. package/dist/composition/graph-viz.d.ts +7 -22
  526. package/dist/composition/graph-viz.d.ts.map +1 -1
  527. package/dist/composition/graph-viz.js +4 -27
  528. package/dist/composition/graph-viz.js.map +1 -1
  529. package/dist/composition/grounding.d.ts +49 -0
  530. package/dist/composition/grounding.d.ts.map +1 -1
  531. package/dist/composition/grounding.js +38 -0
  532. package/dist/composition/grounding.js.map +1 -1
  533. package/dist/composition/index.d.ts +0 -2
  534. package/dist/composition/index.d.ts.map +1 -1
  535. package/dist/composition/index.js +1 -1
  536. package/dist/composition/index.js.map +1 -1
  537. package/dist/composition/not-composable-seeds.d.ts +30 -0
  538. package/dist/composition/not-composable-seeds.d.ts.map +1 -0
  539. package/dist/composition/not-composable-seeds.js +90 -0
  540. package/dist/composition/not-composable-seeds.js.map +1 -0
  541. package/dist/composition/probe/expression-gaps.d.ts +27 -0
  542. package/dist/composition/probe/expression-gaps.d.ts.map +1 -0
  543. package/dist/composition/probe/expression-gaps.js +47 -0
  544. package/dist/composition/probe/expression-gaps.js.map +1 -0
  545. package/dist/composition/probe/frontier.d.ts +2 -1
  546. package/dist/composition/probe/frontier.d.ts.map +1 -1
  547. package/dist/composition/probe/frontier.js +3 -2
  548. package/dist/composition/probe/frontier.js.map +1 -1
  549. package/dist/composition/probe/index.d.ts +4 -1
  550. package/dist/composition/probe/index.d.ts.map +1 -1
  551. package/dist/composition/probe/index.js +3 -1
  552. package/dist/composition/probe/index.js.map +1 -1
  553. package/dist/composition/probe/pipeline.d.ts +2 -0
  554. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  555. package/dist/composition/probe/pipeline.js +6 -2
  556. package/dist/composition/probe/pipeline.js.map +1 -1
  557. package/dist/composition/probe/problem.d.ts +7 -0
  558. package/dist/composition/probe/problem.d.ts.map +1 -1
  559. package/dist/composition/probe/problem.js +15 -5
  560. package/dist/composition/probe/problem.js.map +1 -1
  561. package/dist/composition/probe/search-budget.d.ts.map +1 -1
  562. package/dist/composition/probe/search-budget.js +6 -2
  563. package/dist/composition/probe/search-budget.js.map +1 -1
  564. package/dist/composition/probe/study.d.ts +340 -0
  565. package/dist/composition/probe/study.d.ts.map +1 -0
  566. package/dist/composition/probe/study.js +1519 -0
  567. package/dist/composition/probe/study.js.map +1 -0
  568. package/dist/composition/proposed-bridges.js +1 -1
  569. package/dist/composition/proposed-bridges.js.map +1 -1
  570. package/dist/composition/quantities/_dims.d.ts +6 -0
  571. package/dist/composition/quantities/_dims.d.ts.map +1 -1
  572. package/dist/composition/quantities/_dims.js +6 -0
  573. package/dist/composition/quantities/_dims.js.map +1 -1
  574. package/dist/composition/quantities/condensed-matter.d.ts +16 -0
  575. package/dist/composition/quantities/condensed-matter.d.ts.map +1 -1
  576. package/dist/composition/quantities/condensed-matter.js +43 -2
  577. package/dist/composition/quantities/condensed-matter.js.map +1 -1
  578. package/dist/composition/quantities/fields.d.ts +10 -0
  579. package/dist/composition/quantities/fields.d.ts.map +1 -1
  580. package/dist/composition/quantities/fields.js +37 -2
  581. package/dist/composition/quantities/fields.js.map +1 -1
  582. package/dist/composition/quantities/gravitation-cosmology.d.ts +4 -0
  583. package/dist/composition/quantities/gravitation-cosmology.d.ts.map +1 -1
  584. package/dist/composition/quantities/gravitation-cosmology.js +14 -0
  585. package/dist/composition/quantities/gravitation-cosmology.js.map +1 -1
  586. package/dist/composition/quantities/quantum.d.ts +2 -0
  587. package/dist/composition/quantities/quantum.d.ts.map +1 -1
  588. package/dist/composition/quantities/quantum.js +7 -0
  589. package/dist/composition/quantities/quantum.js.map +1 -1
  590. package/dist/composition/quantities.d.ts +4 -16
  591. package/dist/composition/quantities.d.ts.map +1 -1
  592. package/dist/composition/quantities.js +4 -16
  593. package/dist/composition/quantities.js.map +1 -1
  594. package/dist/composition/retrodiction.d.ts.map +1 -1
  595. package/dist/composition/retrodiction.js +6 -2
  596. package/dist/composition/retrodiction.js.map +1 -1
  597. package/dist/composition/uncertainty.d.ts +1 -1
  598. package/dist/composition/uncertainty.d.ts.map +1 -1
  599. package/dist/composition/user-equation.d.ts +79 -8
  600. package/dist/composition/user-equation.d.ts.map +1 -1
  601. package/dist/composition/user-equation.js +224 -32
  602. package/dist/composition/user-equation.js.map +1 -1
  603. package/dist/core/constants.d.ts +17 -5
  604. package/dist/core/constants.d.ts.map +1 -1
  605. package/dist/core/constants.js +17 -5
  606. package/dist/core/constants.js.map +1 -1
  607. package/dist/core/types.d.ts +1 -1
  608. package/dist/core/types.d.ts.map +1 -1
  609. package/dist/core/types.js +2 -1
  610. package/dist/core/types.js.map +1 -1
  611. package/dist/dimensional/curvature.d.ts +7 -56
  612. package/dist/dimensional/curvature.d.ts.map +1 -1
  613. package/dist/dimensional/curvature.js +7 -76
  614. package/dist/dimensional/curvature.js.map +1 -1
  615. package/dist/dimensional/dimension-spec.d.ts +7 -1
  616. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  617. package/dist/dimensional/dimension-spec.js +131 -3
  618. package/dist/dimensional/dimension-spec.js.map +1 -1
  619. package/dist/dimensional/formula-names.d.ts +30 -0
  620. package/dist/dimensional/formula-names.d.ts.map +1 -0
  621. package/dist/dimensional/formula-names.js +37 -0
  622. package/dist/dimensional/formula-names.js.map +1 -0
  623. package/dist/dimensional/natural-units.d.ts +33 -0
  624. package/dist/dimensional/natural-units.d.ts.map +1 -0
  625. package/dist/dimensional/natural-units.js +58 -0
  626. package/dist/dimensional/natural-units.js.map +1 -0
  627. package/dist/{composition → dimensional}/symbolic-constants.d.ts +21 -2
  628. package/dist/dimensional/symbolic-constants.d.ts.map +1 -0
  629. package/dist/dimensional/symbolic-constants.js +122 -0
  630. package/dist/dimensional/symbolic-constants.js.map +1 -0
  631. package/dist/dimensional/unit-convention.d.ts +30 -0
  632. package/dist/dimensional/unit-convention.d.ts.map +1 -0
  633. package/dist/dimensional/unit-convention.js +60 -0
  634. package/dist/dimensional/unit-convention.js.map +1 -0
  635. package/dist/dimensional/units.d.ts +43 -0
  636. package/dist/dimensional/units.d.ts.map +1 -0
  637. package/dist/dimensional/units.js +197 -0
  638. package/dist/dimensional/units.js.map +1 -0
  639. package/dist/index.d.ts +11 -5
  640. package/dist/index.d.ts.map +1 -1
  641. package/dist/index.js +10 -3
  642. package/dist/index.js.map +1 -1
  643. package/dist/numerical/bianchi-residual.d.ts +55 -0
  644. package/dist/numerical/bianchi-residual.d.ts.map +1 -0
  645. package/dist/numerical/bianchi-residual.js +79 -0
  646. package/dist/numerical/bianchi-residual.js.map +1 -0
  647. package/dist/numerical/binding-value.d.ts +67 -0
  648. package/dist/numerical/binding-value.d.ts.map +1 -0
  649. package/dist/numerical/binding-value.js +349 -0
  650. package/dist/numerical/binding-value.js.map +1 -0
  651. package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
  652. package/dist/numerical/connection-lowering-helpers.js +13 -26
  653. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  654. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  655. package/dist/numerical/curvature-lowering-helpers.js +9 -0
  656. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  657. package/dist/numerical/float64-engine.d.ts.map +1 -1
  658. package/dist/numerical/float64-engine.js +23 -16
  659. package/dist/numerical/float64-engine.js.map +1 -1
  660. package/dist/numerical/formula-dimension.d.ts +14 -0
  661. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  662. package/dist/numerical/formula-dimension.js +56 -9
  663. package/dist/numerical/formula-dimension.js.map +1 -1
  664. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  665. package/dist/numerical/formula-mathts.js +75 -6
  666. package/dist/numerical/formula-mathts.js.map +1 -1
  667. package/dist/numerical/formula.d.ts +33 -0
  668. package/dist/numerical/formula.d.ts.map +1 -1
  669. package/dist/numerical/formula.js +75 -6
  670. package/dist/numerical/formula.js.map +1 -1
  671. package/dist/numerical/spacetime-metrics.d.ts +243 -0
  672. package/dist/numerical/spacetime-metrics.d.ts.map +1 -0
  673. package/dist/numerical/spacetime-metrics.js +1056 -0
  674. package/dist/numerical/spacetime-metrics.js.map +1 -0
  675. package/dist/relations/category.d.ts +38 -0
  676. package/dist/relations/category.d.ts.map +1 -0
  677. package/dist/relations/category.js +23 -0
  678. package/dist/relations/category.js.map +1 -0
  679. package/dist/relations/composition-table.d.ts +61 -0
  680. package/dist/relations/composition-table.d.ts.map +1 -0
  681. package/dist/relations/composition-table.js +140 -0
  682. package/dist/relations/composition-table.js.map +1 -0
  683. package/dist/relations/conventions.d.ts +63 -0
  684. package/dist/relations/conventions.d.ts.map +1 -0
  685. package/dist/relations/conventions.js +93 -0
  686. package/dist/relations/conventions.js.map +1 -0
  687. package/dist/relations/regime.d.ts +159 -0
  688. package/dist/relations/regime.d.ts.map +1 -0
  689. package/dist/relations/regime.js +304 -0
  690. package/dist/relations/regime.js.map +1 -0
  691. package/dist/relations/types.d.ts +257 -0
  692. package/dist/relations/types.d.ts.map +1 -0
  693. package/dist/relations/types.js +35 -0
  694. package/dist/relations/types.js.map +1 -0
  695. package/package.json +166 -163
  696. package/dist/bridges/descriptor.d.ts.map +0 -1
  697. package/dist/bridges/descriptor.js.map +0 -1
  698. package/dist/composition/poster-source.d.ts.map +0 -1
  699. package/dist/composition/poster-source.js.map +0 -1
  700. package/dist/composition/symbolic-constants.d.ts.map +0 -1
  701. package/dist/composition/symbolic-constants.js +0 -65
  702. package/dist/composition/symbolic-constants.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"damped-resonator.js","sourceRoot":"","sources":["../../src/cases/damped-resonator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { AppliedCase, CaseResult } from './types.js';
2
+ export type { AppliedCase, CaseCheck, CaseComparison, CaseExample, CaseOutput, CaseResult } from './types.js';
3
+ /** Case id → case. @internal */
4
+ export declare const APPLIED_CASES: ReadonlyMap<string, AppliedCase>;
5
+ /**
6
+ * Run a case with a numeric input record.
7
+ * @throws Error on an unknown id, a missing input, or an input outside the model's domain.
8
+ * @internal
9
+ */
10
+ export declare function runAppliedCase(id: string, inputs: Readonly<Record<string, number>>): CaseResult;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cases/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1D,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE9G,gCAAgC;AAChC,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAE1D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,UAAU,CAQ/F"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The applied-case registry behind `upt evaluate case-<id>`.
3
+ *
4
+ * @module cases
5
+ */
6
+ import { BROWNIAN_SPHERE_CASE } from './brownian-sphere.js';
7
+ import { DAMPED_RESONATOR_CASE } from './damped-resonator.js';
8
+ import { KEPLER_RV_CASE } from './kepler-rv.js';
9
+ import { LUMPED_COOLING_CASE } from './lumped-cooling.js';
10
+ import { RESISTOR_NOISE_CASE } from './resistor-noise.js';
11
+ import { SKIN_DEPTH_CASE } from './skin-depth.js';
12
+ /** Case id → case. @internal */
13
+ export const APPLIED_CASES = new Map([RESISTOR_NOISE_CASE, BROWNIAN_SPHERE_CASE, DAMPED_RESONATOR_CASE, SKIN_DEPTH_CASE, LUMPED_COOLING_CASE, KEPLER_RV_CASE].map((c) => [c.id, c]));
14
+ /**
15
+ * Run a case with a numeric input record.
16
+ * @throws Error on an unknown id, a missing input, or an input outside the model's domain.
17
+ * @internal
18
+ */
19
+ export function runAppliedCase(id, inputs) {
20
+ const c = APPLIED_CASES.get(id);
21
+ if (c === undefined)
22
+ throw new Error(`runAppliedCase: no case '${id}' (cases: ${[...APPLIED_CASES.keys()].join(', ')})`);
23
+ const missing = c.parameters.filter((p) => p.optional !== true || p.key in inputs).map((p) => p.key).filter((k) => !(k in inputs) || !Number.isFinite(inputs[k]));
24
+ if (missing.length > 0) {
25
+ throw new Error(`${id} needs {${c.parameters.map((p) => p.key).join(', ')}}; missing/non-finite: ${missing.join(', ')}`);
26
+ }
27
+ return c.run(inputs);
28
+ }
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cases/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKlD,gCAAgC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAqC,IAAI,GAAG,CACpE,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAC/I,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,MAAwC;IACjF,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE,aAAa,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzH,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3H,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type AppliedCase } from './types.js';
2
+ /** The Julian year, the year BE-52 takes (s). @internal */
3
+ export declare const JULIAN_YEAR_S: number;
4
+ /** m_p/M_* ceiling: the test-mass K then exceeds the two-body K by (1 + q)^{2/3} − 1 ≤ 0.67%. @internal */
5
+ export declare const MAX_MASS_RATIO = 0.01;
6
+ /** Ceiling on the stellar radius over the periastron separation, for point masses. @internal */
7
+ export declare const MAX_RADIUS_RATIO = 0.1;
8
+ /** G(M_* + m_p)/(c² a) ceiling for Newtonian gravity. @internal */
9
+ export declare const MAX_WEAK_FIELD = 0.0001;
10
+ /** e·Δω accumulated over the record (rad) ceiling for a fixed ellipse. @internal */
11
+ export declare const MAX_APSIDAL_MISFIT = 0.01;
12
+ export declare const KEPLER_RV_CASE: AppliedCase;
13
+ //# sourceMappingURL=kepler-rv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kepler-rv.d.ts","sourceRoot":"","sources":["../../src/cases/kepler-rv.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAItE,2DAA2D;AAC3D,eAAO,MAAM,aAAa,QAAiB,CAAC;AAE5C,2GAA2G;AAC3G,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,gGAAgG;AAChG,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,mEAAmE;AACnE,eAAO,MAAM,cAAc,SAAO,CAAC;AAEnC,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,eAAO,MAAM,cAAc,EAAE,WA0I5B,CAAC"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Applied case: the radial-velocity semi-amplitude of a star orbited by a
3
+ * companion — what a spectrograph reads as the star's reflex motion, from the
4
+ * two masses, the period, the eccentricity and the inclination.
5
+ *
6
+ * The scalar is the test-mass form of the Keplerian RV curve used to infer
7
+ * m_p sin i (Lovis & Fischer, "Radial Velocity Techniques for Exoplanets", in
8
+ * Seager (ed.), Exoplanets, 2010, eq. 1; Murray & Dermott, Solar System
9
+ * Dynamics, 1999, §2.7). The parent is the two-body problem of two extended
10
+ * bodies in general relativity. The case compares the test-mass K with the
11
+ * exact Newtonian two-body K, and checks the three premises that make a fixed
12
+ * Keplerian ellipse the right curve: a companion light beside the star, point
13
+ * masses (no tides), and a weak field whose apsidal advance (BE-52, with the
14
+ * total mass; Robertson 1938) does not reshape the curve over the record.
15
+ *
16
+ * @module cases/kepler-rv
17
+ */
18
+ import { C_SI, G_SI } from '../core/constants.js';
19
+ import { evaluatePerihelionPrecession } from '../bridges/perihelion-precession.js';
20
+ import { check, requirePositive } from './types.js';
21
+ const ID = 'case-kepler-rv';
22
+ /** The Julian year, the year BE-52 takes (s). @internal */
23
+ export const JULIAN_YEAR_S = 365.25 * 86400;
24
+ /** m_p/M_* ceiling: the test-mass K then exceeds the two-body K by (1 + q)^{2/3} − 1 ≤ 0.67%. @internal */
25
+ export const MAX_MASS_RATIO = 0.01;
26
+ /** Ceiling on the stellar radius over the periastron separation, for point masses. @internal */
27
+ export const MAX_RADIUS_RATIO = 0.1;
28
+ /** G(M_* + m_p)/(c² a) ceiling for Newtonian gravity. @internal */
29
+ export const MAX_WEAK_FIELD = 1e-4;
30
+ /** e·Δω accumulated over the record (rad) ceiling for a fixed ellipse. @internal */
31
+ export const MAX_APSIDAL_MISFIT = 0.01;
32
+ export const KEPLER_RV_CASE = {
33
+ id: ID,
34
+ title: 'Radial-velocity semi-amplitude of a star with a companion (mass ratio, tides, GR apsidal advance)',
35
+ parameters: [
36
+ { key: 'M_star_kg', quantity: 'stellar mass', symbol: 'M_*', unit: 'kg', meaning: 'mass of the star whose radial velocity is measured (1Msun = 1.989e30 kg), > 0' },
37
+ { key: 'm_p_kg', quantity: 'companion mass', symbol: 'm_p', unit: 'kg', meaning: 'true mass of the companion (Jupiter ≈ 1.898e27 kg), > 0' },
38
+ { key: 'P_s', quantity: 'orbital period', symbol: 'P', unit: 's', meaning: 'the orbital period the RV curve repeats with, > 0' },
39
+ { key: 'e', quantity: 'eccentricity', symbol: 'e', unit: '', meaning: 'orbital eccentricity, 0 ≤ e < 1' },
40
+ { key: 'sin_i', quantity: 'sine of the inclination', symbol: 'sin i', unit: '', meaning: 'sin of the angle between the orbit normal and the line of sight, 0 < sin i ≤ 1 (1 is edge-on)' },
41
+ { key: 'R_star_m', quantity: 'stellar radius', symbol: 'R_*', unit: 'm', meaning: 'radius of the star (the Sun ≈ 6.957e8 m), > 0' },
42
+ { key: 'T_obs_s', quantity: 'observing baseline', symbol: 'T_obs', unit: 's', meaning: 'time span of the RV record fitted with one fixed ellipse, > 0' },
43
+ ],
44
+ governing: {
45
+ parent: [
46
+ 'r̈ = −G(M_* + m_p) r/r³ + O(G(M_* + m_p)/(c² r)) · (G(M_* + m_p)/r²) (relative orbit, Newtonian term plus the 1PN Einstein–Infeld–Hoffmann terms)',
47
+ 'M_* r_* + m_p r_p = 0 about the barycentre; the measured v_r is the line-of-sight component of ṙ_*',
48
+ 'extended bodies: each is a point mass only if spherical and undeformed; tides and spin add quadrupole terms ∝ (R/r)²',
49
+ ],
50
+ scalar: [
51
+ 'K = (2πG/P)^{1/3} m_p sin i / M_*^{2/3} / √(1 − e²) (test-mass form, m_p ≪ M_*)',
52
+ 'v_r(t) = K [cos(ν(t) + ω) + e cos ω], ω fixed over the record',
53
+ 'a³ = G(M_* + m_p) P²/(4π²) (Kepler III for the relative orbit; CE-kepler-third)',
54
+ ],
55
+ distinction: 'The parent is a coupled vector problem for two finite, deformable bodies in curved spacetime; the scalar keeps one ' +
56
+ 'number K for a fixed Keplerian ellipse of the star about the barycentre and puts the whole mass in the star. Dropped: ' +
57
+ 'the companion\'s share of the total mass (O(q)), the apsidal advance and the other 1PN terms (O(GM/(c²a))), and ' +
58
+ 'the tidal and rotational quadrupoles (O((R_*/r)²)).',
59
+ },
60
+ observable: 'K_m_per_s',
61
+ outputs: [
62
+ { key: 'q', symbol: 'q', unit: '', meaning: 'mass ratio m_p/M_*' },
63
+ { key: 'a_m', symbol: 'a', unit: 'm', meaning: 'semi-major axis of the relative orbit, from Kepler III with the total mass' },
64
+ { key: 'a_star_m', symbol: 'a_*', unit: 'm', meaning: 'semi-major axis of the star\'s own orbit about the barycentre, a m_p/(M_* + m_p)' },
65
+ { key: 'K_m_per_s', symbol: 'K', unit: 'm/s', meaning: 'RV semi-amplitude of the star, test-mass form (the scalar result)' },
66
+ { key: 'K_two_body_m_per_s', symbol: 'K_2b', unit: 'm/s', meaning: 'the exact Newtonian two-body semi-amplitude (2πG/P)^{1/3} m_p sin i/(M_* + m_p)^{2/3}/√(1 − e²)' },
67
+ { key: 'two_body_deviation', symbol: 'K/K_2b − 1', unit: '', meaning: 'relative excess of the test-mass K over the two-body K: (1 + q)^{2/3} − 1' },
68
+ { key: 'r_peri_m', symbol: 'r_p', unit: 'm', meaning: 'periastron separation a(1 − e)' },
69
+ { key: 'weak_field', symbol: 'G(M_* + m_p)/(c²a)', unit: '', meaning: 'the 1PN expansion parameter (half the Schwarzschild radius of the total mass, over a)' },
70
+ { key: 'dphi_rad_per_orbit', symbol: 'Δω', unit: 'rad', meaning: 'GR apsidal advance per orbit 6πG(M_* + m_p)/(c²a(1 − e²)) (BE-52 with the total mass)' },
71
+ { key: 'omega_dot_deg_per_yr', symbol: 'ω̇', unit: 'deg/yr', meaning: 'the same advance as a rate, degrees per Julian year' },
72
+ { key: 'apsidal_misfit', symbol: 'e Δω T_obs/P', unit: '', meaning: 'eccentricity times the apsidal advance accumulated over the record (rad)' },
73
+ ],
74
+ conditions: [
75
+ 'an isolated binary: no third body within the record, the systemic velocity constant (it is fitted out as an offset)',
76
+ 'initial condition: the orbital elements (P, e, ω, time of periastron) are those at the start of the record',
77
+ 'the line of sight is fixed; the star\'s light traces its centre of mass (no spots, no convective blueshift variation)',
78
+ ],
79
+ comparison: {
80
+ reference: 'the parent\'s Newtonian limit: the exact two-body semi-amplitude with the companion\'s mass in the total',
81
+ valueKey: 'K_m_per_s',
82
+ referenceKey: 'K_two_body_m_per_s',
83
+ deviationKey: 'two_body_deviation',
84
+ method: 'closed form of the two-body Keplerian semi-amplitude',
85
+ },
86
+ notIncluded: [
87
+ 'stellar activity (jitter), instrumental drift and the gravitational redshift and light-travel-time terms of the RV itself',
88
+ 'the other 1PN terms beside the apsidal advance (O(GM/(c²a)) in the P–a relation and in K), bounded by the weak-field check but not applied',
89
+ 'tidal orbital decay (dP/dt) and the tidal and rotational quadrupole precession, which the point-mass check bounds only by R_*/r_p',
90
+ 'the inclination itself: RV alone gives m_p sin i; sin i must come from a transit or astrometry',
91
+ ],
92
+ measurement: [
93
+ 'fit a Keplerian (P, K, e, ω, time of periastron, systemic offset) to the RV time series and compare the fitted K with K_m_per_s; ' +
94
+ 'with P and e fixed, the fitted K inverts to the minimum mass m_p sin i through the same relation',
95
+ 'where the two-body check fails, compare with K_two_body_m_per_s, which is the Newtonian parent',
96
+ '`upt confront --bridge=be-52`: Mercury\'s anomalous perihelion advance, which tests the Δω formula the apsidal check uses',
97
+ ],
98
+ links: [
99
+ { id: 'CE-kepler-third', role: 'T² = 4π²a³/(GM), with the assumptions two-body and M ≫ m; here with M → M_* + m_p' },
100
+ { id: 'be-52', role: 'the GR perihelion advance Δφ = 6πGM/(c²a(1 − e²)), evaluated with the total mass (`upt evaluate be-52`)' },
101
+ { id: 'CE-perihelion-precession', role: 'the canonical entry restating BE-52' },
102
+ { id: 'CE-schwarzschild-radius', role: 'r_s = 2GM/c², whose ratio to a (halved) is the weak-field check\'s quantity' },
103
+ ],
104
+ examples: {
105
+ valid: {
106
+ args: ['M_star_kg=1Msun', 'm_p_kg=1.898e27', 'P_s=4332.59d', 'e=0.0489', 'sin_i=1', 'R_star_m=6.957e8', 'T_obs_s=12yr'],
107
+ note: 'the Sun\'s reflex motion from Jupiter, seen edge-on over one orbit: K ≈ 12.5 m/s',
108
+ fails: [],
109
+ },
110
+ failures: [
111
+ {
112
+ args: ['M_star_kg=1.434Msun', 'm_p_kg=2.79e27', 'P_s=1.09142d', 'e=0', 'sin_i=0.993', 'R_star_m=1.153e9', 'T_obs_s=10yr'],
113
+ note: 'WASP-12 b, a 1.47 M_J planet on a 1.09 d orbit: the star\'s radius is a third of the separation, and the orbit is observed to decay by tides',
114
+ fails: ['point-mass'],
115
+ },
116
+ {
117
+ args: ['M_star_kg=1.3381Msun', 'm_p_kg=1.2489Msun', 'P_s=0.10225156248d', 'e=0.0877775', 'sin_i=0.99974', 'R_star_m=12km', 'T_obs_s=1yr'],
118
+ note: 'the double pulsar PSR J0737−3039A/B timed for a year: equal masses, and a GR apsidal advance of ≈ 17°/yr',
119
+ fails: ['test-mass', 'apsidal'],
120
+ },
121
+ ],
122
+ },
123
+ /** Evaluate the test-mass radial-velocity amplitude and checks for the supplied binary inputs. */
124
+ run(i) {
125
+ requirePositive(ID, i, ['M_star_kg', 'm_p_kg', 'P_s', 'sin_i', 'R_star_m', 'T_obs_s']);
126
+ const { M_star_kg: M, m_p_kg: m, P_s: P, e, sin_i: sinI, R_star_m: R, T_obs_s: tObs } = i;
127
+ if (!Number.isFinite(e) || e < 0 || e >= 1)
128
+ throw new Error(`${ID}: e must be in [0, 1) (got ${e})`);
129
+ if (sinI > 1)
130
+ throw new Error(`${ID}: sin_i must be in (0, 1] (got ${sinI})`);
131
+ const total = M + m;
132
+ const a = Math.cbrt((G_SI * total * P * P) / (4 * Math.PI * Math.PI));
133
+ const root = Math.sqrt(1 - e * e);
134
+ const n13 = Math.cbrt((2 * Math.PI * G_SI) / P);
135
+ const K = (n13 * m * sinI) / Math.cbrt(M * M) / root;
136
+ const K2b = (n13 * m * sinI) / Math.cbrt(total * total) / root;
137
+ const rPeri = a * (1 - e);
138
+ const weak = (G_SI * total) / (C_SI * C_SI * a);
139
+ const dphi = evaluatePerihelionPrecession({ M_kg: total, a_m: a, e, T_yr: P / JULIAN_YEAR_S }).dphi_rad_per_orbit;
140
+ const misfit = (e * dphi * tObs) / P;
141
+ return {
142
+ outputs: {
143
+ q: m / M,
144
+ a_m: a,
145
+ a_star_m: (a * m) / total,
146
+ K_m_per_s: K,
147
+ K_two_body_m_per_s: K2b,
148
+ two_body_deviation: K / K2b - 1,
149
+ r_peri_m: rPeri,
150
+ weak_field: weak,
151
+ dphi_rad_per_orbit: dphi,
152
+ omega_dot_deg_per_yr: ((dphi / P) * JULIAN_YEAR_S * 180) / Math.PI,
153
+ apsidal_misfit: misfit,
154
+ },
155
+ checks: [
156
+ check('test-mass', 'the companion is light beside the star, m_p ≪ M_*', 'm_p/M_*', m / M, '<=', MAX_MASS_RATIO, 'chosen threshold: the test-mass K then exceeds the two-body K by (1 + q)^{2/3} − 1 ≤ 0.67%'),
157
+ check('point-mass', 'point masses: the star is small beside the closest approach, R_* ≪ r_p', 'R_*/(a(1 − e))', R / rPeri, '<=', MAX_RADIUS_RATIO, 'chosen threshold: tidal and rotational quadrupole terms scale as (R_*/r)² times a Love number or J2 (each < 1), kept ≤ 1%'),
158
+ check('weak-field', 'Newtonian gravity: G(M_* + m_p)/(c²a) ≪ 1', 'G(M_* + m_p)/(c² a)', weak, '<=', MAX_WEAK_FIELD, 'chosen threshold: the 1PN corrections to the P–a relation and to the orbital velocity are of this relative order'),
159
+ check('apsidal', 'a fixed ellipse over the record: the GR apsidal advance does not reshape the RV curve', 'e Δω T_obs/P', misfit, '<=', MAX_APSIDAL_MISFIT, 'chosen threshold: beyond the mean longitude (absorbed by the fitted phase), v_r depends on ω only at O(e), so the misfit is of order e Δω K; its coefficient (order one) is not encoded'),
160
+ ],
161
+ unchecked: [
162
+ 'no third body: an outer companion adds its own reflex signal and perturbs P and ω',
163
+ 'the companion\'s radius is also small beside r_p (only the star\'s is checked)',
164
+ ],
165
+ };
166
+ },
167
+ };
168
+ //# sourceMappingURL=kepler-rv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kepler-rv.js","sourceRoot":"","sources":["../../src/cases/kepler-rv.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { type AppliedCase } from './types.js';
2
+ /** Stefan–Boltzmann constant 2π⁵k_B⁴/(15h³c²), from the exact SI constants (W m⁻² K⁻⁴). @internal */
3
+ export declare const SIGMA_SB_SI: number;
4
+ /** Bi = h L_c/k ceiling, L_c = V/A (Incropera §5.2, eq. 5.10). @internal */
5
+ export declare const MAX_BIOT = 0.1;
6
+ /** h_rad,max/h ceiling for a loss linear in T − T∞. @internal */
7
+ export declare const MAX_RADIATION_RATIO = 0.1;
8
+ /** Parameters of the lumped equation with the radiative loss kept, in SI units. @internal */
9
+ export interface LumpedRadiating {
10
+ readonly a: number;
11
+ readonly rho: number;
12
+ readonly c: number;
13
+ /** ≥ 0; 0 is pure radiation. */
14
+ readonly h: number;
15
+ readonly eps: number;
16
+ readonly T0: number;
17
+ readonly Tinf: number;
18
+ readonly t: number;
19
+ }
20
+ /**
21
+ * T(t) of ρcV dT/dt = −A[h(T − T∞) + εσ_SB(T⁴ − T∞⁴)] for a sphere (V/A =
22
+ * a/3), by RK4 with each step 1/100 of the local relaxation time
23
+ * ρca/(3(h + 4εσ_SB T³)). Stops early once |T − T∞| is below 1e-15 |T0 − T∞|.
24
+ * @internal
25
+ */
26
+ export declare function lumpedRadiatingTemperature(p: LumpedRadiating): number;
27
+ /**
28
+ * The first n roots of 1 − ζ cot ζ = Bi (Bi = h a/k, radius-based): the n-th
29
+ * lies in ((n−1)π, nπ), where the left side runs from −∞ (0 for n = 1) to +∞.
30
+ * @internal
31
+ */
32
+ export declare function sphereEigenvalues(biRadius: number, n: number): number[];
33
+ /**
34
+ * θ/θ0 = (T − T∞)/(T0 − T∞) from the series solution of the sphere with a
35
+ * convective surface, at Fourier number Fo = αt/a², for the volume mean, the
36
+ * centre and the surface. Terms are summed until e^{−ζ²Fo} < 1e-18.
37
+ * @throws Error when Fo is so small that the series would need over 1e5 terms.
38
+ * @internal
39
+ */
40
+ export declare function sphereSeries(biRadius: number, fo: number): {
41
+ mean: number;
42
+ centre: number;
43
+ surface: number;
44
+ };
45
+ export declare const LUMPED_COOLING_CASE: AppliedCase;
46
+ //# sourceMappingURL=lumped-cooling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lumped-cooling.d.ts","sourceRoot":"","sources":["../../src/cases/lumped-cooling.ts"],"names":[],"mappings":"AAsBA,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAItE,qGAAqG;AACrG,eAAO,MAAM,WAAW,QAAkE,CAAC;AAE3F,4EAA4E;AAC5E,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,6FAA6F;AAC7F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAiBrE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAevE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiB5G;AAED,eAAO,MAAM,mBAAmB,EAAE,WA8JjC,CAAC"}
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Applied case: a solid sphere cooling (or warming) in a fluid — its
3
+ * temperature after a time t by Newton's law of cooling, with the Biot-number
4
+ * check that makes one uniform temperature a fair stand-in for the field
5
+ * inside it.
6
+ *
7
+ * The parent is the heat equation in the sphere (`model-heat` in radial
8
+ * form, diffusivity `CE-thermal-diffusivity`) with a convective boundary. The
9
+ * lumped-capacitance simplification T(t) = T∞ + (T0 − T∞) e^{−t/τ},
10
+ * τ = ρcV/(hA), holds for Bi = h L_c/k ≤ 0.1 with L_c = V/A (Incropera,
11
+ * DeWitt, Bergman & Lavine, Fundamentals of Heat and Mass Transfer, 6th ed.,
12
+ * §5.1–5.2). The parent's exact series (Carslaw & Jaeger, Conduction of Heat
13
+ * in Solids, 2nd ed., §9.4; Incropera §5.6.2) is summed here for the volume
14
+ * mean, the centre and the surface. A second check keeps radiation, which is
15
+ * not linear in T − T∞, small beside convection. Where it is not small, the
16
+ * lumped equation is also integrated with the T⁴ loss kept (Incropera §5.3,
17
+ * general lumped capacitance analysis), provided the Biot number with the
18
+ * radiative conductance added still allows one temperature.
19
+ *
20
+ * @module cases/lumped-cooling
21
+ */
22
+ import { C_SI, H_SI, K_B_SI } from '../core/constants.js';
23
+ import { check, requirePositive } from './types.js';
24
+ const ID = 'case-lumped-cooling';
25
+ /** Stefan–Boltzmann constant 2π⁵k_B⁴/(15h³c²), from the exact SI constants (W m⁻² K⁻⁴). @internal */
26
+ export const SIGMA_SB_SI = (2 * Math.PI ** 5 * K_B_SI ** 4) / (15 * H_SI ** 3 * C_SI ** 2);
27
+ /** Bi = h L_c/k ceiling, L_c = V/A (Incropera §5.2, eq. 5.10). @internal */
28
+ export const MAX_BIOT = 0.1;
29
+ /** h_rad,max/h ceiling for a loss linear in T − T∞. @internal */
30
+ export const MAX_RADIATION_RATIO = 0.1;
31
+ /**
32
+ * T(t) of ρcV dT/dt = −A[h(T − T∞) + εσ_SB(T⁴ − T∞⁴)] for a sphere (V/A =
33
+ * a/3), by RK4 with each step 1/100 of the local relaxation time
34
+ * ρca/(3(h + 4εσ_SB T³)). Stops early once |T − T∞| is below 1e-15 |T0 − T∞|.
35
+ * @internal
36
+ */
37
+ export function lumpedRadiatingTemperature(p) {
38
+ const k = 3 / (p.rho * p.c * p.a);
39
+ const f = (T) => -k * (p.h * (T - p.Tinf) + p.eps * SIGMA_SB_SI * (T ** 4 - p.Tinf ** 4));
40
+ const floor = 1e-15 * Math.abs(p.T0 - p.Tinf);
41
+ let T = p.T0;
42
+ let s = 0;
43
+ while (s < p.t && Math.abs(T - p.Tinf) > floor) {
44
+ const rate = k * (p.h + 4 * p.eps * SIGMA_SB_SI * Math.max(T, p.Tinf) ** 3);
45
+ const dt = Math.min(p.t - s, 0.01 / rate);
46
+ const k1 = f(T);
47
+ const k2 = f(T + (dt / 2) * k1);
48
+ const k3 = f(T + (dt / 2) * k2);
49
+ const k4 = f(T + dt * k3);
50
+ T += (dt / 6) * (k1 + 2 * k2 + 2 * k3 + k4);
51
+ s += dt;
52
+ }
53
+ return T;
54
+ }
55
+ /**
56
+ * The first n roots of 1 − ζ cot ζ = Bi (Bi = h a/k, radius-based): the n-th
57
+ * lies in ((n−1)π, nπ), where the left side runs from −∞ (0 for n = 1) to +∞.
58
+ * @internal
59
+ */
60
+ export function sphereEigenvalues(biRadius, n) {
61
+ const f = (z) => 1 - z / Math.tan(z) - biRadius;
62
+ const roots = [];
63
+ for (let k = 1; k <= n; k++) {
64
+ let lo = (k - 1) * Math.PI;
65
+ let hi = k * Math.PI;
66
+ for (let it = 0; it < 200 && hi - lo > 4 * Number.EPSILON * hi; it++) {
67
+ const mid = (lo + hi) / 2;
68
+ if (mid === lo || mid === hi)
69
+ break;
70
+ if (f(mid) < 0)
71
+ lo = mid;
72
+ else
73
+ hi = mid;
74
+ }
75
+ roots.push((lo + hi) / 2);
76
+ }
77
+ return roots;
78
+ }
79
+ /**
80
+ * θ/θ0 = (T − T∞)/(T0 − T∞) from the series solution of the sphere with a
81
+ * convective surface, at Fourier number Fo = αt/a², for the volume mean, the
82
+ * centre and the surface. Terms are summed until e^{−ζ²Fo} < 1e-18.
83
+ * @throws Error when Fo is so small that the series would need over 1e5 terms.
84
+ * @internal
85
+ */
86
+ export function sphereSeries(biRadius, fo) {
87
+ if (fo === 0)
88
+ return { mean: 1, centre: 1, surface: 1 };
89
+ const terms = Math.ceil(Math.sqrt(42 / fo) / Math.PI) + 2;
90
+ if (terms > 1e5)
91
+ throw new Error(`${ID}: Fo = ${fo} is too small for the series (needs ${terms} terms)`);
92
+ let mean = 0;
93
+ let centre = 0;
94
+ let surface = 0;
95
+ for (const z of sphereEigenvalues(biRadius, terms)) {
96
+ const s = Math.sin(z);
97
+ const c = Math.cos(z);
98
+ const cn = (4 * (s - z * c)) / (2 * z - Math.sin(2 * z));
99
+ const decay = Math.exp(-z * z * fo);
100
+ centre += cn * decay;
101
+ surface += (cn * decay * s) / z;
102
+ mean += (cn * decay * 3 * (s - z * c)) / z ** 3;
103
+ }
104
+ return { mean, centre, surface };
105
+ }
106
+ export const LUMPED_COOLING_CASE = {
107
+ id: ID,
108
+ title: 'Lumped-capacitance cooling of a sphere (Biot number, radiation linearity)',
109
+ parameters: [
110
+ {
111
+ key: 'a_m',
112
+ quantity: 'sphere radius',
113
+ symbol: 'a',
114
+ unit: 'm',
115
+ meaning: 'radius of the solid sphere, > 0',
116
+ geometry: 'radius',
117
+ alternates: [{ key: 'diameter_m', meaning: 'the diameter 2a of the sphere', toKey: 0.5 }],
118
+ },
119
+ { key: 'rho_kg_per_m3', quantity: 'density', symbol: 'ρ', unit: 'kg/m^3', meaning: 'mass density of the solid (copper ≈ 8933), > 0' },
120
+ { key: 'c_J_per_kg_K', quantity: 'specific heat', symbol: 'c', unit: 'J/(kg*K)', meaning: 'specific heat capacity of the solid (copper ≈ 385), > 0' },
121
+ { key: 'k_W_per_m_K', quantity: 'thermal conductivity', symbol: 'k', unit: 'W/(m*K)', meaning: 'thermal conductivity of the solid (copper ≈ 401), > 0' },
122
+ { key: 'h_W_per_m2_K', quantity: 'heat-transfer coefficient', symbol: 'h', unit: 'W/(m^2*K)', meaning: 'convective coefficient at the surface, uniform and constant (still air ≈ 5–25, stirred water ≈ 500–10000), > 0' },
123
+ { key: 'emissivity', quantity: 'surface emissivity', symbol: 'ε', unit: '', meaning: 'total hemispherical emissivity of the surface, 0 ≤ ε ≤ 1 (polished copper ≈ 0.03–0.05)' },
124
+ { key: 'T0_K', quantity: 'initial temperature', symbol: 'T0', unit: 'K', meaning: 'uniform temperature of the sphere at t = 0, > 0 K', temperature: 'absolute' },
125
+ { key: 'T_inf_K', quantity: 'fluid temperature', symbol: 'T∞', unit: 'K', meaning: 'temperature of the fluid far from the sphere, and of the radiating surroundings, > 0 K', temperature: 'absolute' },
126
+ { key: 't_s', quantity: 'elapsed time', symbol: 't', unit: 's', meaning: 'time since immersion, ≥ 0' },
127
+ ],
128
+ governing: {
129
+ parent: [
130
+ 'ρc ∂T/∂t = k (1/r²) ∂/∂r (r² ∂T/∂r), 0 ≤ r < a (the heat equation of model-heat, radially symmetric)',
131
+ '−k ∂T/∂r = h (T − T∞) + εσ_SB (T⁴ − T∞⁴) at r = a; T(r, 0) = T0',
132
+ 'without the radiation term: θ/θ0 = Σ C_n e^{−ζ_n² Fo} sin(ζ_n r/a)/(ζ_n r/a), 1 − ζ_n cot ζ_n = h a/k, C_n = 4(sin ζ_n − ζ_n cos ζ_n)/(2ζ_n − sin 2ζ_n), Fo = αt/a²',
133
+ ],
134
+ scalar: [
135
+ 'ρcV dT/dt = −hA (T − T∞) (lumped capacitance: one temperature for the whole sphere)',
136
+ 'T(t) = T∞ + (T0 − T∞) e^{−t/τ}, τ = ρcV/(hA) = ρca/(3h) (Newton\'s law of cooling)',
137
+ 'Bi = h L_c/k, L_c = V/A = a/3',
138
+ ],
139
+ distinction: 'The parent is a temperature field T(r, t) with a boundary condition that is nonlinear once radiation is kept; the ' +
140
+ 'scalar replaces the field by one number and the surface loss by a linear conductance hA. Dropped: the internal ' +
141
+ 'gradient (of relative size ~Bi), every eigenmode but the slowest (and that one\'s rate shifted by O(Bi)), and the ' +
142
+ 'T⁴ dependence of radiation.',
143
+ },
144
+ observable: 'T_K',
145
+ outputs: [
146
+ { key: 'tau_s', symbol: 'τ', unit: 's', meaning: 'lumped time constant ρcV/(hA) = ρca/(3h)' },
147
+ { key: 'Bi', symbol: 'Bi', unit: '', meaning: 'Biot number h L_c/k with L_c = V/A = a/3 (the lumped criterion\'s form)' },
148
+ { key: 'Bi_radius', symbol: 'Bi_a', unit: '', meaning: 'h a/k: the radius-based Biot number of the series solution (3 Bi)' },
149
+ { key: 'alpha_m2_per_s', symbol: 'α', unit: 'm^2/s', meaning: 'thermal diffusivity k/(ρc)' },
150
+ { key: 'Fo', symbol: 'Fo', unit: '', meaning: 'Fourier number αt/a²' },
151
+ { key: 'theta', symbol: 'θ/θ0', unit: '', meaning: 'lumped excess-temperature ratio e^{−t/τ}' },
152
+ { key: 'T_K', symbol: 'T(t)', unit: 'K', meaning: 'the lumped temperature at t: what a thermometer in or on the sphere reads' },
153
+ { key: 'Q_J', symbol: 'Q', unit: 'J', meaning: 'heat released to the fluid by t, ρcV(T0 − T(t)) (negative when the sphere warms)' },
154
+ { key: 'theta_parent_mean', symbol: 'θ̄/θ0', unit: '', meaning: 'volume-mean excess-temperature ratio of the series solution (convection only)' },
155
+ { key: 'parent_deviation', symbol: 'θ/θ̄ − 1', unit: '', meaning: 'relative excess of the lumped ratio over the parent\'s volume mean' },
156
+ { key: 'T_centre_K', symbol: 'T(0, t)', unit: 'K', meaning: 'temperature at the centre from the series solution' },
157
+ { key: 'T_surface_K', symbol: 'T(a, t)', unit: 'K', meaning: 'temperature at the surface from the series solution' },
158
+ { key: 'h_rad_max_W_per_m2_K', symbol: 'h_rad', unit: 'W/(m^2*K)', meaning: 'εσ_SB(T_s + T∞)(T_s² + T∞²) at the hotter of T0 and T∞: the largest linearized radiative coefficient over the run' },
159
+ { key: 'Bi_radiating', symbol: 'Bi_r', unit: '', meaning: '(h + h_rad)(a/3)/k: the Biot number with the largest radiative conductance added' },
160
+ { key: 'T_radiating_K', symbol: 'T_r(t)', unit: 'K', meaning: 'the lumped temperature with the T⁴ loss kept (RK4). The linear-loss check does not apply to it; its premise is Bi_radiating ≤ 0.1, and it is null otherwise' },
161
+ ],
162
+ conditions: [
163
+ 'initial condition: the sphere is at the uniform temperature T0 when it is immersed at t = 0',
164
+ 'boundary: a uniform, constant coefficient h over the whole surface into fluid at T∞; the surroundings it radiates to are also at T∞',
165
+ 'constant ρ, c and k over the temperature range; no internal heat source; the sphere is solid and homogeneous',
166
+ ],
167
+ comparison: {
168
+ reference: 'the parent: the series solution of the sphere\'s heat equation with the convective boundary, volume mean',
169
+ valueKey: 'theta',
170
+ referenceKey: 'theta_parent_mean',
171
+ deviationKey: 'parent_deviation',
172
+ method: 'eigenfunction series, roots of 1 − ζ cot ζ = Bi_a by bisection, summed until e^{−ζ²Fo} < 1e-18',
173
+ },
174
+ notIncluded: [
175
+ 'radiation in T_K and in the series: the linear-loss check bounds it; T_radiating_K keeps it, in the lumped model only',
176
+ 'the temperature dependence of h (natural convection has h ∝ ΔT^{1/4}) and of ρ, c, k',
177
+ 'the thermometer\'s own heat capacity and contact resistance, and conduction along its leads',
178
+ 'phase change at the surface (boiling in a quench), which makes h neither uniform nor constant',
179
+ ],
180
+ measurement: [
181
+ 'record T(t) with a thermocouple embedded at the centre; plot ln((T − T∞)/(T0 − T∞)) against t — a straight line of slope ' +
182
+ '−1/τ tests the lumped premise directly, and T_centre_K is the parent\'s prediction for that sensor',
183
+ 'compare the measured τ with tau_s; the difference between T_centre_K and T_surface_K is the internal gradient the lumped model drops',
184
+ 'to use this as a calorimetric measurement of h, invert τ = ρca/(3h), valid only where both checks hold',
185
+ ],
186
+ links: [
187
+ { id: 'model-heat', role: 'ρc_p ∂T/∂t = κ ∂²T/∂x², the heat equation; here in its radial form for a sphere' },
188
+ { id: 'CE-thermal-diffusivity', role: 'α = k/(ρc_p), the diffusivity in the Fourier number' },
189
+ { id: 'CE-heat-capacity', role: 'Q = mcΔT, the heat released as the sphere cools' },
190
+ { id: 'CE-stefan-boltzmann', role: 'j = σT⁴, the radiative loss the linear-loss check bounds' },
191
+ ],
192
+ examples: {
193
+ valid: {
194
+ args: ['a_m=5mm', 'rho_kg_per_m3=8933', 'c_J_per_kg_K=385', 'k_W_per_m_K=401', 'h_W_per_m2_K=20', 'emissivity=0.05', 'T0_K=100degC', 'T_inf_K=20degC', 't_s=300'],
195
+ note: 'a 1 cm polished copper ball cooling from 100 °C in still air at 20 °C, read after 5 minutes',
196
+ fails: [],
197
+ },
198
+ failures: [
199
+ {
200
+ args: ['a_m=5cm', 'rho_kg_per_m3=7854', 'c_J_per_kg_K=434', 'k_W_per_m_K=60.5', 'h_W_per_m2_K=1000', 'emissivity=0', 'T0_K=90degC', 'T_inf_K=20degC', 't_s=600'],
201
+ note: 'a 10 cm steel ball from 90 °C into stirred water: Bi ≈ 0.28, the centre lags the surface and one temperature does not describe it',
202
+ fails: ['lumped'],
203
+ },
204
+ {
205
+ args: ['a_m=5mm', 'rho_kg_per_m3=7854', 'c_J_per_kg_K=434', 'k_W_per_m_K=60.5', 'h_W_per_m2_K=10', 'emissivity=0.8', 'T0_K=1000', 'T_inf_K=300', 't_s=60'],
206
+ note: 'a 1 cm oxidized steel ball at 1000 K in still air: radiation (h_rad ≈ 64 W/m²K) outweighs convection and the loss is not linear',
207
+ fails: ['linear-loss'],
208
+ },
209
+ ],
210
+ },
211
+ /** Evaluate the lumped sphere temperature, parent-series comparison and heat-transfer checks for the supplied inputs. */
212
+ run(i) {
213
+ requirePositive(ID, i, ['a_m', 'rho_kg_per_m3', 'c_J_per_kg_K', 'k_W_per_m_K', 'h_W_per_m2_K', 'T0_K', 'T_inf_K']);
214
+ const { a_m: a, rho_kg_per_m3: rho, c_J_per_kg_K: c, k_W_per_m_K: k, h_W_per_m2_K: h, emissivity: eps, T0_K: T0, T_inf_K: Tinf, t_s: t, } = i;
215
+ if (!Number.isFinite(eps) || eps < 0 || eps > 1)
216
+ throw new Error(`${ID}: emissivity must be in [0, 1] (got ${eps})`);
217
+ if (!Number.isFinite(t) || t < 0)
218
+ throw new Error(`${ID}: t_s must be a finite number ≥ 0 (got ${t})`);
219
+ const tau = (rho * c * a) / (3 * h);
220
+ const bi = (h * (a / 3)) / k;
221
+ const biRadius = (h * a) / k;
222
+ const alpha = k / (rho * c);
223
+ const fo = (alpha * t) / (a * a);
224
+ const theta = Math.exp(-t / tau);
225
+ const series = sphereSeries(biRadius, fo);
226
+ const dT0 = T0 - Tinf;
227
+ const Tmax = Math.max(T0, Tinf);
228
+ const hRad = eps * SIGMA_SB_SI * (Tmax + Tinf) * (Tmax * Tmax + Tinf * Tinf);
229
+ const volume = (4 / 3) * Math.PI * a ** 3;
230
+ const biRadiating = ((h + hRad) * (a / 3)) / k;
231
+ const tRadiating = biRadiating <= MAX_BIOT ? lumpedRadiatingTemperature({ a, rho, c, h, eps, T0, Tinf, t }) : null;
232
+ return {
233
+ outputs: {
234
+ tau_s: tau,
235
+ Bi: bi,
236
+ Bi_radius: biRadius,
237
+ alpha_m2_per_s: alpha,
238
+ Fo: fo,
239
+ theta,
240
+ T_K: Tinf + dT0 * theta,
241
+ Q_J: rho * c * volume * dT0 * -Math.expm1(-t / tau),
242
+ theta_parent_mean: series.mean,
243
+ parent_deviation: theta / series.mean - 1,
244
+ T_centre_K: Tinf + dT0 * series.centre,
245
+ T_surface_K: Tinf + dT0 * series.surface,
246
+ h_rad_max_W_per_m2_K: hRad,
247
+ Bi_radiating: biRadiating,
248
+ T_radiating_K: tRadiating,
249
+ },
250
+ checks: [
251
+ check('lumped', 'one temperature for the sphere: internal conduction fast beside surface loss, Bi ≪ 1', 'h (a/3)/k', bi, '<=', MAX_BIOT, 'the conventional criterion Bi ≤ 0.1 with L_c = V/A (Incropera §5.2); parent_deviation shows the error it leaves at t'),
252
+ check('linear-loss', 'the loss is linear in T − T∞: radiation small beside convection', 'εσ_SB(T_max + T∞)(T_max² + T∞²)/h', hRad / h, '<=', MAX_RADIATION_RATIO, 'chosen threshold: the neglected radiative conductance is ≤ 10% of h at the hottest point of the run (Incropera eq. 1.9 linearization)'),
253
+ ],
254
+ unchecked: [
255
+ 'h is uniform over the sphere and constant in time; for natural convection it falls as the sphere approaches T∞',
256
+ 'ρ, c and k are constant over [min(T0, T∞), max(T0, T∞)]',
257
+ ],
258
+ };
259
+ },
260
+ };
261
+ //# sourceMappingURL=lumped-cooling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lumped-cooling.js","sourceRoot":"","sources":["../../src/cases/lumped-cooling.ts"],"names":[],"mappings":"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"}