universal-physics-tensor 0.5.1 → 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 +15 -28
- 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/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/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/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 +12 -5
- package/dist/dimensional/connection-validators.d.ts.map +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 +46 -30
- package/dist/dimensional/curvature.d.ts.map +1 -1
- 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 +37 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.d.ts +19 -0
- package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.js +29 -9
- 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 +49 -57
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +109 -4
- 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/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 +4 -2
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +24 -8
- 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 +219 -415
- package/dist/numerical/lowering.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/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 +17 -9
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +6 -3
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +30 -0
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +30 -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 @@
|
|
|
1
|
+
{"version":3,"file":"curvature-composite.js","sourceRoot":"","sources":["../../src/dimensional/curvature-composite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAsDH,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA6C;IAC/E,gBAAgB,EAAE;QAChB,gBAAgB,EAAE,sBAAsB;QACxC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,cAAc,EAAE;QACd,gBAAgB,EAAE,oBAAoB;QACtC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,iBAAiB,EAAE;QACjB,gBAAgB,EAAE,oBAAoB;QACtC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,kBAAkB,EAAE;QAClB,gBAAgB,EAAE,cAAc;QAChC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,aAAa,EAAE;QACb,gBAAgB,EAAE,sBAAsB;QACxC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,oBAAoB,EAAE;QACpB,gBAAgB,EAAE,QAAQ;QAC1B,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;CACF,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kretschmann scalar AST node + validator (v0.6.0 Phase 3, Task 3.5).
|
|
3
|
+
*
|
|
4
|
+
* The Kretschmann scalar (also spelled "Kretschner") is the quadratic
|
|
5
|
+
* curvature invariant:
|
|
6
|
+
*
|
|
7
|
+
* K = R_{ρσμν} R^{ρσμν}
|
|
8
|
+
*
|
|
9
|
+
* formed by full contraction of the Riemann tensor with itself (all four
|
|
10
|
+
* indices raised on the second factor via the inverse metric). K is a
|
|
11
|
+
* genuine spacetime scalar — coordinate-independent, diff-invariant — and
|
|
12
|
+
* the canonical diagnostic for curvature-singularity detection: K diverges
|
|
13
|
+
* at genuine singularities (Schwarzschild r→0) but is finite at coordinate
|
|
14
|
+
* singularities (Schwarzschild r=r_s).
|
|
15
|
+
*
|
|
16
|
+
* Closed-form for Schwarzschild: K(r) = 48 G² M² / (c⁴ r⁶).
|
|
17
|
+
*
|
|
18
|
+
* Dimensional analysis:
|
|
19
|
+
* - Riemann component: [L⁻²] (F8/I3 convention in connection-validators.ts)
|
|
20
|
+
* - K = R × R: [L⁻²] × [L⁻²] = [L⁻⁴]
|
|
21
|
+
*
|
|
22
|
+
* Mirrors the WeylTensorNode pattern in weyl-validators.ts — own validator
|
|
23
|
+
* function; wired via case arm in validator.ts + lowering stub in lowering.ts.
|
|
24
|
+
*
|
|
25
|
+
* @module dimensional/curvature-invariants
|
|
26
|
+
*/
|
|
27
|
+
import type { Dimension } from './types.js';
|
|
28
|
+
import type { RiemannTensorNode } from './connection-validators.js';
|
|
29
|
+
import type { MetricTensorNode } from './metric-validators.js';
|
|
30
|
+
import type { CurvatureCompositeNode } from './curvature-composite.js';
|
|
31
|
+
/**
|
|
32
|
+
* AST node for the Kretschmann scalar K = R_{ρσμν} R^{ρσμν}.
|
|
33
|
+
*
|
|
34
|
+
* `riemann`: the Riemann tensor being contracted with itself. The validator
|
|
35
|
+
* re-enters its own validator so structural checks (index variance,
|
|
36
|
+
* metric signature) fire for the embedded sub-node.
|
|
37
|
+
*
|
|
38
|
+
* `metric`: the metric tensor used to raise all four indices on the second
|
|
39
|
+
* copy of Riemann. Present for downstream numerical consumers
|
|
40
|
+
* (computeKretschmann in src/numerical/kretschmann.ts). Its free indices
|
|
41
|
+
* are NOT propagated by the validator (H1 — consumed internally).
|
|
42
|
+
*
|
|
43
|
+
* `componentDim`: [L⁻⁴] — Riemann [L⁻²] squared, hard-coded per F8/I3.
|
|
44
|
+
*
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
/**
|
|
48
|
+
* v0.6.0 Task 3.10d: KretschmannScalarNode expressed via CurvatureCompositeNode<K, S>.
|
|
49
|
+
* The runtime shape is identical — pure type-alias migration.
|
|
50
|
+
*/
|
|
51
|
+
export type KretschmannScalarNode = CurvatureCompositeNode<'kretschmann-scalar', {
|
|
52
|
+
/** Riemann tensor R^ρ_{σμν}. Both copies of R in the contraction originate
|
|
53
|
+
* from this node — the validator and lowering layer each duplicate as needed. */
|
|
54
|
+
readonly riemann: RiemannTensorNode;
|
|
55
|
+
/** Metric (both-lower preferred, though the numerical layer only needs gInverse).
|
|
56
|
+
* Present for downstream `computeKretschmann` consumers. */
|
|
57
|
+
readonly metric: MetricTensorNode;
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Result of validating a KretschmannScalarNode.
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
export interface KretschmannScalarValidationResult {
|
|
64
|
+
/** [L⁻⁴] — Kretschmann is Riemann-squared in dimension. */
|
|
65
|
+
readonly dim: Dimension;
|
|
66
|
+
/** Empty: K is a scalar (rank-0, all indices contracted). */
|
|
67
|
+
readonly freeIndices: Map<string, {
|
|
68
|
+
upper: number;
|
|
69
|
+
lower: number;
|
|
70
|
+
}>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Validate a `kretschmann-scalar` node.
|
|
74
|
+
*
|
|
75
|
+
* Re-enters `validateRiemannTensor` for the embedded `riemann` sub-node
|
|
76
|
+
* (so its index-variance, metric-signature, and label-disjointness checks
|
|
77
|
+
* all fire). Discards the Riemann's free-index map — K is a full contraction
|
|
78
|
+
* and every index disappears. Mirrors the `validateRicciTensor` pattern in
|
|
79
|
+
* curvature.ts for embedded-Riemann structural validation.
|
|
80
|
+
*
|
|
81
|
+
* Throws:
|
|
82
|
+
* - Everything `validateRiemannTensor` throws (PartialDerivativeIndexVarianceError,
|
|
83
|
+
* MetricSignatureError, IndexLabelCollisionError) propagated from the
|
|
84
|
+
* embedded Riemann check.
|
|
85
|
+
*
|
|
86
|
+
* Returns:
|
|
87
|
+
* - `{ dim: [L⁻⁴], freeIndices: empty Map }` — scalar, no free indices.
|
|
88
|
+
*/
|
|
89
|
+
export declare function validateKretschmannScalar(node: KretschmannScalarNode): KretschmannScalarValidationResult;
|
|
90
|
+
//# sourceMappingURL=curvature-invariants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curvature-invariants.d.ts","sourceRoot":"","sources":["../../src/dimensional/curvature-invariants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMvE;;;;;;;;;;;;;;;GAeG;AACH;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,oBAAoB,EAAE;IAC/E;sFACkF;IAClF,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC;iEAC6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,WAAW,iCAAiC;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAQD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,qBAAqB,GAC1B,iCAAiC,CAcnC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kretschmann scalar AST node + validator (v0.6.0 Phase 3, Task 3.5).
|
|
3
|
+
*
|
|
4
|
+
* The Kretschmann scalar (also spelled "Kretschner") is the quadratic
|
|
5
|
+
* curvature invariant:
|
|
6
|
+
*
|
|
7
|
+
* K = R_{ρσμν} R^{ρσμν}
|
|
8
|
+
*
|
|
9
|
+
* formed by full contraction of the Riemann tensor with itself (all four
|
|
10
|
+
* indices raised on the second factor via the inverse metric). K is a
|
|
11
|
+
* genuine spacetime scalar — coordinate-independent, diff-invariant — and
|
|
12
|
+
* the canonical diagnostic for curvature-singularity detection: K diverges
|
|
13
|
+
* at genuine singularities (Schwarzschild r→0) but is finite at coordinate
|
|
14
|
+
* singularities (Schwarzschild r=r_s).
|
|
15
|
+
*
|
|
16
|
+
* Closed-form for Schwarzschild: K(r) = 48 G² M² / (c⁴ r⁶).
|
|
17
|
+
*
|
|
18
|
+
* Dimensional analysis:
|
|
19
|
+
* - Riemann component: [L⁻²] (F8/I3 convention in connection-validators.ts)
|
|
20
|
+
* - K = R × R: [L⁻²] × [L⁻²] = [L⁻⁴]
|
|
21
|
+
*
|
|
22
|
+
* Mirrors the WeylTensorNode pattern in weyl-validators.ts — own validator
|
|
23
|
+
* function; wired via case arm in validator.ts + lowering stub in lowering.ts.
|
|
24
|
+
*
|
|
25
|
+
* @module dimensional/curvature-invariants
|
|
26
|
+
*/
|
|
27
|
+
import { validateRiemannTensor } from './connection-validators.js';
|
|
28
|
+
/**
|
|
29
|
+
* Dimension literal for [L⁻⁴].
|
|
30
|
+
* Kept module-private; callers receive it through the return value.
|
|
31
|
+
*/
|
|
32
|
+
const DIM_L_NEG4 = { L: -4, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 };
|
|
33
|
+
/**
|
|
34
|
+
* Validate a `kretschmann-scalar` node.
|
|
35
|
+
*
|
|
36
|
+
* Re-enters `validateRiemannTensor` for the embedded `riemann` sub-node
|
|
37
|
+
* (so its index-variance, metric-signature, and label-disjointness checks
|
|
38
|
+
* all fire). Discards the Riemann's free-index map — K is a full contraction
|
|
39
|
+
* and every index disappears. Mirrors the `validateRicciTensor` pattern in
|
|
40
|
+
* curvature.ts for embedded-Riemann structural validation.
|
|
41
|
+
*
|
|
42
|
+
* Throws:
|
|
43
|
+
* - Everything `validateRiemannTensor` throws (PartialDerivativeIndexVarianceError,
|
|
44
|
+
* MetricSignatureError, IndexLabelCollisionError) propagated from the
|
|
45
|
+
* embedded Riemann check.
|
|
46
|
+
*
|
|
47
|
+
* Returns:
|
|
48
|
+
* - `{ dim: [L⁻⁴], freeIndices: empty Map }` — scalar, no free indices.
|
|
49
|
+
*/
|
|
50
|
+
export function validateKretschmannScalar(node) {
|
|
51
|
+
// Re-validate the embedded Riemann. We pass node.riemann directly to
|
|
52
|
+
// validateRiemannTensor (not via a callback, since KretschmannScalarNode
|
|
53
|
+
// does not need to thread an infer() context for its sub-nodes — it only
|
|
54
|
+
// needs the structural checks to fire, and the Riemann validator is
|
|
55
|
+
// self-contained). Mirrors the validateRicciTensor invocation in
|
|
56
|
+
// curvature.ts:validateRicciTensor.
|
|
57
|
+
validateRiemannTensor(node.riemann);
|
|
58
|
+
// K is a scalar: no free indices.
|
|
59
|
+
return {
|
|
60
|
+
dim: DIM_L_NEG4,
|
|
61
|
+
freeIndices: new Map(),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=curvature-invariants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curvature-invariants.js","sourceRoot":"","sources":["../../src/dimensional/curvature-invariants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAgDnE;;;GAGG;AACH,MAAM,UAAU,GAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAEhF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAA2B;IAE3B,qEAAqE;IACrE,yEAAyE;IACzE,yEAAyE;IACzE,oEAAoE;IACpE,iEAAiE;IACjE,oCAAoC;IACpC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpC,kCAAkC;IAClC,OAAO;QACL,GAAG,EAAE,UAAU;QACf,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -20,8 +20,33 @@ import type { Dimension } from './types.js';
|
|
|
20
20
|
import type { ExprNode } from './validator.js';
|
|
21
21
|
import type { RiemannTensorNode } from './connection-validators.js';
|
|
22
22
|
import type { MetricTensorNode } from './metric-validators.js';
|
|
23
|
+
import type { CurvatureCompositeNode } from './curvature-composite.js';
|
|
23
24
|
import type { TensorEngine } from '../numerical/tensor-engine.js';
|
|
24
25
|
import type { NumericalInputs, NestedArray } from '../numerical/types.js';
|
|
26
|
+
/**
|
|
27
|
+
* Shared callback shape used by every pattern-B validator (`validate
|
|
28
|
+
* RicciTensor`, `validateEinsteinTensor`, `validateBianchiResidual`).
|
|
29
|
+
*
|
|
30
|
+
* The callback re-enters the Riemann validator for an embedded
|
|
31
|
+
* `RiemannTensorNode`, returning the validated `{dim, freeIndices}`
|
|
32
|
+
* pair without the surrounding validator-result envelope (the caller
|
|
33
|
+
* is responsible for merging or discarding the free-index map per
|
|
34
|
+
* the contraction it is performing).
|
|
35
|
+
*
|
|
36
|
+
* Co-located here with the three consumer functions (rather than in
|
|
37
|
+
* `validator-registry.ts`) to avoid a `curvature.ts ↔ validator-
|
|
38
|
+
* registry.ts` import cycle — the registry imports the validators
|
|
39
|
+
* from this module, so this module must own the callback type.
|
|
40
|
+
*
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
export type RiemannChildCallback = (child: RiemannTensorNode) => {
|
|
44
|
+
dim: Dimension;
|
|
45
|
+
freeIndices: Map<string, {
|
|
46
|
+
upper: number;
|
|
47
|
+
lower: number;
|
|
48
|
+
}>;
|
|
49
|
+
};
|
|
25
50
|
/**
|
|
26
51
|
* v0.5.0 Task 7: Ricci tensor AST node R_μν.
|
|
27
52
|
*
|
|
@@ -54,11 +79,14 @@ import type { NumericalInputs, NestedArray } from '../numerical/types.js';
|
|
|
54
79
|
*
|
|
55
80
|
* @public
|
|
56
81
|
*/
|
|
57
|
-
|
|
58
|
-
|
|
82
|
+
/**
|
|
83
|
+
* v0.6.0 Task 3.10b: RicciTensorNode expressed via CurvatureCompositeNode<K, S>.
|
|
84
|
+
* The runtime shape is identical — pure type-alias migration.
|
|
85
|
+
*/
|
|
86
|
+
export type RicciTensorNode = CurvatureCompositeNode<'ricci-tensor', {
|
|
59
87
|
/** The Riemann tensor whose first two slots are contracted. */
|
|
60
88
|
readonly riemann: RiemannTensorNode;
|
|
61
|
-
}
|
|
89
|
+
}>;
|
|
62
90
|
/**
|
|
63
91
|
* Result of validating a RicciTensorNode.
|
|
64
92
|
* @public
|
|
@@ -87,13 +115,7 @@ export interface RicciTensorValidationResult {
|
|
|
87
115
|
* `R_μν = R^λ_{μλν}`), and the surviving σ / ν slots become the new
|
|
88
116
|
* free indices of the Ricci tensor.
|
|
89
117
|
*/
|
|
90
|
-
export declare function validateRicciTensor(node: RicciTensorNode, validateRiemannChild:
|
|
91
|
-
dim: Dimension;
|
|
92
|
-
freeIndices: Map<string, {
|
|
93
|
-
upper: number;
|
|
94
|
-
lower: number;
|
|
95
|
-
}>;
|
|
96
|
-
}): RicciTensorValidationResult;
|
|
118
|
+
export declare function validateRicciTensor(node: RicciTensorNode, validateRiemannChild: RiemannChildCallback): RicciTensorValidationResult;
|
|
97
119
|
/**
|
|
98
120
|
* Build the Ricci tensor R_μν = R^λ_{μλν} as a composite ExprNode.
|
|
99
121
|
*
|
|
@@ -151,15 +173,18 @@ export declare function ricci(R: RiemannTensorNode): ExprNode;
|
|
|
151
173
|
*
|
|
152
174
|
* @public
|
|
153
175
|
*/
|
|
154
|
-
|
|
155
|
-
|
|
176
|
+
/**
|
|
177
|
+
* v0.6.0 Task 3.10b: EinsteinTensorNode expressed via CurvatureCompositeNode<K, S>.
|
|
178
|
+
* The runtime shape is identical — pure type-alias migration.
|
|
179
|
+
*/
|
|
180
|
+
export type EinsteinTensorNode = CurvatureCompositeNode<'einstein-tensor', {
|
|
156
181
|
/** The Riemann tensor whose contraction yields the inner Ricci R_μν. */
|
|
157
182
|
readonly riemann: RiemannTensorNode;
|
|
158
183
|
/** Lower metric g_μν — supplies the `½ R g_μν` subtraction tensor. */
|
|
159
184
|
readonly gLower: MetricTensorNode;
|
|
160
185
|
/** Upper metric g^μν — supplies the scalar trace `R = g^μν R_μν`. */
|
|
161
186
|
readonly gInverse: MetricTensorNode;
|
|
162
|
-
}
|
|
187
|
+
}>;
|
|
163
188
|
/**
|
|
164
189
|
* Result of validating an EinsteinTensorNode.
|
|
165
190
|
* @public
|
|
@@ -191,13 +216,7 @@ export interface EinsteinTensorValidationResult {
|
|
|
191
216
|
* surviving free-index collision; MetricSignatureError /
|
|
192
217
|
* PartialDerivativeIndexVarianceError from the inner Riemann).
|
|
193
218
|
*/
|
|
194
|
-
export declare function validateEinsteinTensor(node: EinsteinTensorNode, validateRiemannChild:
|
|
195
|
-
dim: Dimension;
|
|
196
|
-
freeIndices: Map<string, {
|
|
197
|
-
upper: number;
|
|
198
|
-
lower: number;
|
|
199
|
-
}>;
|
|
200
|
-
}): EinsteinTensorValidationResult;
|
|
219
|
+
export declare function validateEinsteinTensor(node: EinsteinTensorNode, validateRiemannChild: RiemannChildCallback): EinsteinTensorValidationResult;
|
|
201
220
|
/**
|
|
202
221
|
* Build the Einstein tensor G_μν = R_μν − ½ R g_μν as a composite ExprNode.
|
|
203
222
|
*
|
|
@@ -267,11 +286,14 @@ export declare function einstein(R: RiemannTensorNode, g: MetricTensorNode, gInv
|
|
|
267
286
|
*
|
|
268
287
|
* @public
|
|
269
288
|
*/
|
|
270
|
-
|
|
271
|
-
|
|
289
|
+
/**
|
|
290
|
+
* v0.6.0 Task 3.10c: BianchiResidualNode expressed via CurvatureCompositeNode<K, S>.
|
|
291
|
+
* The runtime shape is identical — pure type-alias migration.
|
|
292
|
+
*/
|
|
293
|
+
export type BianchiResidualNode = CurvatureCompositeNode<'bianchi-residual', {
|
|
272
294
|
/** The Riemann tensor whose cyclic-derivative identity is checked. */
|
|
273
295
|
readonly riemann: RiemannTensorNode;
|
|
274
|
-
}
|
|
296
|
+
}>;
|
|
275
297
|
/**
|
|
276
298
|
* Result of validating a BianchiResidualNode.
|
|
277
299
|
* @public
|
|
@@ -300,13 +322,7 @@ export interface BianchiResidualValidationResult {
|
|
|
300
322
|
* - IndexLabelCollisionError if the synthesised `lambda` / `sigma_out`
|
|
301
323
|
* labels collide with any wrapped-Riemann label.
|
|
302
324
|
*/
|
|
303
|
-
export declare function validateBianchiResidual(node: BianchiResidualNode, validateRiemannChild:
|
|
304
|
-
dim: Dimension;
|
|
305
|
-
freeIndices: Map<string, {
|
|
306
|
-
upper: number;
|
|
307
|
-
lower: number;
|
|
308
|
-
}>;
|
|
309
|
-
}): BianchiResidualValidationResult;
|
|
325
|
+
export declare function validateBianchiResidual(node: BianchiResidualNode, validateRiemannChild: RiemannChildCallback): BianchiResidualValidationResult;
|
|
310
326
|
/**
|
|
311
327
|
* Imported lazily inside `bianchiResidual()` to avoid pulling the numerical
|
|
312
328
|
* lowering layer into the dimensional module's import graph at module load.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curvature.d.ts","sourceRoot":"","sources":["../../src/dimensional/curvature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"curvature.d.ts","sourceRoot":"","sources":["../../src/dimensional/curvature.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curvature.js","sourceRoot":"","sources":["../../src/dimensional/curvature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"curvature.js","sourceRoot":"","sources":["../../src/dimensional/curvature.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Einstein field equation AST node (v0.6.0 Phase 2, Task 2.3).
|
|
3
|
+
*
|
|
4
|
+
* Represents the predicate
|
|
5
|
+
*
|
|
6
|
+
* G_μν + Λ g_μν = (8πG/c⁴) T_μν
|
|
7
|
+
*
|
|
8
|
+
* as a first-class structural node in the ExprNode union. The node is a
|
|
9
|
+
* predicate (an equation), not a value-producing expression — it validates
|
|
10
|
+
* the three structural requirements (Decision #3):
|
|
11
|
+
*
|
|
12
|
+
* 1. **Free-index agreement** — G_μν and T_μν must be rank-(0,2) lower-lower
|
|
13
|
+
* with the SAME index labels.
|
|
14
|
+
* 2. **Per-component dim equality** — each term reduces to [L⁻²]:
|
|
15
|
+
* G_μν ~ [L⁻²]
|
|
16
|
+
* (8πG/c⁴) T_μν ~ [T²·M⁻¹·L⁻¹] · [M·L⁻¹·T⁻²] = [L⁻²]
|
|
17
|
+
* Λ g_μν ~ [L⁻²] · dimensionless = [L⁻²]
|
|
18
|
+
* 3. **Symmetry agreement** — both sides symmetric in (μ,ν). T_μν has
|
|
19
|
+
* `symmetry: 'symmetric'`; G_μν is symmetric by construction.
|
|
20
|
+
*
|
|
21
|
+
* The coupling constant `8πG/c⁴` is represented symbolically by the tag
|
|
22
|
+
* `coupling: 'einstein'` (Decision #3). No inline numeric value — mirrors
|
|
23
|
+
* the constants-discipline requirement.
|
|
24
|
+
*
|
|
25
|
+
* @module dimensional/einstein-equation
|
|
26
|
+
*/
|
|
27
|
+
import type { Dimension } from './types.js';
|
|
28
|
+
import type { MetricTensorNode } from './metric-validators.js';
|
|
29
|
+
import type { EinsteinTensorNode } from './curvature.js';
|
|
30
|
+
import type { StressEnergyTensorNode, CosmologicalConstantNode } from './stress-energy-validators.js';
|
|
31
|
+
/**
|
|
32
|
+
* AST node for the Einstein field equation G_μν + Λ g_μν = (8πG/c⁴) T_μν.
|
|
33
|
+
*
|
|
34
|
+
* Fields:
|
|
35
|
+
* - `lhs` — G_μν (EinsteinTensorNode, shipped in v0.5.0)
|
|
36
|
+
* - `cosmological` — CosmologicalConstantNode for the Λ term; null when the
|
|
37
|
+
* Λ-free form `G_μν = (8πG/c⁴) T_μν` is intended
|
|
38
|
+
* (Decision #11: null = Λ-omitted, not Λ=0).
|
|
39
|
+
* - `metric` — g_μν for the `Λ g_μν` cosmological term.
|
|
40
|
+
* - `rhs` — T_μν (StressEnergyTensorNode).
|
|
41
|
+
* - `coupling` — tag `'einstein'` representing 8πG/c⁴ (symbolic only).
|
|
42
|
+
*
|
|
43
|
+
* @public
|
|
44
|
+
*/
|
|
45
|
+
export interface EinsteinFieldEquationNode {
|
|
46
|
+
readonly kind: 'einstein-equation';
|
|
47
|
+
readonly lhs: EinsteinTensorNode;
|
|
48
|
+
readonly cosmological: CosmologicalConstantNode | null;
|
|
49
|
+
readonly metric: MetricTensorNode;
|
|
50
|
+
readonly rhs: StressEnergyTensorNode;
|
|
51
|
+
readonly coupling: 'einstein';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Result of validating an EinsteinFieldEquationNode.
|
|
55
|
+
*
|
|
56
|
+
* The equation as a whole is a rank-2 lower-lower tensor identity,
|
|
57
|
+
* so `freeIndices` carries the same {μ: lower, ν: lower} pair as G_μν and T_μν.
|
|
58
|
+
* `dim` is [L⁻²] — the common per-component dimension of every term.
|
|
59
|
+
*
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
export interface EinsteinFieldEquationValidationResult {
|
|
63
|
+
readonly dim: Dimension;
|
|
64
|
+
readonly freeIndices: Map<string, {
|
|
65
|
+
upper: number;
|
|
66
|
+
lower: number;
|
|
67
|
+
}>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Validate an `einstein-equation` node.
|
|
71
|
+
*
|
|
72
|
+
* Checks three predicates (Decision #3):
|
|
73
|
+
*
|
|
74
|
+
* 1. **Free-index agreement** — G_μν (lhs) and T_μν (rhs) must share the
|
|
75
|
+
* same two lower index labels (extracted from EinsteinTensorNode's embedded
|
|
76
|
+
* Riemann, following the Carroll Eq. 3.91 contraction convention).
|
|
77
|
+
* Throws an Error with "index label" in the message on mismatch.
|
|
78
|
+
*
|
|
79
|
+
* 2. **Per-component dim equality** — T_μν.componentDim must equal
|
|
80
|
+
* [M·L⁻¹·T⁻²] so that (8πG/c⁴)·T_μν ~ [L⁻²]. Throws an Error with
|
|
81
|
+
* "dimension" in the message on mismatch.
|
|
82
|
+
*
|
|
83
|
+
* 3. **Symmetry agreement** — T_μν must have `symmetry: 'symmetric'`. Throws
|
|
84
|
+
* an Error with "symmetry" in the message if not.
|
|
85
|
+
*
|
|
86
|
+
* Note: `lhs.riemann` structural validation is intentionally deferred to the
|
|
87
|
+
* `einstein-tensor` case arm in `validator.ts::infer()` — this function is
|
|
88
|
+
* a pure predicate-level check, not a full recursive walk.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* import { validateEinsteinFieldEquation } from 'universal-physics-tensor';
|
|
93
|
+
* import type {
|
|
94
|
+
* EinsteinFieldEquationNode,
|
|
95
|
+
* EinsteinTensorNode,
|
|
96
|
+
* StressEnergyTensorNode,
|
|
97
|
+
* } from 'universal-physics-tensor';
|
|
98
|
+
*
|
|
99
|
+
* // Minimal vacuum EFE node (G_μν = κ T_μν with T = perfect-fluid)
|
|
100
|
+
* const efeNode: EinsteinFieldEquationNode = {
|
|
101
|
+
* kind: 'einstein-equation',
|
|
102
|
+
* lhs: { ... } as EinsteinTensorNode, // G_μν from einstein()
|
|
103
|
+
* cosmological: null, // Λ = 0
|
|
104
|
+
* metric: { kind: 'metric-tensor', ... },
|
|
105
|
+
* rhs: {
|
|
106
|
+
* kind: 'stress-energy-tensor',
|
|
107
|
+
* indices: [
|
|
108
|
+
* { label: 'mu', variance: 'lower' },
|
|
109
|
+
* { label: 'nu', variance: 'lower' },
|
|
110
|
+
* ],
|
|
111
|
+
* fluidType: 'perfect-fluid',
|
|
112
|
+
* symmetry: 'symmetric',
|
|
113
|
+
* componentDim: { L: -1, M: 1, T: -2, I: 0, Theta: 0, N: 0, J: 0 },
|
|
114
|
+
* },
|
|
115
|
+
* coupling: 'einstein',
|
|
116
|
+
* };
|
|
117
|
+
*
|
|
118
|
+
* const result = validateEinsteinFieldEquation(efeNode);
|
|
119
|
+
* // result.dim = { L: -2, M: 0, T: 0, ... } ([L⁻²])
|
|
120
|
+
* // result.freeIndices.get('mu') = { upper: 0, lower: 1 }
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* @public
|
|
124
|
+
*/
|
|
125
|
+
export declare function validateEinsteinFieldEquation(node: EinsteinFieldEquationNode): EinsteinFieldEquationValidationResult;
|
|
126
|
+
//# sourceMappingURL=einstein-equation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"einstein-equation.d.ts","sourceRoot":"","sources":["../../src/dimensional/einstein-equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAWtG;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qCAAqC;IACpD,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;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,yBAAyB,GAC9B,qCAAqC,CA2CvC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Einstein field equation AST node (v0.6.0 Phase 2, Task 2.3).
|
|
3
|
+
*
|
|
4
|
+
* Represents the predicate
|
|
5
|
+
*
|
|
6
|
+
* G_μν + Λ g_μν = (8πG/c⁴) T_μν
|
|
7
|
+
*
|
|
8
|
+
* as a first-class structural node in the ExprNode union. The node is a
|
|
9
|
+
* predicate (an equation), not a value-producing expression — it validates
|
|
10
|
+
* the three structural requirements (Decision #3):
|
|
11
|
+
*
|
|
12
|
+
* 1. **Free-index agreement** — G_μν and T_μν must be rank-(0,2) lower-lower
|
|
13
|
+
* with the SAME index labels.
|
|
14
|
+
* 2. **Per-component dim equality** — each term reduces to [L⁻²]:
|
|
15
|
+
* G_μν ~ [L⁻²]
|
|
16
|
+
* (8πG/c⁴) T_μν ~ [T²·M⁻¹·L⁻¹] · [M·L⁻¹·T⁻²] = [L⁻²]
|
|
17
|
+
* Λ g_μν ~ [L⁻²] · dimensionless = [L⁻²]
|
|
18
|
+
* 3. **Symmetry agreement** — both sides symmetric in (μ,ν). T_μν has
|
|
19
|
+
* `symmetry: 'symmetric'`; G_μν is symmetric by construction.
|
|
20
|
+
*
|
|
21
|
+
* The coupling constant `8πG/c⁴` is represented symbolically by the tag
|
|
22
|
+
* `coupling: 'einstein'` (Decision #3). No inline numeric value — mirrors
|
|
23
|
+
* the constants-discipline requirement.
|
|
24
|
+
*
|
|
25
|
+
* @module dimensional/einstein-equation
|
|
26
|
+
*/
|
|
27
|
+
import { validateFreeIndexLabelMatch, validateComponentDimension, validateTensorSymmetry, } from './field-equation-helpers.js';
|
|
28
|
+
// Expected per-component dimension of every term: [L⁻²].
|
|
29
|
+
const DIM_L_INV2 = { L: -2, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 };
|
|
30
|
+
// Expected dimension of T_μν components: [M·L⁻¹·T⁻²] (energy density / Pa).
|
|
31
|
+
// (8πG/c⁴) ~ [T²·M⁻¹·L⁻¹]; product = [M·L⁻¹·T⁻²] × [T²·M⁻¹·L⁻¹] = [L⁻²] ✓
|
|
32
|
+
const DIM_T_MUV = { L: -1, M: 1, T: -2, I: 0, Theta: 0, N: 0, J: 0 };
|
|
33
|
+
/**
|
|
34
|
+
* Extract the free-index labels from an EinsteinTensorNode.
|
|
35
|
+
*
|
|
36
|
+
* The Einstein tensor's free indices come from its embedded Riemann's
|
|
37
|
+
* lowerIndices[0] (σ slot) and lowerIndices[2] (ν slot) — the surviving
|
|
38
|
+
* indices after the Carroll Eq. 3.91 contraction. These become G_μν's
|
|
39
|
+
* own μ_out and ν_out labels.
|
|
40
|
+
*/
|
|
41
|
+
function einsteinFreeIndexLabels(lhs) {
|
|
42
|
+
const mu = lhs.riemann.lowerIndices[0].label;
|
|
43
|
+
const nu = lhs.riemann.lowerIndices[2].label;
|
|
44
|
+
return [mu, nu];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Validate an `einstein-equation` node.
|
|
48
|
+
*
|
|
49
|
+
* Checks three predicates (Decision #3):
|
|
50
|
+
*
|
|
51
|
+
* 1. **Free-index agreement** — G_μν (lhs) and T_μν (rhs) must share the
|
|
52
|
+
* same two lower index labels (extracted from EinsteinTensorNode's embedded
|
|
53
|
+
* Riemann, following the Carroll Eq. 3.91 contraction convention).
|
|
54
|
+
* Throws an Error with "index label" in the message on mismatch.
|
|
55
|
+
*
|
|
56
|
+
* 2. **Per-component dim equality** — T_μν.componentDim must equal
|
|
57
|
+
* [M·L⁻¹·T⁻²] so that (8πG/c⁴)·T_μν ~ [L⁻²]. Throws an Error with
|
|
58
|
+
* "dimension" in the message on mismatch.
|
|
59
|
+
*
|
|
60
|
+
* 3. **Symmetry agreement** — T_μν must have `symmetry: 'symmetric'`. Throws
|
|
61
|
+
* an Error with "symmetry" in the message if not.
|
|
62
|
+
*
|
|
63
|
+
* Note: `lhs.riemann` structural validation is intentionally deferred to the
|
|
64
|
+
* `einstein-tensor` case arm in `validator.ts::infer()` — this function is
|
|
65
|
+
* a pure predicate-level check, not a full recursive walk.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* import { validateEinsteinFieldEquation } from 'universal-physics-tensor';
|
|
70
|
+
* import type {
|
|
71
|
+
* EinsteinFieldEquationNode,
|
|
72
|
+
* EinsteinTensorNode,
|
|
73
|
+
* StressEnergyTensorNode,
|
|
74
|
+
* } from 'universal-physics-tensor';
|
|
75
|
+
*
|
|
76
|
+
* // Minimal vacuum EFE node (G_μν = κ T_μν with T = perfect-fluid)
|
|
77
|
+
* const efeNode: EinsteinFieldEquationNode = {
|
|
78
|
+
* kind: 'einstein-equation',
|
|
79
|
+
* lhs: { ... } as EinsteinTensorNode, // G_μν from einstein()
|
|
80
|
+
* cosmological: null, // Λ = 0
|
|
81
|
+
* metric: { kind: 'metric-tensor', ... },
|
|
82
|
+
* rhs: {
|
|
83
|
+
* kind: 'stress-energy-tensor',
|
|
84
|
+
* indices: [
|
|
85
|
+
* { label: 'mu', variance: 'lower' },
|
|
86
|
+
* { label: 'nu', variance: 'lower' },
|
|
87
|
+
* ],
|
|
88
|
+
* fluidType: 'perfect-fluid',
|
|
89
|
+
* symmetry: 'symmetric',
|
|
90
|
+
* componentDim: { L: -1, M: 1, T: -2, I: 0, Theta: 0, N: 0, J: 0 },
|
|
91
|
+
* },
|
|
92
|
+
* coupling: 'einstein',
|
|
93
|
+
* };
|
|
94
|
+
*
|
|
95
|
+
* const result = validateEinsteinFieldEquation(efeNode);
|
|
96
|
+
* // result.dim = { L: -2, M: 0, T: 0, ... } ([L⁻²])
|
|
97
|
+
* // result.freeIndices.get('mu') = { upper: 0, lower: 1 }
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* @public
|
|
101
|
+
*/
|
|
102
|
+
export function validateEinsteinFieldEquation(node) {
|
|
103
|
+
// v0.7 follow-up Phase 0 (`docs/architecture/v0.7-tensor-equation-node-
|
|
104
|
+
// design-note.md`): the three predicates below are now thin
|
|
105
|
+
// delegations to `field-equation-helpers.ts`. Behavior preserved —
|
|
106
|
+
// error messages contain the same "index label" / "dimension" /
|
|
107
|
+
// "symmetry" keywords any test pattern-matches against.
|
|
108
|
+
const [lhsMu, lhsNu] = einsteinFreeIndexLabels(node.lhs);
|
|
109
|
+
// ── Predicate 1: free-index label agreement ───────────────────────────────
|
|
110
|
+
validateFreeIndexLabelMatch('EinsteinFieldEquationNode', 'G_μν', [lhsMu, lhsNu], 'T_μν', [node.rhs.indices[0].label, node.rhs.indices[1].label]);
|
|
111
|
+
// ── Predicate 2: per-component dim equality ────────────────────────────────
|
|
112
|
+
validateComponentDimension('EinsteinFieldEquationNode', 'T_μν componentDim', node.rhs.componentDim, DIM_T_MUV, `(should be [M·L⁻¹·T⁻²] / energy density so that (8πG/c⁴)·T_μν ~ [L⁻²]; ` +
|
|
113
|
+
`per-component dim of every EFE term must reduce to [L⁻²]).`);
|
|
114
|
+
// ── Predicate 3: symmetry agreement ───────────────────────────────────────
|
|
115
|
+
validateTensorSymmetry('EinsteinFieldEquationNode', 'T_μν', node.rhs.symmetry, 'symmetric', `Both sides of the EFE are symmetric in (μ,ν).`);
|
|
116
|
+
// All predicates passed — return the equation's rank-2 lower-lower identity.
|
|
117
|
+
const freeIndices = new Map();
|
|
118
|
+
freeIndices.set(lhsMu, { upper: 0, lower: 1 });
|
|
119
|
+
freeIndices.set(lhsNu, { upper: 0, lower: 1 });
|
|
120
|
+
return { dim: DIM_L_INV2, freeIndices };
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=einstein-equation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"einstein-equation.js","sourceRoot":"","sources":["../../src/dimensional/einstein-equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAOH,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AA2CrC,yDAAyD;AACzD,MAAM,UAAU,GAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAEhF,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,SAAS,GAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAEhF;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,GAAuB;IACtD,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAA+B;IAE/B,wEAAwE;IACxE,4DAA4D;IAC5D,mEAAmE;IACnE,gEAAgE;IAChE,wDAAwD;IAExD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzD,6EAA6E;IAC7E,2BAA2B,CACzB,2BAA2B,EAC3B,MAAM,EACN,CAAC,KAAK,EAAE,KAAK,CAAC,EACd,MAAM,EACN,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CACvD,CAAC;IAEF,8EAA8E;IAC9E,0BAA0B,CACxB,2BAA2B,EAC3B,mBAAmB,EACnB,IAAI,CAAC,GAAG,CAAC,YAAY,EACrB,SAAS,EACT,yEAAyE;QACvE,4DAA4D,CAC/D,CAAC;IAEF,6EAA6E;IAC7E,sBAAsB,CACpB,2BAA2B,EAC3B,MAAM,EACN,IAAI,CAAC,GAAG,CAAC,QAAQ,EACjB,WAAW,EACX,+CAA+C,CAChD,CAAC;IAEF,6EAA6E;IAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4C,CAAC;IACxE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/C,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAE/C,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC"}
|