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