universal-physics-tensor 0.5.0 → 0.7.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.
- package/README.md +66 -105
- package/dist/bridges/catalog-adapter.d.ts +116 -0
- package/dist/bridges/catalog-adapter.d.ts.map +1 -0
- package/dist/bridges/catalog-adapter.js +302 -0
- package/dist/bridges/catalog-adapter.js.map +1 -0
- package/dist/bridges/equations/_be-helpers.d.ts +145 -0
- package/dist/bridges/equations/_be-helpers.d.ts.map +1 -0
- package/dist/bridges/equations/_be-helpers.js +179 -0
- package/dist/bridges/equations/_be-helpers.js.map +1 -0
- package/dist/bridges/equations/be-11-decoherence-master.d.ts +1 -2
- package/dist/bridges/equations/be-11-decoherence-master.d.ts.map +1 -1
- package/dist/bridges/equations/be-11-decoherence-master.js +9 -20
- package/dist/bridges/equations/be-11-decoherence-master.js.map +1 -1
- package/dist/bridges/equations/be-12-coherence-length.d.ts +7 -1
- package/dist/bridges/equations/be-12-coherence-length.d.ts.map +1 -1
- package/dist/bridges/equations/be-12-coherence-length.js +8 -16
- package/dist/bridges/equations/be-12-coherence-length.js.map +1 -1
- package/dist/bridges/equations/be-13-einstein-trace.d.ts +51 -3
- package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -1
- package/dist/bridges/equations/be-13-einstein-trace.js +74 -17
- package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -1
- package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts +10 -4
- package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts.map +1 -1
- package/dist/bridges/equations/be-14-ryu-takayanagi.js +6 -17
- package/dist/bridges/equations/be-14-ryu-takayanagi.js.map +1 -1
- package/dist/bridges/equations/be-15-emergence.d.ts +7 -1
- package/dist/bridges/equations/be-15-emergence.d.ts.map +1 -1
- package/dist/bridges/equations/be-15-emergence.js +12 -22
- package/dist/bridges/equations/be-15-emergence.js.map +1 -1
- package/dist/bridges/equations/be-16-landauer.d.ts +7 -1
- package/dist/bridges/equations/be-16-landauer.d.ts.map +1 -1
- package/dist/bridges/equations/be-16-landauer.js +5 -13
- package/dist/bridges/equations/be-16-landauer.js.map +1 -1
- package/dist/bridges/equations/be-17-einstein-cartan.d.ts +26 -13
- package/dist/bridges/equations/be-17-einstein-cartan.d.ts.map +1 -1
- package/dist/bridges/equations/be-17-einstein-cartan.js +28 -31
- package/dist/bridges/equations/be-17-einstein-cartan.js.map +1 -1
- package/dist/bridges/equations/be-18-higgs-mass.d.ts +7 -1
- package/dist/bridges/equations/be-18-higgs-mass.d.ts.map +1 -1
- package/dist/bridges/equations/be-18-higgs-mass.js +5 -16
- package/dist/bridges/equations/be-18-higgs-mass.js.map +1 -1
- package/dist/bridges/equations/be-19-quantum-bounce.d.ts +38 -3
- package/dist/bridges/equations/be-19-quantum-bounce.d.ts.map +1 -1
- package/dist/bridges/equations/be-19-quantum-bounce.js +69 -20
- package/dist/bridges/equations/be-19-quantum-bounce.js.map +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts +20 -1
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.js +36 -15
- package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
- package/dist/bridges/equations/be-21-kss-bound.d.ts +2 -0
- package/dist/bridges/equations/be-21-kss-bound.d.ts.map +1 -1
- package/dist/bridges/equations/be-21-kss-bound.js +4 -10
- package/dist/bridges/equations/be-21-kss-bound.js.map +1 -1
- package/dist/bridges/equations/be-22-topological-entanglement.d.ts +6 -9
- package/dist/bridges/equations/be-22-topological-entanglement.d.ts.map +1 -1
- package/dist/bridges/equations/be-22-topological-entanglement.js +9 -21
- package/dist/bridges/equations/be-22-topological-entanglement.js.map +1 -1
- package/dist/bridges/equations/be-23-syk-planckian.d.ts +7 -1
- package/dist/bridges/equations/be-23-syk-planckian.d.ts.map +1 -1
- package/dist/bridges/equations/be-23-syk-planckian.js +11 -25
- package/dist/bridges/equations/be-23-syk-planckian.js.map +1 -1
- package/dist/bridges/equations/be-24-foerster-fret.d.ts +7 -1
- package/dist/bridges/equations/be-24-foerster-fret.d.ts.map +1 -1
- package/dist/bridges/equations/be-24-foerster-fret.js +8 -16
- package/dist/bridges/equations/be-24-foerster-fret.js.map +1 -1
- package/dist/bridges/equations/be-25-iit-phi.d.ts +7 -1
- package/dist/bridges/equations/be-25-iit-phi.d.ts.map +1 -1
- package/dist/bridges/equations/be-25-iit-phi.js +12 -16
- package/dist/bridges/equations/be-25-iit-phi.js.map +1 -1
- package/dist/bridges/equations/be-25-orch-or.d.ts +6 -3
- package/dist/bridges/equations/be-25-orch-or.d.ts.map +1 -1
- package/dist/bridges/equations/be-25-orch-or.js +8 -17
- package/dist/bridges/equations/be-25-orch-or.js.map +1 -1
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts +6 -3
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts.map +1 -1
- package/dist/bridges/equations/be-26-dna-tunneling.js +11 -26
- package/dist/bridges/equations/be-26-dna-tunneling.js.map +1 -1
- package/dist/bridges/equations/be-27-effective-temperature.d.ts +7 -1
- package/dist/bridges/equations/be-27-effective-temperature.d.ts.map +1 -1
- package/dist/bridges/equations/be-27-effective-temperature.js +8 -16
- package/dist/bridges/equations/be-27-effective-temperature.js.map +1 -1
- package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts +7 -1
- package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts.map +1 -1
- package/dist/bridges/equations/be-28-onsager-entropy-production.js +9 -13
- package/dist/bridges/equations/be-28-onsager-entropy-production.js.map +1 -1
- package/dist/bridges/equations/be-29-jarzynski.d.ts +7 -1
- package/dist/bridges/equations/be-29-jarzynski.d.ts.map +1 -1
- package/dist/bridges/equations/be-29-jarzynski.js +8 -13
- package/dist/bridges/equations/be-29-jarzynski.js.map +1 -1
- package/dist/bridges/equations/be-30-flm-first-law.d.ts +11 -2
- package/dist/bridges/equations/be-30-flm-first-law.d.ts.map +1 -1
- package/dist/bridges/equations/be-30-flm-first-law.js +10 -21
- package/dist/bridges/equations/be-30-flm-first-law.js.map +1 -1
- package/dist/bridges/equations/be-31-causal-set-bd.d.ts +7 -1
- package/dist/bridges/equations/be-31-causal-set-bd.d.ts.map +1 -1
- package/dist/bridges/equations/be-31-causal-set-bd.js +11 -25
- package/dist/bridges/equations/be-31-causal-set-bd.js.map +1 -1
- package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts +6 -9
- package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts.map +1 -1
- package/dist/bridges/equations/be-32-quantum-reference-frame.js +8 -18
- package/dist/bridges/equations/be-32-quantum-reference-frame.js.map +1 -1
- package/dist/bridges/equations/be-33-hertz-millis.d.ts +53 -28
- package/dist/bridges/equations/be-33-hertz-millis.d.ts.map +1 -1
- package/dist/bridges/equations/be-33-hertz-millis.js +55 -51
- package/dist/bridges/equations/be-33-hertz-millis.js.map +1 -1
- package/dist/bridges/equations/be-34-kibble-zurek.d.ts +6 -3
- package/dist/bridges/equations/be-34-kibble-zurek.d.ts.map +1 -1
- package/dist/bridges/equations/be-34-kibble-zurek.js +15 -26
- package/dist/bridges/equations/be-34-kibble-zurek.js.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +6 -9
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.js +9 -21
- package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
- package/dist/bridges/equations/be-36-gw-speed-bound.d.ts +7 -1
- package/dist/bridges/equations/be-36-gw-speed-bound.d.ts.map +1 -1
- package/dist/bridges/equations/be-36-gw-speed-bound.js +5 -13
- package/dist/bridges/equations/be-36-gw-speed-bound.js.map +1 -1
- package/dist/bridges/equations/be-37-shapiro-delay.d.ts +4 -2
- package/dist/bridges/equations/be-37-shapiro-delay.d.ts.map +1 -1
- package/dist/bridges/equations/be-37-shapiro-delay.js +22 -37
- package/dist/bridges/equations/be-37-shapiro-delay.js.map +1 -1
- package/dist/bridges/equations/be-38-mond.d.ts +7 -1
- package/dist/bridges/equations/be-38-mond.d.ts.map +1 -1
- package/dist/bridges/equations/be-38-mond.js +9 -19
- package/dist/bridges/equations/be-38-mond.js.map +1 -1
- package/dist/bridges/equations/be-39-asymptotic-safety.d.ts +66 -2
- package/dist/bridges/equations/be-39-asymptotic-safety.d.ts.map +1 -1
- package/dist/bridges/equations/be-39-asymptotic-safety.js +128 -20
- package/dist/bridges/equations/be-39-asymptotic-safety.js.map +1 -1
- package/dist/bridges/equations/be-40-composite-higgs.d.ts +7 -1
- package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -1
- package/dist/bridges/equations/be-40-composite-higgs.js +10 -22
- package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -1
- package/dist/bridges/equations/be-41-swampland.d.ts +6 -3
- package/dist/bridges/equations/be-41-swampland.d.ts.map +1 -1
- package/dist/bridges/equations/be-41-swampland.js +11 -23
- package/dist/bridges/equations/be-41-swampland.js.map +1 -1
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts +2 -0
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -1
- package/dist/bridges/equations/be-42-hawking-temperature.js +5 -13
- package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -1
- package/dist/bridges/equations/be-43-er-epr.d.ts +7 -1
- package/dist/bridges/equations/be-43-er-epr.d.ts.map +1 -1
- package/dist/bridges/equations/be-43-er-epr.js +5 -13
- package/dist/bridges/equations/be-43-er-epr.js.map +1 -1
- package/dist/bridges/equations/be-44-soft-hair.d.ts +7 -1
- package/dist/bridges/equations/be-44-soft-hair.d.ts.map +1 -1
- package/dist/bridges/equations/be-44-soft-hair.js +5 -13
- package/dist/bridges/equations/be-44-soft-hair.js.map +1 -1
- package/dist/bridges/equations/be-45-tcc.d.ts +7 -1
- package/dist/bridges/equations/be-45-tcc.d.ts.map +1 -1
- package/dist/bridges/equations/be-45-tcc.js +10 -22
- package/dist/bridges/equations/be-45-tcc.js.map +1 -1
- package/dist/bridges/equations/be-46-multiverse-measure.d.ts +7 -1
- package/dist/bridges/equations/be-46-multiverse-measure.d.ts.map +1 -1
- package/dist/bridges/equations/be-46-multiverse-measure.js +9 -19
- package/dist/bridges/equations/be-46-multiverse-measure.js.map +1 -1
- package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts +7 -1
- package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts.map +1 -1
- package/dist/bridges/equations/be-47-bbn-dark-sector.js +14 -16
- package/dist/bridges/equations/be-47-bbn-dark-sector.js.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.d.ts +7 -1
- package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.js +15 -20
- package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
- package/dist/bridges/equations/be-49-quantum-darwinism.d.ts +7 -1
- package/dist/bridges/equations/be-49-quantum-darwinism.d.ts.map +1 -1
- package/dist/bridges/equations/be-49-quantum-darwinism.js +10 -22
- package/dist/bridges/equations/be-49-quantum-darwinism.js.map +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +42 -12
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.js +84 -20
- package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -1
- package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +158 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +1 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.js +175 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.js.map +1 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts +117 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts.map +1 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.js +213 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.js.map +1 -0
- package/dist/bridges/gravitational-lensing.d.ts +13 -2
- package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
- package/dist/bridges/gravitational-lensing.js +17 -6
- package/dist/bridges/gravitational-lensing.js.map +1 -1
- package/dist/bridges/index.d.ts +40 -1
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +130 -48
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/perihelion-precession-labeled.d.ts +46 -0
- package/dist/bridges/perihelion-precession-labeled.d.ts.map +1 -0
- package/dist/bridges/perihelion-precession-labeled.js +54 -0
- package/dist/bridges/perihelion-precession-labeled.js.map +1 -0
- package/dist/bridges/perihelion-precession.d.ts +18 -3
- package/dist/bridges/perihelion-precession.d.ts.map +1 -1
- package/dist/bridges/perihelion-precession.js +22 -8
- package/dist/bridges/perihelion-precession.js.map +1 -1
- package/dist/core/axes-registry.d.ts +67 -0
- package/dist/core/axes-registry.d.ts.map +1 -0
- package/dist/core/axes-registry.js +75 -0
- package/dist/core/axes-registry.js.map +1 -0
- package/dist/core/cell.d.ts +176 -0
- package/dist/core/cell.d.ts.map +1 -0
- package/dist/core/cell.js +166 -0
- package/dist/core/cell.js.map +1 -0
- package/dist/core/constants.d.ts +50 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +50 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/flux-rules.d.ts +176 -0
- package/dist/core/flux-rules.d.ts.map +1 -0
- package/dist/core/flux-rules.js +329 -0
- package/dist/core/flux-rules.js.map +1 -0
- package/dist/core/labeled-tensor.d.ts +143 -0
- package/dist/core/labeled-tensor.d.ts.map +1 -0
- package/dist/core/labeled-tensor.js +275 -0
- package/dist/core/labeled-tensor.js.map +1 -0
- package/dist/core/regime-registry.d.ts +169 -0
- package/dist/core/regime-registry.d.ts.map +1 -0
- package/dist/core/regime-registry.js +174 -0
- package/dist/core/regime-registry.js.map +1 -0
- package/dist/core/regime-rule-install.d.ts +26 -0
- package/dist/core/regime-rule-install.d.ts.map +1 -0
- package/dist/core/regime-rule-install.js +90 -0
- package/dist/core/regime-rule-install.js.map +1 -0
- package/dist/core/regimes-builtins.d.ts +22 -0
- package/dist/core/regimes-builtins.d.ts.map +1 -0
- package/dist/core/regimes-builtins.js +96 -0
- package/dist/core/regimes-builtins.js.map +1 -0
- package/dist/core/tensor.d.ts +112 -0
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +366 -0
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts +7 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/universal-index.d.ts +97 -0
- package/dist/core/universal-index.d.ts.map +1 -0
- package/dist/core/universal-index.js +70 -0
- package/dist/core/universal-index.js.map +1 -0
- package/dist/diff/bridge-gradient.d.ts +94 -0
- package/dist/diff/bridge-gradient.d.ts.map +1 -0
- package/dist/diff/bridge-gradient.js +83 -0
- package/dist/diff/bridge-gradient.js.map +1 -0
- package/dist/diff/bridge-specs.d.ts +68 -0
- package/dist/diff/bridge-specs.d.ts.map +1 -0
- package/dist/diff/bridge-specs.js +96 -0
- package/dist/diff/bridge-specs.js.map +1 -0
- package/dist/dimensional/bridge-check.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.js +8 -0
- package/dist/dimensional/bridge-check.js.map +1 -1
- package/dist/dimensional/connection-validators.d.ts +13 -6
- package/dist/dimensional/connection-validators.d.ts.map +1 -1
- package/dist/dimensional/connection-validators.js +1 -1
- package/dist/dimensional/connection-validators.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +90 -0
- package/dist/dimensional/curvature-composite.d.ts.map +1 -0
- package/dist/dimensional/curvature-composite.js +57 -0
- package/dist/dimensional/curvature-composite.js.map +1 -0
- package/dist/dimensional/curvature-invariants.d.ts +90 -0
- package/dist/dimensional/curvature-invariants.d.ts.map +1 -0
- package/dist/dimensional/curvature-invariants.js +64 -0
- package/dist/dimensional/curvature-invariants.js.map +1 -0
- package/dist/dimensional/curvature.d.ts +82 -41
- package/dist/dimensional/curvature.d.ts.map +1 -1
- package/dist/dimensional/curvature.js +19 -11
- package/dist/dimensional/curvature.js.map +1 -1
- package/dist/dimensional/einstein-equation.d.ts +126 -0
- package/dist/dimensional/einstein-equation.d.ts.map +1 -0
- package/dist/dimensional/einstein-equation.js +122 -0
- package/dist/dimensional/einstein-equation.js.map +1 -0
- package/dist/dimensional/field-equation-helpers.d.ts +82 -0
- package/dist/dimensional/field-equation-helpers.d.ts.map +1 -0
- package/dist/dimensional/field-equation-helpers.js +123 -0
- package/dist/dimensional/field-equation-helpers.js.map +1 -0
- package/dist/dimensional/friedmann-equation.d.ts +148 -0
- package/dist/dimensional/friedmann-equation.d.ts.map +1 -0
- package/dist/dimensional/friedmann-equation.js +150 -0
- package/dist/dimensional/friedmann-equation.js.map +1 -0
- package/dist/dimensional/gauge-field.d.ts +182 -0
- package/dist/dimensional/gauge-field.d.ts.map +1 -0
- package/dist/dimensional/gauge-field.js +134 -0
- package/dist/dimensional/gauge-field.js.map +1 -0
- package/dist/dimensional/killing-validators.d.ts +94 -0
- package/dist/dimensional/killing-validators.d.ts.map +1 -0
- package/dist/dimensional/killing-validators.js +66 -0
- package/dist/dimensional/killing-validators.js.map +1 -0
- package/dist/dimensional/klein-gordon-equation.d.ts +113 -0
- package/dist/dimensional/klein-gordon-equation.d.ts.map +1 -0
- package/dist/dimensional/klein-gordon-equation.js +98 -0
- package/dist/dimensional/klein-gordon-equation.js.map +1 -0
- package/dist/dimensional/rg-flow.d.ts +156 -0
- package/dist/dimensional/rg-flow.d.ts.map +1 -0
- package/dist/dimensional/rg-flow.js +150 -0
- package/dist/dimensional/rg-flow.js.map +1 -0
- package/dist/dimensional/stress-energy-validators.d.ts +74 -0
- package/dist/dimensional/stress-energy-validators.d.ts.map +1 -0
- package/dist/dimensional/stress-energy-validators.js +47 -0
- package/dist/dimensional/stress-energy-validators.js.map +1 -0
- package/dist/dimensional/tensor-trace.d.ts +128 -0
- package/dist/dimensional/tensor-trace.d.ts.map +1 -0
- package/dist/dimensional/tensor-trace.js +95 -0
- package/dist/dimensional/tensor-trace.js.map +1 -0
- package/dist/dimensional/tensor.d.ts +6 -8
- package/dist/dimensional/tensor.d.ts.map +1 -1
- package/dist/dimensional/tensor.js +3 -1
- package/dist/dimensional/tensor.js.map +1 -1
- package/dist/dimensional/validator-registry.d.ts +90 -0
- package/dist/dimensional/validator-registry.d.ts.map +1 -0
- package/dist/dimensional/validator-registry.js +131 -0
- package/dist/dimensional/validator-registry.js.map +1 -0
- package/dist/dimensional/validator.d.ts +12 -2
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +60 -75
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/dimensional/weyl-validators.d.ts +84 -0
- package/dist/dimensional/weyl-validators.d.ts.map +1 -0
- package/dist/dimensional/weyl-validators.js +84 -0
- package/dist/dimensional/weyl-validators.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.d.ts +37 -2
- package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.js +51 -14
- package/dist/numerical/be37-covariant-eikonal.js.map +1 -1
- package/dist/numerical/christoffel-flat.d.ts +49 -0
- package/dist/numerical/christoffel-flat.d.ts.map +1 -0
- package/dist/numerical/christoffel-flat.js +86 -0
- package/dist/numerical/christoffel-flat.js.map +1 -0
- package/dist/numerical/curvature-lowering-helpers.d.ts +76 -57
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +203 -64
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/derivative-lowering.d.ts +67 -0
- package/dist/numerical/derivative-lowering.d.ts.map +1 -0
- package/dist/numerical/derivative-lowering.js +243 -0
- package/dist/numerical/derivative-lowering.js.map +1 -0
- package/dist/numerical/einstein-equation.d.ts +106 -0
- package/dist/numerical/einstein-equation.d.ts.map +1 -0
- package/dist/numerical/einstein-equation.js +172 -0
- package/dist/numerical/einstein-equation.js.map +1 -0
- package/dist/numerical/engine-registry.js +4 -4
- package/dist/numerical/engine-registry.js.map +1 -1
- package/dist/numerical/geodesic-integrator.d.ts +7 -4
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +5 -1
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts +57 -9
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +63 -16
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/killing.d.ts +157 -0
- package/dist/numerical/killing.d.ts.map +1 -0
- package/dist/numerical/killing.js +242 -0
- package/dist/numerical/killing.js.map +1 -0
- package/dist/numerical/kretschmann.d.ts +62 -0
- package/dist/numerical/kretschmann.d.ts.map +1 -0
- package/dist/numerical/kretschmann.js +88 -0
- package/dist/numerical/kretschmann.js.map +1 -0
- package/dist/numerical/lowering-utils.d.ts +47 -0
- package/dist/numerical/lowering-utils.d.ts.map +1 -0
- package/dist/numerical/lowering-utils.js +64 -0
- package/dist/numerical/lowering-utils.js.map +1 -0
- package/dist/numerical/lowering.d.ts +1 -29
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +226 -415
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/mathts-engine.js +8 -8
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.d.ts.map +1 -1
- package/dist/numerical/metric-inverse.js +28 -0
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/null-ic.d.ts +40 -0
- package/dist/numerical/null-ic.d.ts.map +1 -0
- package/dist/numerical/null-ic.js +50 -0
- package/dist/numerical/null-ic.js.map +1 -0
- package/dist/numerical/null-ray-integrator.d.ts +3 -2
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
- package/dist/numerical/null-ray-integrator.js +6 -3
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- package/dist/numerical/painleve-gullstrand-metric.d.ts +74 -0
- package/dist/numerical/painleve-gullstrand-metric.d.ts.map +1 -0
- package/dist/numerical/painleve-gullstrand-metric.js +121 -0
- package/dist/numerical/painleve-gullstrand-metric.js.map +1 -0
- package/dist/numerical/pderiv.d.ts +35 -3
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +47 -12
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +57 -0
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +57 -0
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +2 -2
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- package/dist/numerical/weyl-lowering.d.ts +60 -0
- package/dist/numerical/weyl-lowering.d.ts.map +1 -0
- package/dist/numerical/weyl-lowering.js +111 -0
- package/dist/numerical/weyl-lowering.js.map +1 -0
- package/package.json +9 -7
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Friedmann equation AST node — modified-cosmology predicate.
|
|
3
|
+
*
|
|
4
|
+
* Per `docs/architecture/v0.7-be-x-reencoding-design-note.md`
|
|
5
|
+
* §"BE-19 — `FriedmannEquationNode` for modified-Friedmann
|
|
6
|
+
* predicates". Fourth of four BE-X structural re-encodings in the
|
|
7
|
+
* v0.7-series follow-up to the v0.6.0 deferred-bridges list.
|
|
8
|
+
*
|
|
9
|
+
* Represents the predicate
|
|
10
|
+
*
|
|
11
|
+
* H² = (8πG/3) · ρ · [correction]
|
|
12
|
+
*
|
|
13
|
+
* where H is the Hubble parameter, ρ the cosmic energy/mass-density,
|
|
14
|
+
* and `[correction]` is a variant-tagged extension term. The classical
|
|
15
|
+
* FRW form takes `correction = null`; modified-cosmology variants
|
|
16
|
+
* (LQC bounce, Randall-Sundrum brane, DGP, dRGT massive gravity)
|
|
17
|
+
* tag their correction with a `variant` discriminator so consumers
|
|
18
|
+
* can pattern-match on which cosmological regime the equation
|
|
19
|
+
* occupies.
|
|
20
|
+
*
|
|
21
|
+
* Discriminator vocabulary:
|
|
22
|
+
*
|
|
23
|
+
* - `'classical'` — canonical FRW `H² = (8πG/3) ρ` (the [-k/a²]
|
|
24
|
+
* and [Λ/3] terms ride along as additive scalars, not the
|
|
25
|
+
* `correction` slot). `correction` MUST be `null`.
|
|
26
|
+
* - `'lqc'` — Loop Quantum Cosmology bounce `(1 − ρ/ρ_crit)`. The
|
|
27
|
+
* correction is a DIMENSIONLESS multiplicative factor.
|
|
28
|
+
* - `'brane'` — Randall-Sundrum brane-tension `(1 + ρ/(2σ))`. Also
|
|
29
|
+
* dimensionless multiplicative.
|
|
30
|
+
* - `'dgp'` — Dvali-Gabadadze-Porrati 5D-crossover `±H/r_c`. The
|
|
31
|
+
* `correction` slot holds a stub for the additional scale; this
|
|
32
|
+
* variant signals "5D structure present" — fine-grained dim
|
|
33
|
+
* discipline left for future BE-NN landing.
|
|
34
|
+
* - `'massive'` — dRGT massive-gravity graviton-mass term. The
|
|
35
|
+
* `correction` slot holds the graviton-mass^2 contribution; dim
|
|
36
|
+
* discipline left for future BE-NN landing.
|
|
37
|
+
*
|
|
38
|
+
* The variant discriminator is the load-bearing structural fact:
|
|
39
|
+
* future modified-cosmology bridges (brane, DGP, dRGT) land as new
|
|
40
|
+
* `BridgeEquation` entries that produce `FriedmannEquationNode`s
|
|
41
|
+
* with the appropriate variant tag, instead of each inventing a
|
|
42
|
+
* separate AST primitive.
|
|
43
|
+
*
|
|
44
|
+
* References:
|
|
45
|
+
* - Mukhanov, *Physical Foundations of Cosmology* (2005), §2.1
|
|
46
|
+
* for the canonical FRW Friedmann equation derivation.
|
|
47
|
+
* - Ashtekar & Singh, *Loop Quantum Cosmology: A Status Report*
|
|
48
|
+
* (2011), arXiv:1108.0893 — for the LQC `(1 − ρ/ρ_crit)` bounce
|
|
49
|
+
* factor; the canonical reference for the `'lqc'` variant
|
|
50
|
+
* consumed by BE-19.
|
|
51
|
+
*
|
|
52
|
+
* Status: PREDICATE node like `EinsteinFieldEquationNode` and
|
|
53
|
+
* `KleinGordonEquationNode` — not a value-producing expression.
|
|
54
|
+
* Numerical evaluation of a specific FRW history is out of scope
|
|
55
|
+
* (numerical evaluators live alongside per-bridge encodings — e.g.
|
|
56
|
+
* `evaluateQuantumBounce` in `src/bridges/equations/be-19-quantum-bounce.ts`).
|
|
57
|
+
*
|
|
58
|
+
* @module dimensional/friedmann-equation
|
|
59
|
+
*/
|
|
60
|
+
import { equals } from './algebra.js';
|
|
61
|
+
import { validateFreeIndexLabelMatch, validateComponentDimension, validateTensorSymmetry, } from './field-equation-helpers.js';
|
|
62
|
+
const KNOWN_VARIANTS = new Set([
|
|
63
|
+
'classical',
|
|
64
|
+
'lqc',
|
|
65
|
+
'brane',
|
|
66
|
+
'dgp',
|
|
67
|
+
'massive',
|
|
68
|
+
]);
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
// Expected dims
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
/** `[T^-2]`: dim of H² and of (8πG/3)·ρ in the canonical Friedmann form. */
|
|
73
|
+
const T_INV2 = { L: 0, M: 0, T: -2, I: 0, Theta: 0, N: 0, J: 0 };
|
|
74
|
+
/** `[T^-1]`: dim of the un-squared Hubble parameter H. */
|
|
75
|
+
const T_INV1 = { L: 0, M: 0, T: -1, I: 0, Theta: 0, N: 0, J: 0 };
|
|
76
|
+
/** `[M·L^-3]`: dim of mass-density ρ (canonical Friedmann convention). */
|
|
77
|
+
const MASS_DENSITY = { L: -3, M: 1, T: 0, I: 0, Theta: 0, N: 0, J: 0 };
|
|
78
|
+
/** `[]`: dimensionless (the LQC `(1 − ρ/ρ_crit)` correction factor). */
|
|
79
|
+
const DIMLESS = { L: 0, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 };
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
// Validator
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
83
|
+
/**
|
|
84
|
+
* Validate a `friedmann-equation` node.
|
|
85
|
+
*
|
|
86
|
+
* Predicates (mirroring the field-equation-helpers pattern):
|
|
87
|
+
*
|
|
88
|
+
* 1. **Variant discriminator** — `variant` must be one of the
|
|
89
|
+
* known tags. Throws with `"variant"` keyword on unknown values.
|
|
90
|
+
* 2. **Classical–correction consistency** — `variant === 'classical'`
|
|
91
|
+
* requires `correction === null`; any other variant requires
|
|
92
|
+
* `correction !== null`. Throws with `"variant"` keyword.
|
|
93
|
+
* 3. **Free-index agreement** — trivially passes (rank-0 equation).
|
|
94
|
+
* 4. **Per-component dim equality** — `hubble.dim` must be `[T^-2]`
|
|
95
|
+
* (H²) or `[T^-1]` (H); `density.dim` must be `[M·L^-3]`. For
|
|
96
|
+
* `variant === 'lqc'`, `correction.dim` must be dimensionless
|
|
97
|
+
* (the `(1 − ρ/ρ_crit)` bounce factor).
|
|
98
|
+
* 5. **Symmetry agreement** — all participants carry the trivial
|
|
99
|
+
* `'scalar'` marker.
|
|
100
|
+
*
|
|
101
|
+
* Errors carry the keywords `"dimension"` / `"symmetry"` (from the
|
|
102
|
+
* field-equation-helpers) and `"variant"` (for discriminator /
|
|
103
|
+
* classical-consistency violations).
|
|
104
|
+
*
|
|
105
|
+
* @public
|
|
106
|
+
*/
|
|
107
|
+
export function validateFriedmannEquation(node) {
|
|
108
|
+
// Predicate 1: variant discriminator membership.
|
|
109
|
+
if (!KNOWN_VARIANTS.has(node.variant)) {
|
|
110
|
+
throw new Error(`FriedmannEquationNode: unknown variant '${node.variant}' — ` +
|
|
111
|
+
`must be one of 'classical' | 'lqc' | 'brane' | 'dgp' | 'massive'.`);
|
|
112
|
+
}
|
|
113
|
+
// Predicate 2: classical/correction consistency.
|
|
114
|
+
if (node.variant === 'classical' && node.correction !== null) {
|
|
115
|
+
throw new Error(`FriedmannEquationNode: variant 'classical' must carry ` +
|
|
116
|
+
`correction === null (the canonical FRW form has no ` +
|
|
117
|
+
`variant-specific correction term).`);
|
|
118
|
+
}
|
|
119
|
+
if (node.variant !== 'classical' && node.correction === null) {
|
|
120
|
+
throw new Error(`FriedmannEquationNode: variant '${node.variant}' requires a ` +
|
|
121
|
+
`non-null correction term (only the 'classical' variant accepts ` +
|
|
122
|
+
`correction === null).`);
|
|
123
|
+
}
|
|
124
|
+
// Predicate 3: free-index agreement (trivially: both rank-0).
|
|
125
|
+
validateFreeIndexLabelMatch('FriedmannEquationNode', 'H²', [], '(8πG/3)·ρ·correction', []);
|
|
126
|
+
// Predicate 4a: hubble dim must be [T^-2] or [T^-1].
|
|
127
|
+
if (!equals(node.hubble.dim, T_INV2) && !equals(node.hubble.dim, T_INV1)) {
|
|
128
|
+
throw new Error(`FriedmannEquationNode: dimension mismatch — hubble.dim must be ` +
|
|
129
|
+
`${JSON.stringify(T_INV2)} (H²) or ${JSON.stringify(T_INV1)} (H), ` +
|
|
130
|
+
`got ${JSON.stringify(node.hubble.dim)}.`);
|
|
131
|
+
}
|
|
132
|
+
// Predicate 4b: density dim must be [M·L^-3] (mass-density convention).
|
|
133
|
+
validateComponentDimension('FriedmannEquationNode', 'density ρ.dim', node.density.dim, MASS_DENSITY, 'ρ is the cosmic mass-density; Friedmann uses [M·L^-3] (so (8πG/3)·ρ ~ [T^-2]).');
|
|
134
|
+
// Predicate 4c: LQC correction must be dimensionless.
|
|
135
|
+
if (node.variant === 'lqc' && node.correction !== null) {
|
|
136
|
+
validateComponentDimension('FriedmannEquationNode', "lqc correction.dim", node.correction.dim, DIMLESS, 'LQC bounce factor (1 − ρ/ρ_crit) is dimensionless.');
|
|
137
|
+
}
|
|
138
|
+
// Predicate 5: symmetry agreement — all 'scalar'.
|
|
139
|
+
validateTensorSymmetry('FriedmannEquationNode', 'hubble', node.hubble.symmetry, 'scalar', 'Friedmann is a cosmological scalar equation.');
|
|
140
|
+
validateTensorSymmetry('FriedmannEquationNode', 'density', node.density.symmetry, 'scalar', 'ρ is a cosmological scalar.');
|
|
141
|
+
if (node.correction !== null) {
|
|
142
|
+
validateTensorSymmetry('FriedmannEquationNode', 'correction', node.correction.symmetry, 'scalar', 'Friedmann correction terms are encoded as scalar factors.');
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
dim: T_INV2,
|
|
146
|
+
freeIndices: new Map(),
|
|
147
|
+
variant: node.variant,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=friedmann-equation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"friedmann-equation.js","sourceRoot":"","sources":["../../src/dimensional/friedmann-equation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gauge-field AST primitives for Wheeler-Feynman absorber-theory
|
|
3
|
+
* time-symmetric electrodynamics.
|
|
4
|
+
*
|
|
5
|
+
* Wheeler-Feynman absorber theory (Wheeler & Feynman 1945
|
|
6
|
+
* Rev. Mod. Phys. 17:157; Wheeler & Feynman 1949
|
|
7
|
+
* Rev. Mod. Phys. 21:425) uses TIME-SYMMETRIC electrodynamics:
|
|
8
|
+
* radiation reaction arises from the half-retarded +
|
|
9
|
+
* half-advanced potential combination
|
|
10
|
+
*
|
|
11
|
+
* A_μ(x) = (1/2) [A_μ^ret(x) + A_μ^adv(x)].
|
|
12
|
+
*
|
|
13
|
+
* Under the absorber boundary condition (every emitted disturbance
|
|
14
|
+
* is fully absorbed by future matter), this symmetric form is
|
|
15
|
+
* physically equivalent to retarded-only Maxwell.
|
|
16
|
+
*
|
|
17
|
+
* Two primitives are provided:
|
|
18
|
+
*
|
|
19
|
+
* 1. `GaugeFieldNode` — tags an EM gauge field with its
|
|
20
|
+
* "arrow of time": retarded (Liénard-Wiechert advanced
|
|
21
|
+
* Green's function), advanced (retarded Green's function
|
|
22
|
+
* — past-directed), or symmetric (half-half combination).
|
|
23
|
+
* The consumer supplies the dimension (SI: V·s/m =
|
|
24
|
+
* { L:1, M:1, T:-2, I:-1 }) or works with the ratio which
|
|
25
|
+
* is dimensionless.
|
|
26
|
+
*
|
|
27
|
+
* 2. `TimeSymmetryPredicateNode` — asserts that the
|
|
28
|
+
* dimensionless time-symmetry residual
|
|
29
|
+
* |A_ret − A_adv| / |A_ret + A_adv| is bounded by ε.
|
|
30
|
+
* Identically 0 under the absorber boundary condition.
|
|
31
|
+
* This is a PREDICATE node (like `EinsteinFieldEquationNode`)
|
|
32
|
+
* — not a value-producing expression.
|
|
33
|
+
*
|
|
34
|
+
* Phase 1 demonstrator pattern: follows
|
|
35
|
+
* `src/dimensional/klein-gordon-equation.ts` (field-equation-helpers
|
|
36
|
+
* pattern, Phase 1 of TensorEquationNode generalization).
|
|
37
|
+
*
|
|
38
|
+
* @see docs/architecture/v0.7-be-x-reencoding-design-note.md §BE-50
|
|
39
|
+
* @see src/bridges/equations/be-50-wheeler-feynman.ts
|
|
40
|
+
* @module dimensional/gauge-field
|
|
41
|
+
*/
|
|
42
|
+
import type { Dimension } from './types.js';
|
|
43
|
+
/**
|
|
44
|
+
* Arrow-of-time tag for an electromagnetic gauge potential.
|
|
45
|
+
*
|
|
46
|
+
* - `'retarded'` — propagator uses the retarded Green's function
|
|
47
|
+
* (∝ Liénard-Wiechert advanced solution); causal, future-directed.
|
|
48
|
+
* - `'advanced'` — propagator uses the advanced Green's function
|
|
49
|
+
* (∝ Liénard-Wiechert retarded solution); anti-causal, past-directed.
|
|
50
|
+
* - `'symmetric'` — half-retarded + half-advanced combination
|
|
51
|
+
* (Wheeler-Feynman's A_μ = (1/2)[A_μ^ret + A_μ^adv]).
|
|
52
|
+
*
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
export type ArrowOfTime = 'retarded' | 'advanced' | 'symmetric';
|
|
56
|
+
/**
|
|
57
|
+
* AST node for an electromagnetic gauge potential A_μ with an explicit
|
|
58
|
+
* arrow-of-time tag.
|
|
59
|
+
*
|
|
60
|
+
* The `dim` field carries the SI dimension of the gauge field. For the
|
|
61
|
+
* Wheeler-Feynman time-symmetry ratio, the dimension of the numerator
|
|
62
|
+
* and denominator cancel, yielding a dimensionless result — but the
|
|
63
|
+
* `dim` field is required so the validator can confirm that both the
|
|
64
|
+
* retarded and advanced fields in a `TimeSymmetryPredicateNode` share
|
|
65
|
+
* the same dimension (the ratio is well-defined only if they do).
|
|
66
|
+
*
|
|
67
|
+
* Canonical SI dim of the magnetic vector potential A_μ:
|
|
68
|
+
* [A] = V·s/m = kg·m/(A·s²) = { L: 1, M: 1, T: -2, I: -1 }
|
|
69
|
+
*
|
|
70
|
+
* @public
|
|
71
|
+
*/
|
|
72
|
+
export interface GaugeFieldNode {
|
|
73
|
+
/** Discriminator: `'gauge-field'`. */
|
|
74
|
+
readonly kind: 'gauge-field';
|
|
75
|
+
/** Human-readable field name (e.g., `'A_ret'`, `'A_adv'`, `'A_mu'`). */
|
|
76
|
+
readonly name: string;
|
|
77
|
+
/**
|
|
78
|
+
* Arrow-of-time tag. Documents whether this field was computed using
|
|
79
|
+
* the retarded Green's function, the advanced Green's function, or
|
|
80
|
+
* the symmetric half-half combination.
|
|
81
|
+
*/
|
|
82
|
+
readonly arrowOfTime: ArrowOfTime;
|
|
83
|
+
/**
|
|
84
|
+
* SI dimension of the gauge field. Both retarded and advanced fields
|
|
85
|
+
* must share the same dimension for the time-symmetry ratio to be
|
|
86
|
+
* well-defined (dimensionless by cancellation).
|
|
87
|
+
*/
|
|
88
|
+
readonly dim: Dimension;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* AST predicate node for the Wheeler-Feynman time-symmetry condition.
|
|
92
|
+
*
|
|
93
|
+
* Asserts that the dimensionless time-symmetry residual
|
|
94
|
+
*
|
|
95
|
+
* |A_ret − A_adv| / |A_ret + A_adv| ≤ ε
|
|
96
|
+
*
|
|
97
|
+
* is bounded by `epsilon`. Under the absorber boundary condition
|
|
98
|
+
* (Wheeler & Feynman 1945), this residual is identically 0 on
|
|
99
|
+
* physical states. A non-zero `epsilon` documents the allowable
|
|
100
|
+
* deviation (e.g., a Cramer 1986 experimental bound of 10⁻²).
|
|
101
|
+
*
|
|
102
|
+
* This is a PREDICATE node (like `EinsteinFieldEquationNode`) —
|
|
103
|
+
* not a value-producing expression. Numerical evaluation of the
|
|
104
|
+
* residual for specific field amplitudes is handled separately by
|
|
105
|
+
* `evaluateWFTimeSymmetry` in `src/bridges/equations/be-50-wheeler-feynman.ts`.
|
|
106
|
+
*
|
|
107
|
+
* @public
|
|
108
|
+
*/
|
|
109
|
+
export interface TimeSymmetryPredicateNode {
|
|
110
|
+
/** Discriminator: `'time-symmetry-predicate'`. */
|
|
111
|
+
readonly kind: 'time-symmetry-predicate';
|
|
112
|
+
/**
|
|
113
|
+
* The retarded gauge potential A_μ^ret.
|
|
114
|
+
* Must have `arrowOfTime: 'retarded'`.
|
|
115
|
+
*/
|
|
116
|
+
readonly retarded: GaugeFieldNode;
|
|
117
|
+
/**
|
|
118
|
+
* The advanced gauge potential A_μ^adv.
|
|
119
|
+
* Must have `arrowOfTime: 'advanced'`.
|
|
120
|
+
*/
|
|
121
|
+
readonly advanced: GaugeFieldNode;
|
|
122
|
+
/**
|
|
123
|
+
* Bound on the time-symmetry residual: |A_ret − A_adv| / |A_ret + A_adv| ≤ epsilon.
|
|
124
|
+
* Must be strictly positive and finite.
|
|
125
|
+
* Set to a small value (e.g., 1e-3) to encode an experimental bound,
|
|
126
|
+
* or to `Number.EPSILON` to assert near-exact absorber-theory symmetry.
|
|
127
|
+
*/
|
|
128
|
+
readonly epsilon: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Validate a `GaugeFieldNode`.
|
|
132
|
+
*
|
|
133
|
+
* Three predicates:
|
|
134
|
+
* 1. `name` must be a non-empty string.
|
|
135
|
+
* 2. `arrowOfTime` must be one of `'retarded'`, `'advanced'`, `'symmetric'`.
|
|
136
|
+
* 3. `dim` must be a valid `Dimension` object (all 7 SI exponents present
|
|
137
|
+
* as finite numbers).
|
|
138
|
+
*
|
|
139
|
+
* Throws `Error` with `'gauge-field'` in the message on any failure.
|
|
140
|
+
*
|
|
141
|
+
* @public
|
|
142
|
+
*/
|
|
143
|
+
export declare function validateGaugeField(node: GaugeFieldNode): void;
|
|
144
|
+
/**
|
|
145
|
+
* Result of validating a `TimeSymmetryPredicateNode`.
|
|
146
|
+
*
|
|
147
|
+
* @public
|
|
148
|
+
*/
|
|
149
|
+
export interface TimeSymmetryPredicateValidationResult {
|
|
150
|
+
/**
|
|
151
|
+
* The shared dimension of the retarded and advanced gauge fields.
|
|
152
|
+
* The ratio |A_ret − A_adv| / |A_ret + A_adv| is dimensionless
|
|
153
|
+
* because this dimension cancels.
|
|
154
|
+
*/
|
|
155
|
+
readonly fieldDim: Dimension;
|
|
156
|
+
/** The validated epsilon bound (> 0, finite). */
|
|
157
|
+
readonly epsilon: number;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Validate a `TimeSymmetryPredicateNode`.
|
|
161
|
+
*
|
|
162
|
+
* Four predicates (following the field-equation-helpers pattern):
|
|
163
|
+
*
|
|
164
|
+
* 1. **Arrow-of-time tags** — `retarded.arrowOfTime` must be
|
|
165
|
+
* `'retarded'`; `advanced.arrowOfTime` must be `'advanced'`.
|
|
166
|
+
* 2. **Per-field validity** — both `GaugeFieldNode`s pass
|
|
167
|
+
* `validateGaugeField`.
|
|
168
|
+
* 3. **Dimension equality** — `retarded.dim` and `advanced.dim`
|
|
169
|
+
* must match (so the ratio is dimensionless by cancellation).
|
|
170
|
+
* Uses `validateComponentDimension` from field-equation-helpers.
|
|
171
|
+
* 4. **Epsilon bound** — `epsilon` must be strictly positive and
|
|
172
|
+
* finite (`epsilon > 0` and `Number.isFinite(epsilon)`).
|
|
173
|
+
*
|
|
174
|
+
* Error messages contain `'symmetry'` for arrow-of-time mismatches
|
|
175
|
+
* and `'dimension'` for dim-equality failures (error-keyword
|
|
176
|
+
* discipline shared with EinsteinFieldEquationNode and
|
|
177
|
+
* KleinGordonEquationNode).
|
|
178
|
+
*
|
|
179
|
+
* @public
|
|
180
|
+
*/
|
|
181
|
+
export declare function validateTimeSymmetryPredicate(node: TimeSymmetryPredicateNode): TimeSymmetryPredicateValidationResult;
|
|
182
|
+
//# sourceMappingURL=gauge-field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge-field.d.ts","sourceRoot":"","sources":["../../src/dimensional/gauge-field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO5C;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAEhE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,yBAAyB;IACxC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CA0B7D;AAED;;;;GAIG;AACH,MAAM,WAAW,qCAAqC;IACpD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,yBAAyB,GAC9B,qCAAqC,CAkDvC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gauge-field AST primitives for Wheeler-Feynman absorber-theory
|
|
3
|
+
* time-symmetric electrodynamics.
|
|
4
|
+
*
|
|
5
|
+
* Wheeler-Feynman absorber theory (Wheeler & Feynman 1945
|
|
6
|
+
* Rev. Mod. Phys. 17:157; Wheeler & Feynman 1949
|
|
7
|
+
* Rev. Mod. Phys. 21:425) uses TIME-SYMMETRIC electrodynamics:
|
|
8
|
+
* radiation reaction arises from the half-retarded +
|
|
9
|
+
* half-advanced potential combination
|
|
10
|
+
*
|
|
11
|
+
* A_μ(x) = (1/2) [A_μ^ret(x) + A_μ^adv(x)].
|
|
12
|
+
*
|
|
13
|
+
* Under the absorber boundary condition (every emitted disturbance
|
|
14
|
+
* is fully absorbed by future matter), this symmetric form is
|
|
15
|
+
* physically equivalent to retarded-only Maxwell.
|
|
16
|
+
*
|
|
17
|
+
* Two primitives are provided:
|
|
18
|
+
*
|
|
19
|
+
* 1. `GaugeFieldNode` — tags an EM gauge field with its
|
|
20
|
+
* "arrow of time": retarded (Liénard-Wiechert advanced
|
|
21
|
+
* Green's function), advanced (retarded Green's function
|
|
22
|
+
* — past-directed), or symmetric (half-half combination).
|
|
23
|
+
* The consumer supplies the dimension (SI: V·s/m =
|
|
24
|
+
* { L:1, M:1, T:-2, I:-1 }) or works with the ratio which
|
|
25
|
+
* is dimensionless.
|
|
26
|
+
*
|
|
27
|
+
* 2. `TimeSymmetryPredicateNode` — asserts that the
|
|
28
|
+
* dimensionless time-symmetry residual
|
|
29
|
+
* |A_ret − A_adv| / |A_ret + A_adv| is bounded by ε.
|
|
30
|
+
* Identically 0 under the absorber boundary condition.
|
|
31
|
+
* This is a PREDICATE node (like `EinsteinFieldEquationNode`)
|
|
32
|
+
* — not a value-producing expression.
|
|
33
|
+
*
|
|
34
|
+
* Phase 1 demonstrator pattern: follows
|
|
35
|
+
* `src/dimensional/klein-gordon-equation.ts` (field-equation-helpers
|
|
36
|
+
* pattern, Phase 1 of TensorEquationNode generalization).
|
|
37
|
+
*
|
|
38
|
+
* @see docs/architecture/v0.7-be-x-reencoding-design-note.md §BE-50
|
|
39
|
+
* @see src/bridges/equations/be-50-wheeler-feynman.ts
|
|
40
|
+
* @module dimensional/gauge-field
|
|
41
|
+
*/
|
|
42
|
+
import { validateComponentDimension } from './field-equation-helpers.js';
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// Validators
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
/**
|
|
47
|
+
* Validate a `GaugeFieldNode`.
|
|
48
|
+
*
|
|
49
|
+
* Three predicates:
|
|
50
|
+
* 1. `name` must be a non-empty string.
|
|
51
|
+
* 2. `arrowOfTime` must be one of `'retarded'`, `'advanced'`, `'symmetric'`.
|
|
52
|
+
* 3. `dim` must be a valid `Dimension` object (all 7 SI exponents present
|
|
53
|
+
* as finite numbers).
|
|
54
|
+
*
|
|
55
|
+
* Throws `Error` with `'gauge-field'` in the message on any failure.
|
|
56
|
+
*
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
export function validateGaugeField(node) {
|
|
60
|
+
if (typeof node.name !== 'string' || node.name.trim().length === 0) {
|
|
61
|
+
throw new Error(`GaugeFieldNode: gauge-field name must be a non-empty string ` +
|
|
62
|
+
`(got ${JSON.stringify(node.name)}).`);
|
|
63
|
+
}
|
|
64
|
+
const validArrows = ['retarded', 'advanced', 'symmetric'];
|
|
65
|
+
if (!validArrows.includes(node.arrowOfTime)) {
|
|
66
|
+
throw new Error(`GaugeFieldNode: gauge-field arrowOfTime must be 'retarded', 'advanced', ` +
|
|
67
|
+
`or 'symmetric' (got ${JSON.stringify(node.arrowOfTime)}).`);
|
|
68
|
+
}
|
|
69
|
+
const dim = node.dim;
|
|
70
|
+
const axes = ['L', 'M', 'T', 'I', 'Theta', 'N', 'J'];
|
|
71
|
+
for (const ax of axes) {
|
|
72
|
+
if (typeof dim[ax] !== 'number' || !Number.isFinite(dim[ax])) {
|
|
73
|
+
throw new Error(`GaugeFieldNode: gauge-field dim.${ax} must be a finite number ` +
|
|
74
|
+
`(got ${JSON.stringify(dim[ax])} for field '${node.name}').`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Validate a `TimeSymmetryPredicateNode`.
|
|
80
|
+
*
|
|
81
|
+
* Four predicates (following the field-equation-helpers pattern):
|
|
82
|
+
*
|
|
83
|
+
* 1. **Arrow-of-time tags** — `retarded.arrowOfTime` must be
|
|
84
|
+
* `'retarded'`; `advanced.arrowOfTime` must be `'advanced'`.
|
|
85
|
+
* 2. **Per-field validity** — both `GaugeFieldNode`s pass
|
|
86
|
+
* `validateGaugeField`.
|
|
87
|
+
* 3. **Dimension equality** — `retarded.dim` and `advanced.dim`
|
|
88
|
+
* must match (so the ratio is dimensionless by cancellation).
|
|
89
|
+
* Uses `validateComponentDimension` from field-equation-helpers.
|
|
90
|
+
* 4. **Epsilon bound** — `epsilon` must be strictly positive and
|
|
91
|
+
* finite (`epsilon > 0` and `Number.isFinite(epsilon)`).
|
|
92
|
+
*
|
|
93
|
+
* Error messages contain `'symmetry'` for arrow-of-time mismatches
|
|
94
|
+
* and `'dimension'` for dim-equality failures (error-keyword
|
|
95
|
+
* discipline shared with EinsteinFieldEquationNode and
|
|
96
|
+
* KleinGordonEquationNode).
|
|
97
|
+
*
|
|
98
|
+
* @public
|
|
99
|
+
*/
|
|
100
|
+
export function validateTimeSymmetryPredicate(node) {
|
|
101
|
+
// Predicate 1a: retarded field's arrow-of-time must be 'retarded'.
|
|
102
|
+
if (node.retarded.arrowOfTime !== 'retarded') {
|
|
103
|
+
throw new Error(`TimeSymmetryPredicateNode: symmetry mismatch — retarded field ` +
|
|
104
|
+
`'${node.retarded.name}' must have arrowOfTime: 'retarded' ` +
|
|
105
|
+
`(got '${node.retarded.arrowOfTime}'). The time-symmetry predicate ` +
|
|
106
|
+
`requires A_ret to carry the retarded arrow-of-time tag.`);
|
|
107
|
+
}
|
|
108
|
+
// Predicate 1b: advanced field's arrow-of-time must be 'advanced'.
|
|
109
|
+
if (node.advanced.arrowOfTime !== 'advanced') {
|
|
110
|
+
throw new Error(`TimeSymmetryPredicateNode: symmetry mismatch — advanced field ` +
|
|
111
|
+
`'${node.advanced.name}' must have arrowOfTime: 'advanced' ` +
|
|
112
|
+
`(got '${node.advanced.arrowOfTime}'). The time-symmetry predicate ` +
|
|
113
|
+
`requires A_adv to carry the advanced arrow-of-time tag.`);
|
|
114
|
+
}
|
|
115
|
+
// Predicate 2: both GaugeFieldNodes pass individual validation.
|
|
116
|
+
validateGaugeField(node.retarded);
|
|
117
|
+
validateGaugeField(node.advanced);
|
|
118
|
+
// Predicate 3: retarded.dim and advanced.dim must match.
|
|
119
|
+
// Uses validateComponentDimension from field-equation-helpers — same
|
|
120
|
+
// helper used by KleinGordonEquationNode and EinsteinFieldEquationNode.
|
|
121
|
+
validateComponentDimension('TimeSymmetryPredicateNode', `advanced field '${node.advanced.name}' dim`, node.advanced.dim, node.retarded.dim, `A_ret and A_adv must share the same dimension so that the ratio ` +
|
|
122
|
+
`|A_ret − A_adv| / |A_ret + A_adv| is dimensionless by cancellation.`);
|
|
123
|
+
// Predicate 4: epsilon must be strictly positive and finite.
|
|
124
|
+
if (!Number.isFinite(node.epsilon) || node.epsilon <= 0) {
|
|
125
|
+
throw new Error(`TimeSymmetryPredicateNode: epsilon must be a strictly positive finite ` +
|
|
126
|
+
`number (got ${node.epsilon}). epsilon bounds the time-symmetry residual ` +
|
|
127
|
+
`|A_ret − A_adv| / |A_ret + A_adv| ≤ epsilon.`);
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
fieldDim: node.retarded.dim,
|
|
131
|
+
epsilon: node.epsilon,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=gauge-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge-field.js","sourceRoot":"","sources":["../../src/dimensional/gauge-field.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Killing-vector machinery (v0.6.0 Phase 1, Tasks 1.1–1.2).
|
|
3
|
+
*
|
|
4
|
+
* A Killing vector ξ^μ generates an isometry of the metric. The defining
|
|
5
|
+
* equation is the Killing equation
|
|
6
|
+
*
|
|
7
|
+
* ∇_μ ξ_ν + ∇_ν ξ_μ = 0
|
|
8
|
+
*
|
|
9
|
+
* (Carroll Eq. 3.174). Validation here is symbolic (rank + variance only);
|
|
10
|
+
* the operator-valued check happens at lowering time in
|
|
11
|
+
* `src/numerical/killing.ts::verifyKillingEquation`.
|
|
12
|
+
*
|
|
13
|
+
* @module dimensional/killing-validators
|
|
14
|
+
*/
|
|
15
|
+
import type { Dimension } from './types.js';
|
|
16
|
+
import type { TensorSymbolNode } from './tensor.js';
|
|
17
|
+
import type { MetricTensorNode } from './metric-validators.js';
|
|
18
|
+
/**
|
|
19
|
+
* AST node for a Killing vector ξ^μ. Rank-1 upper-variance tensor with
|
|
20
|
+
* an attached metric reference (the metric whose isometry ξ generates).
|
|
21
|
+
*
|
|
22
|
+
* Component-dim is free (typically `[L·T⁻¹]` for spatial Killing fields,
|
|
23
|
+
* dimensionless for time-translation if c=1 normalization, or `[L]` for
|
|
24
|
+
* dimensionally-pure spatial isometries).
|
|
25
|
+
*
|
|
26
|
+
* @public
|
|
27
|
+
*/
|
|
28
|
+
export interface KillingVectorNode {
|
|
29
|
+
readonly kind: 'killing-vector';
|
|
30
|
+
readonly vector: TensorSymbolNode;
|
|
31
|
+
readonly metric: MetricTensorNode;
|
|
32
|
+
}
|
|
33
|
+
interface KillingVectorValidationResult {
|
|
34
|
+
readonly dim: Dimension;
|
|
35
|
+
readonly freeIndices: Map<string, {
|
|
36
|
+
upper: number;
|
|
37
|
+
lower: number;
|
|
38
|
+
}>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Validate a `killing-vector` node.
|
|
42
|
+
*
|
|
43
|
+
* Throws:
|
|
44
|
+
* - Error if vector is not rank-1 (Killing fields are rank-1 by definition).
|
|
45
|
+
* - Error if vector variance is not 'upper' (canonical Killing form is upper;
|
|
46
|
+
* lower form is obtained by metric-lowering at lowering-time).
|
|
47
|
+
*/
|
|
48
|
+
export declare function validateKillingVector(node: KillingVectorNode): KillingVectorValidationResult;
|
|
49
|
+
/**
|
|
50
|
+
* AST node for the conserved charge Q = ξ^μ p_μ along a geodesic
|
|
51
|
+
* (Carroll Eq. 3.175).
|
|
52
|
+
*
|
|
53
|
+
* **Sign convention**: the node encodes the raw contraction `ξ^μ p_μ`.
|
|
54
|
+
* In (-,+,+,+) signature with the timelike Killing vector ξ^μ_t = (1,0,0,0),
|
|
55
|
+
* `p_t < 0` for forward-time motion of massive particles, so the "physical
|
|
56
|
+
* energy" of common usage is `E = -Q` (Carroll Eq. 8.30). The PC-1.5
|
|
57
|
+
* diagnostic uses magnitude `|ΔQ / Q|` to be sign-agnostic.
|
|
58
|
+
*
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
export interface ConservedChargeNode {
|
|
62
|
+
readonly kind: 'conserved-charge';
|
|
63
|
+
/** The Killing vector ξ^μ (rank-1, upper variance). */
|
|
64
|
+
readonly killing: KillingVectorNode;
|
|
65
|
+
/**
|
|
66
|
+
* The covariant momentum p_μ (rank-1, lower variance). Must have the same
|
|
67
|
+
* index label as `killing.vector` so that the contraction ξ^μ p_μ is
|
|
68
|
+
* well-formed.
|
|
69
|
+
*/
|
|
70
|
+
readonly momentum: TensorSymbolNode;
|
|
71
|
+
}
|
|
72
|
+
interface ConservedChargeValidationResult {
|
|
73
|
+
readonly dim: Dimension;
|
|
74
|
+
readonly freeIndices: Map<string, {
|
|
75
|
+
upper: number;
|
|
76
|
+
lower: number;
|
|
77
|
+
}>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Validate a `conserved-charge` node.
|
|
81
|
+
*
|
|
82
|
+
* Throws:
|
|
83
|
+
* - Error if momentum is not rank-1.
|
|
84
|
+
* - Error if the Killing-vector index label does not match the momentum
|
|
85
|
+
* index label (they must contract on the same label).
|
|
86
|
+
* - Error if momentum variance is not 'lower' (Q = ξ^μ p_μ requires the
|
|
87
|
+
* upper Killing field to contract with the lower momentum).
|
|
88
|
+
*
|
|
89
|
+
* Returns a scalar result (empty freeIndices) with dimension
|
|
90
|
+
* `dim(ξ) × dim(p)` via the `multiply` algebra helper.
|
|
91
|
+
*/
|
|
92
|
+
export declare function validateConservedCharge(node: ConservedChargeNode): ConservedChargeValidationResult;
|
|
93
|
+
export {};
|
|
94
|
+
//# sourceMappingURL=killing-validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"killing-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/killing-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAGD,UAAU,6BAA6B;IACrC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,GACtB,6BAA6B,CAe/B;AAMD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;CACrC;AAGD,UAAU,+BAA+B;IACvC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,mBAAmB,GACxB,+BAA+B,CAsBjC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Killing-vector machinery (v0.6.0 Phase 1, Tasks 1.1–1.2).
|
|
3
|
+
*
|
|
4
|
+
* A Killing vector ξ^μ generates an isometry of the metric. The defining
|
|
5
|
+
* equation is the Killing equation
|
|
6
|
+
*
|
|
7
|
+
* ∇_μ ξ_ν + ∇_ν ξ_μ = 0
|
|
8
|
+
*
|
|
9
|
+
* (Carroll Eq. 3.174). Validation here is symbolic (rank + variance only);
|
|
10
|
+
* the operator-valued check happens at lowering time in
|
|
11
|
+
* `src/numerical/killing.ts::verifyKillingEquation`.
|
|
12
|
+
*
|
|
13
|
+
* @module dimensional/killing-validators
|
|
14
|
+
*/
|
|
15
|
+
import { multiply } from './algebra.js';
|
|
16
|
+
/**
|
|
17
|
+
* Validate a `killing-vector` node.
|
|
18
|
+
*
|
|
19
|
+
* Throws:
|
|
20
|
+
* - Error if vector is not rank-1 (Killing fields are rank-1 by definition).
|
|
21
|
+
* - Error if vector variance is not 'upper' (canonical Killing form is upper;
|
|
22
|
+
* lower form is obtained by metric-lowering at lowering-time).
|
|
23
|
+
*/
|
|
24
|
+
export function validateKillingVector(node) {
|
|
25
|
+
if (node.vector.indices.length !== 1) {
|
|
26
|
+
throw new Error(`KillingVectorNode: expected rank-1 vector, got rank-${node.vector.indices.length}`);
|
|
27
|
+
}
|
|
28
|
+
const idx = node.vector.indices[0];
|
|
29
|
+
if (idx.variance !== 'upper') {
|
|
30
|
+
throw new Error(`KillingVectorNode: expected upper variance, got '${idx.variance}'`);
|
|
31
|
+
}
|
|
32
|
+
const freeIndices = new Map();
|
|
33
|
+
freeIndices.set(idx.label, { upper: 1, lower: 0 });
|
|
34
|
+
return { dim: node.vector.dim, freeIndices };
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Validate a `conserved-charge` node.
|
|
38
|
+
*
|
|
39
|
+
* Throws:
|
|
40
|
+
* - Error if momentum is not rank-1.
|
|
41
|
+
* - Error if the Killing-vector index label does not match the momentum
|
|
42
|
+
* index label (they must contract on the same label).
|
|
43
|
+
* - Error if momentum variance is not 'lower' (Q = ξ^μ p_μ requires the
|
|
44
|
+
* upper Killing field to contract with the lower momentum).
|
|
45
|
+
*
|
|
46
|
+
* Returns a scalar result (empty freeIndices) with dimension
|
|
47
|
+
* `dim(ξ) × dim(p)` via the `multiply` algebra helper.
|
|
48
|
+
*/
|
|
49
|
+
export function validateConservedCharge(node) {
|
|
50
|
+
if (node.momentum.indices.length !== 1) {
|
|
51
|
+
throw new Error(`ConservedChargeNode: expected rank-1 momentum, got rank-${node.momentum.indices.length}`);
|
|
52
|
+
}
|
|
53
|
+
const xiLabel = node.killing.vector.indices[0].label;
|
|
54
|
+
const pLabel = node.momentum.indices[0].label;
|
|
55
|
+
if (xiLabel !== pLabel) {
|
|
56
|
+
throw new Error(`ConservedChargeNode: index label mismatch — Killing '${xiLabel}' vs momentum '${pLabel}'`);
|
|
57
|
+
}
|
|
58
|
+
if (node.momentum.indices[0].variance !== 'lower') {
|
|
59
|
+
throw new Error(`ConservedChargeNode: momentum must have lower variance to contract with upper Killing field`);
|
|
60
|
+
}
|
|
61
|
+
// dim(Q) = dim(ξ) × dim(p)
|
|
62
|
+
const dim = multiply(node.killing.vector.dim, node.momentum.dim);
|
|
63
|
+
// Q = ξ^μ p_μ is a full contraction — no free indices remain (scalar).
|
|
64
|
+
return { dim, freeIndices: new Map() };
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=killing-validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"killing-validators.js","sourceRoot":"","sources":["../../src/dimensional/killing-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAwBxC;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAuB;IAEvB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,uDAAuD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,oDAAoD,GAAG,CAAC,QAAQ,GAAG,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4C,CAAC;IACxE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;AAC/C,CAAC;AAoCD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAyB;IAEzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,2DAA2D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,wDAAwD,OAAO,kBAAkB,MAAM,GAAG,CAC3F,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IACD,2BAA2B;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjE,uEAAuE;IACvE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AACzC,CAAC"}
|