universal-physics-tensor 0.45.1 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +142 -1
- 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,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 1, S1.3 — evidence tags, DERIVED AT READ TIME.
|
|
3
|
+
*
|
|
4
|
+
* Design note: `docs/planning/Atlas-Phase-1-Design.md` §3 and §4.
|
|
5
|
+
*
|
|
6
|
+
* **The contract of this module: it has no write path.** No record stores an
|
|
7
|
+
* evidence set; every tag is computed from the artifacts a record actually
|
|
8
|
+
* carries, each time it is asked for. A tag is emitted ONLY when the artifact
|
|
9
|
+
* it names is present and passing. There is no default-true tag, no tag
|
|
10
|
+
* derived from another tag, no tag derived from `reviewStatus`, and no tag
|
|
11
|
+
* derived from prose. A record carrying no passing witness derives exactly
|
|
12
|
+
* `{'proposed'}`.
|
|
13
|
+
*
|
|
14
|
+
* ## The empty-set trap (design note §3, Adam A1 RED — confirmed by execution)
|
|
15
|
+
*
|
|
16
|
+
* `convention-checked` is the ONLY rule in the table whose quantifier is
|
|
17
|
+
* universal (`every`). Written as "`conventions` is present AND every declared
|
|
18
|
+
* field is consumed by a witness", it hands the tag to a record with ZERO
|
|
19
|
+
* witnesses, because `conventions = {}` declares nothing and `[].every(…)` is
|
|
20
|
+
* vacuously true. {@link deriveEvidence} therefore requires a NON-EMPTY
|
|
21
|
+
* declaration before the universal runs, and
|
|
22
|
+
* `tests/atlas/derive-evidence.test.ts` pins the empty-object case.
|
|
23
|
+
*
|
|
24
|
+
* **The general rule, for anything added here later:** a universal quantifier
|
|
25
|
+
* in a tag derivation must be paired with a non-emptiness check, or the tag is
|
|
26
|
+
* free. The other rules are existentials (`some`), which are false on the
|
|
27
|
+
* empty set and therefore safe.
|
|
28
|
+
*
|
|
29
|
+
* ## What "passing" means, and why the caller supplies it
|
|
30
|
+
*
|
|
31
|
+
* `Witness` records an id and the test file that runs it; nothing on the
|
|
32
|
+
* record says whether that test passed. Proving it is a filesystem act (see
|
|
33
|
+
* `tests/atlas/evidence-rule.test.ts`, which matches witness ids against test
|
|
34
|
+
* titles), and this module is pure. So the set of passing witness ids is an
|
|
35
|
+
* ARGUMENT, and it is REQUIRED — {@link NO_PASSING_WITNESSES} must be passed
|
|
36
|
+
* explicitly when nothing is verified.
|
|
37
|
+
*
|
|
38
|
+
* It used to DEFAULT to empty, which sounds conservative and was in fact a
|
|
39
|
+
* defect (Eve E1 RED, confirmed by execution). Defaulting the other way, to
|
|
40
|
+
* "all", would have been the free-tag defect above in a second location — but
|
|
41
|
+
* defaulting to empty created the mirror-image failure: a forgotten argument
|
|
42
|
+
* produced an answer identical to a real negative. A catalog-wide check written
|
|
43
|
+
* that way could only ever report "no row gains evidence", whatever the rows
|
|
44
|
+
* held, so it could not fail. Requiring the argument makes a vacuous result a
|
|
45
|
+
* STATED choice, and `tests/atlas/coverage.test.ts` now carries a positive
|
|
46
|
+
* control so that a negative result carries information.
|
|
47
|
+
*
|
|
48
|
+
* @module atlas/derive-evidence
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* A row's counterexamples INCLUDING the one its rejection constitutes.
|
|
53
|
+
*
|
|
54
|
+
* ROADMAP §7 Phase 1 asks for "a `RejectedBridgeAdjudication` ⇒ `contradicted`
|
|
55
|
+
* with the counterexample LINKED". The linking half is what matters and was
|
|
56
|
+
* missing: BE-35 had a counterexample written by hand and earned `contradicted`
|
|
57
|
+
* honestly, while BE-28, BE-29, BE-32 and BE-40 had none — and an earlier rule
|
|
58
|
+
* papered over that by FORCING `contradicted` onto every rejected row, which
|
|
59
|
+
* manufactured a refutation from nothing (Eve E1).
|
|
60
|
+
*
|
|
61
|
+
* This is the linking done properly. The rejection's own `reason` IS the
|
|
62
|
+
* counterexample: a row rejected for being single-regime is refuted AS A BRIDGE
|
|
63
|
+
* by exactly that argument. Projecting it means `contradicted` is then EARNED
|
|
64
|
+
* through the ordinary derivation rather than asserted by a special case.
|
|
65
|
+
*
|
|
66
|
+
* **It is a projection, not a copy.** The reason string is never duplicated into
|
|
67
|
+
* a catalog row; `bridges/rejected.ts` remains its single source, which is what
|
|
68
|
+
* the ROADMAP means by "cross-linked ... rather than duplicating it". The caller
|
|
69
|
+
* supplies the rejection, so this module still owns no view of WHICH ids are
|
|
70
|
+
* rejected.
|
|
71
|
+
*
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
74
|
+
export function counterexamplesWithRejection(record, rejection) {
|
|
75
|
+
const own = record.counterexamples ?? [];
|
|
76
|
+
if (rejection === undefined)
|
|
77
|
+
return own;
|
|
78
|
+
// Do not double-count. A row may ALREADY cite the rejection by hand — BE-35
|
|
79
|
+
// does, with `witness: 'src/bridges/rejected.ts - REJECTED_BRIDGE_ADJUDICATIONS,
|
|
80
|
+
// beId 35'`. My first predicate matched only the machine key `rejection:<id>`
|
|
81
|
+
// and so missed it, appending the SAME argument a second time in different
|
|
82
|
+
// words, which is exactly the duplication the ROADMAP says to avoid. The
|
|
83
|
+
// predicate therefore accepts either form: the machine key, or any witness
|
|
84
|
+
// that names the rejection registry together with this beId.
|
|
85
|
+
const key = `rejection:${rejection.beId}`;
|
|
86
|
+
const alreadyLinked = own.some((c) => {
|
|
87
|
+
const w = c.witness ?? '';
|
|
88
|
+
if (w === key)
|
|
89
|
+
return true;
|
|
90
|
+
return w.includes('REJECTED_BRIDGE_ADJUDICATIONS') && w.includes(String(rejection.beId));
|
|
91
|
+
});
|
|
92
|
+
if (alreadyLinked)
|
|
93
|
+
return own;
|
|
94
|
+
return [
|
|
95
|
+
...own,
|
|
96
|
+
{ description: rejection.reason, witness: `rejection:${rejection.beId}` },
|
|
97
|
+
];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The empty passing set, for a caller that genuinely has nothing marked passing.
|
|
101
|
+
*
|
|
102
|
+
* ⚠ This is EXPORTED and must be passed EXPLICITLY. It used to be a default
|
|
103
|
+
* parameter value, and that was a defect found by post-implementation review
|
|
104
|
+
* (Eve, E1) and confirmed by execution: a record carrying three passing
|
|
105
|
+
* witnesses and a consumed convention derived `{'proposed'}` under the default —
|
|
106
|
+
* byte-identical to an empty record. A caller who simply forgot the argument got
|
|
107
|
+
* an answer indistinguishable from a real negative.
|
|
108
|
+
*
|
|
109
|
+
* That made a catalog-wide check VACUOUS rather than reassuring. "No row gains
|
|
110
|
+
* evidence" was the only outcome the call could produce, whatever the rows
|
|
111
|
+
* contained, so the check could not fail and proved nothing. Requiring the
|
|
112
|
+
* argument forces the caller to STATE which witnesses were verified, which is
|
|
113
|
+
* exactly the decision that must never be implicit.
|
|
114
|
+
*/
|
|
115
|
+
export const NO_PASSING_WITNESSES = new Set();
|
|
116
|
+
/** The fields `Conventions` may declare. Kept in one place so the check is total. */
|
|
117
|
+
const CONVENTION_FIELDS = [
|
|
118
|
+
'heatWorkSign',
|
|
119
|
+
'metricSignature',
|
|
120
|
+
'fourierNormalization',
|
|
121
|
+
'unitSystem',
|
|
122
|
+
'capacitorChargeSign',
|
|
123
|
+
];
|
|
124
|
+
/** The convention fields a record actually declares (a `undefined` value declares nothing). */
|
|
125
|
+
function declaredConventionFields(conventions) {
|
|
126
|
+
if (conventions === undefined)
|
|
127
|
+
return [];
|
|
128
|
+
return CONVENTION_FIELDS.filter((field) => conventions[field] !== undefined);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Derive the evidence set of one record.
|
|
132
|
+
*
|
|
133
|
+
* @param record - the artifacts the record carries.
|
|
134
|
+
* @param passingWitnessIds - ids of witnesses VERIFIED to pass. REQUIRED: pass
|
|
135
|
+
* {@link NO_PASSING_WITNESSES} explicitly when nothing is verified, so that a
|
|
136
|
+
* vacuous result is a stated choice rather than a forgotten argument.
|
|
137
|
+
* @returns a fresh set; never cached, never stored.
|
|
138
|
+
* @internal
|
|
139
|
+
*/
|
|
140
|
+
export function deriveEvidence(record, passingWitnessIds) {
|
|
141
|
+
const tags = new Set();
|
|
142
|
+
const passing = (record.witnesses ?? []).filter((w) => passingWitnessIds.has(w.id));
|
|
143
|
+
// Existentials over the passing witnesses — false on the empty set.
|
|
144
|
+
// `symbolically-checked` has exactly ONE derivation: a passing symbolic
|
|
145
|
+
// witness. Which symbolic witnesses pass is DEFINED by the committed results
|
|
146
|
+
// artifact (`data/atlas/witness-results.json`, Phase 4 §3) — the caller feeds
|
|
147
|
+
// it in through `passingWitnessIds` via `artifactPassingWitnessIds`.
|
|
148
|
+
if (passing.some((w) => w.kind === 'dimensional'))
|
|
149
|
+
tags.add('dimension-checked');
|
|
150
|
+
if (passing.some((w) => w.kind === 'symbolic'))
|
|
151
|
+
tags.add('symbolically-checked');
|
|
152
|
+
// `formally-proved` iff a formal reference exists AND someone checked that
|
|
153
|
+
// its statement says what the record says. `'unreviewed'` records a reference
|
|
154
|
+
// without earning the tag — a proof of the wrong statement proves nothing.
|
|
155
|
+
if (record.formalRef !== undefined && record.formalRef.fidelity !== 'unreviewed') {
|
|
156
|
+
tags.add('formally-proved');
|
|
157
|
+
}
|
|
158
|
+
if (passing.some((w) => w.kind === 'numeric'))
|
|
159
|
+
tags.add('numerically-supported');
|
|
160
|
+
// The ONE universal in the table — guarded by non-emptiness. See §3 above.
|
|
161
|
+
const declared = declaredConventionFields(record.conventions);
|
|
162
|
+
if (declared.length > 0 &&
|
|
163
|
+
declared.every((field) => passing.some((w) => (w.consumes ?? []).includes(field)))) {
|
|
164
|
+
tags.add('convention-checked');
|
|
165
|
+
}
|
|
166
|
+
// Existential: a counterexample with no resolution.
|
|
167
|
+
if ((record.counterexamples ?? []).some((c) => c.resolvedBy === undefined || c.resolvedBy === '')) {
|
|
168
|
+
tags.add('contradicted');
|
|
169
|
+
}
|
|
170
|
+
if (tags.size === 0)
|
|
171
|
+
tags.add('proposed');
|
|
172
|
+
return tags;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Derive the evidence set of a catalog row, under the adjudication precedence
|
|
176
|
+
* of design note §4. The verdict is supplied by the caller — it comes from
|
|
177
|
+
* `adjudicateBridgeEntry`, which owns the rejected-id registry
|
|
178
|
+
* (`REJECTED_BRIDGE_IDS`). Reading that registry here would make this file a
|
|
179
|
+
* second source of truth about which ids are rejected.
|
|
180
|
+
*
|
|
181
|
+
* | Verdict | Derives |
|
|
182
|
+
* |---|---|
|
|
183
|
+
* | `'not-a-bridge'` | {@link deriveEvidence} runs normally — see below |
|
|
184
|
+
* | `'unadjudicated'` | `{'proposed'}` only — never a refutation, never support |
|
|
185
|
+
* | `'bridge'` | {@link deriveEvidence} runs normally |
|
|
186
|
+
*
|
|
187
|
+
* ## ⚠ `'not-a-bridge'` no longer forces `'contradicted'` (Eve E1, 2026-09-21)
|
|
188
|
+
*
|
|
189
|
+
* It used to, "regardless of witnesses", and that rule — written by me in design
|
|
190
|
+
* note §4 — **violated §3 of the same document.** `contradicted` means THE CLAIM
|
|
191
|
+
* IS REFUTED. `not-a-bridge` means THE ROW IS NOT A REGIME-CROSSING BRIDGE.
|
|
192
|
+
* Those are different assertions about different things, and conflating them made
|
|
193
|
+
* the library report BE-35 as `status: 'established'` and `evidence:
|
|
194
|
+
* {'contradicted'}` in the same breath — from which a reader cannot tell whether
|
|
195
|
+
* the equation is a true in-regime identity the bridge graph ignores, or a
|
|
196
|
+
* refuted statement.
|
|
197
|
+
*
|
|
198
|
+
* Measured when the rule was removed: of the five rejected rows, only **BE-35**
|
|
199
|
+
* carries an actual counterexample, and it derives `{'contradicted'}` NATURALLY
|
|
200
|
+
* through the normal path. **BE-28, BE-29, BE-32 and BE-40 carry none** — the old
|
|
201
|
+
* rule was manufacturing a refutation for four rows with no refuting artifact
|
|
202
|
+
* whatsoever. That is exactly what §3 forbids: a tag is emitted only when the
|
|
203
|
+
* artifact it names is present and passing.
|
|
204
|
+
*
|
|
205
|
+
* Membership already has a single owner — `adjudicateBridgeEntry` — and it does
|
|
206
|
+
* not need restating in the evidence vocabulary. Removing the case leaves each
|
|
207
|
+
* fact with exactly one source, which is what §4 was trying to achieve and this
|
|
208
|
+
* rule was quietly undermining.
|
|
209
|
+
*
|
|
210
|
+
* @internal
|
|
211
|
+
*/
|
|
212
|
+
export function deriveEvidenceForVerdict(verdict, record, passingWitnessIds) {
|
|
213
|
+
switch (verdict) {
|
|
214
|
+
// 'not-a-bridge' falls through to the normal derivation on purpose: a row
|
|
215
|
+
// is refuted by a COUNTEREXAMPLE, not by failing a membership test. See the
|
|
216
|
+
// block comment above for the measurement that forced this change.
|
|
217
|
+
case 'not-a-bridge':
|
|
218
|
+
return deriveEvidence(record, passingWitnessIds);
|
|
219
|
+
case 'unadjudicated':
|
|
220
|
+
return new Set(['proposed']);
|
|
221
|
+
case 'bridge':
|
|
222
|
+
return deriveEvidence(record, passingWitnessIds);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=derive-evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derive-evidence.js","sourceRoot":"","sources":["../../src/atlas/derive-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 4 — the five diffusion-family bridges added to close Sprint 4's
|
|
3
|
+
* "≥ 20 bridges" exit criterion.
|
|
4
|
+
*
|
|
5
|
+
* Design note: `docs/planning/Atlas-Phase-4-Design.md` §4 (Sprint 4 closure).
|
|
6
|
+
*
|
|
7
|
+
* | Bridge | Relation | Witnesses |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | Langevin → Fick | `coarse-graining` | WD4 (convergence), WD4b (ballistic regime) |
|
|
10
|
+
* | Langevin + Stokes drag → Fick | `derivation`, **hyperedge** | WD5 (canonical + water), WD5s (CAS) |
|
|
11
|
+
* | telegraph → Fick | `approximation` (singular, τ → 0) | WD6 (convergence), WD6b (oscillatory modes) |
|
|
12
|
+
* | telegraph → 1-D wave | `approximation` (τDq² → ∞, t ≪ τ) | WD7 (convergence) |
|
|
13
|
+
* | heat → Laplace | `restriction` (steady state) | WD8 (convergence in time) |
|
|
14
|
+
*
|
|
15
|
+
* Every regime inequality keys a `PiGroup.formula` derived from the dimension
|
|
16
|
+
* matrix. Every `delta` is the EXACT error at its domain edge; every error
|
|
17
|
+
* function used for it is monotone on the domain, so the edge value is the
|
|
18
|
+
* supremum.
|
|
19
|
+
*
|
|
20
|
+
* @module atlas/diffusion/bridges-closure
|
|
21
|
+
*/
|
|
22
|
+
import type { AtlasBridge } from '../types.js';
|
|
23
|
+
/** τ_p/t ceiling of the Langevin → Fick regime: WD4's fine resolution, t = 100 τ_p. @internal */
|
|
24
|
+
export declare const LANGEVIN_MAX_TAU_RATIO = 0.01;
|
|
25
|
+
/** ε = τDq² ceiling of the telegraph → Fick domain. @internal */
|
|
26
|
+
export declare const TELEGRAPH_FICK_MAX_EPS = 0.05;
|
|
27
|
+
/** ε = τDq² floor of the telegraph → wave domain. @internal */
|
|
28
|
+
export declare const TELEGRAPH_WAVE_MIN_EPS = 25;
|
|
29
|
+
/** Fourier-number floor of the steady-state restriction. @internal */
|
|
30
|
+
export declare const STEADY_MIN_FOURIER = 1;
|
|
31
|
+
/** Bridge: Langevin → Fick, the Einstein coarse-graining D = k_BT/γ. @internal */
|
|
32
|
+
export declare const BRIDGE_LANGEVIN_DIFFUSION: AtlasBridge;
|
|
33
|
+
/**
|
|
34
|
+
* Bridge: Langevin + Stokes drag → Fick with the Stokes–Einstein coefficient.
|
|
35
|
+
*
|
|
36
|
+
* A HYPEREDGE: the Langevin model supplies D = k_BT/γ with γ free; Stokes drag
|
|
37
|
+
* supplies γ = 6πηa for a sphere. Neither alone gives D in terms of the fluid.
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export declare const BRIDGE_STOKES_EINSTEIN: AtlasBridge;
|
|
42
|
+
/**
|
|
43
|
+
* Bridge: telegraph → Fick, the SINGULAR limit τ → 0.
|
|
44
|
+
*
|
|
45
|
+
* Singular because the highest time derivative is lost: the telegraph equation
|
|
46
|
+
* needs two initial conditions and diffusion takes one, so a fast mode
|
|
47
|
+
* `e^{−t/τ}` forms an initial layer. The bound therefore holds only AFTER that
|
|
48
|
+
* layer, and the machine horizon has a LOWER edge as well as an upper one.
|
|
49
|
+
*
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
export declare const BRIDGE_TELEGRAPH_DIFFUSION: AtlasBridge;
|
|
53
|
+
/**
|
|
54
|
+
* Bridge: telegraph → 1-D wave, for strongly underdamped modes over short times.
|
|
55
|
+
*
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
58
|
+
export declare const BRIDGE_TELEGRAPH_WAVE: AtlasBridge;
|
|
59
|
+
/** Bridge: heat → Laplace, the steady-state restriction. @internal */
|
|
60
|
+
export declare const BRIDGE_HEAT_LAPLACE: AtlasBridge;
|
|
61
|
+
/** The diffusion-family closure bridges. @internal */
|
|
62
|
+
export declare const DIFFUSION_CLOSURE_BRIDGES: readonly AtlasBridge[];
|
|
63
|
+
//# sourceMappingURL=bridges-closure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridges-closure.d.ts","sourceRoot":"","sources":["../../../src/atlas/diffusion/bridges-closure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS/C,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,+DAA+D;AAC/D,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAWpC,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,EAAE,WA0DvC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAyCpC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAyExC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAiDnC,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,EAAE,WAsCjC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,EAAE,SAAS,WAAW,EAM3D,CAAC"}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 4 — the five diffusion-family bridges added to close Sprint 4's
|
|
3
|
+
* "≥ 20 bridges" exit criterion.
|
|
4
|
+
*
|
|
5
|
+
* Design note: `docs/planning/Atlas-Phase-4-Design.md` §4 (Sprint 4 closure).
|
|
6
|
+
*
|
|
7
|
+
* | Bridge | Relation | Witnesses |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | Langevin → Fick | `coarse-graining` | WD4 (convergence), WD4b (ballistic regime) |
|
|
10
|
+
* | Langevin + Stokes drag → Fick | `derivation`, **hyperedge** | WD5 (canonical + water), WD5s (CAS) |
|
|
11
|
+
* | telegraph → Fick | `approximation` (singular, τ → 0) | WD6 (convergence), WD6b (oscillatory modes) |
|
|
12
|
+
* | telegraph → 1-D wave | `approximation` (τDq² → ∞, t ≪ τ) | WD7 (convergence) |
|
|
13
|
+
* | heat → Laplace | `restriction` (steady state) | WD8 (convergence in time) |
|
|
14
|
+
*
|
|
15
|
+
* Every regime inequality keys a `PiGroup.formula` derived from the dimension
|
|
16
|
+
* matrix. Every `delta` is the EXACT error at its domain edge; every error
|
|
17
|
+
* function used for it is monotone on the domain, so the edge value is the
|
|
18
|
+
* supremum.
|
|
19
|
+
*
|
|
20
|
+
* @module atlas/diffusion/bridges-closure
|
|
21
|
+
*/
|
|
22
|
+
import { ENERGY, LENGTH, MASS, TIME, VELOCITY } from '../../dimensional/types.js';
|
|
23
|
+
import { makeApproximation } from '../oscillators/bridges-limits.js';
|
|
24
|
+
import { DAMPING } from '../oscillators/dimensions.js';
|
|
25
|
+
import { deriveRegimeGroups } from '../regime.js';
|
|
26
|
+
import { WAVENUMBER } from '../waves/models.js';
|
|
27
|
+
import { DENSITY, DIFFUSIVITY, SPECIFIC_HEAT, THERMAL_CONDUCTIVITY } from './dimensions.js';
|
|
28
|
+
import { DIFFUSION_FAMILY_NAME, VISCOSITY } from './models.js';
|
|
29
|
+
import { telegraphSlowRateRatio, telegraphWaveFrequencyRatio } from './numerics.js';
|
|
30
|
+
const TEST = 'tests/atlas/closure.test.ts';
|
|
31
|
+
const WITNESS_RESULTS_TEST = 'tests/atlas/witness-results.test.ts';
|
|
32
|
+
/** τ_p/t ceiling of the Langevin → Fick regime: WD4's fine resolution, t = 100 τ_p. @internal */
|
|
33
|
+
export const LANGEVIN_MAX_TAU_RATIO = 0.01;
|
|
34
|
+
/** ε = τDq² ceiling of the telegraph → Fick domain. @internal */
|
|
35
|
+
export const TELEGRAPH_FICK_MAX_EPS = 0.05;
|
|
36
|
+
/** ε = τDq² floor of the telegraph → wave domain. @internal */
|
|
37
|
+
export const TELEGRAPH_WAVE_MIN_EPS = 25;
|
|
38
|
+
/** Fourier-number floor of the steady-state restriction. @internal */
|
|
39
|
+
export const STEADY_MIN_FOURIER = 1;
|
|
40
|
+
const regime = (parameters, inequalities) => ({
|
|
41
|
+
family: DIFFUSION_FAMILY_NAME,
|
|
42
|
+
inequalities,
|
|
43
|
+
groupDefinitions: deriveRegimeGroups(DIFFUSION_FAMILY_NAME, parameters, []),
|
|
44
|
+
});
|
|
45
|
+
/** Bridge: Langevin → Fick, the Einstein coarse-graining D = k_BT/γ. @internal */
|
|
46
|
+
export const BRIDGE_LANGEVIN_DIFFUSION = {
|
|
47
|
+
id: 'ab-langevin-diffusion',
|
|
48
|
+
relation: 'coarse-graining',
|
|
49
|
+
premises: ['model-langevin'],
|
|
50
|
+
conclusion: 'model-fick',
|
|
51
|
+
transformation: 'average over times t ≫ τ_p = m/γ: ⟨x²⟩ → 2Dt with D = k_B T/γ (Einstein)',
|
|
52
|
+
preserves: ['the long-time mean-square displacement', 'the equilibrium velocity variance k_B T/m'],
|
|
53
|
+
doesNotPreserve: [
|
|
54
|
+
'the velocity as a state variable',
|
|
55
|
+
'the ballistic regime t ≲ τ_p, where ⟨x²⟩ ≈ (k_B T/m) t²',
|
|
56
|
+
'the momentum relaxation time τ_p as an independent scale',
|
|
57
|
+
],
|
|
58
|
+
sideConditions: ['overdamped observation times: τ_p/t ≪ 1', 'white thermal noise, fluctuation–dissipation 2γk_BT'],
|
|
59
|
+
regime: regime([
|
|
60
|
+
{ name: 'm', dim: MASS },
|
|
61
|
+
{ name: 'gamma', dim: DAMPING },
|
|
62
|
+
{ name: 'kT', dim: ENERGY },
|
|
63
|
+
{ name: 'D', dim: DIFFUSIVITY },
|
|
64
|
+
{ name: 't', dim: TIME },
|
|
65
|
+
], [
|
|
66
|
+
{
|
|
67
|
+
group: 'm · gamma^-1 · t^-1',
|
|
68
|
+
op: '<=',
|
|
69
|
+
bound: LANGEVIN_MAX_TAU_RATIO,
|
|
70
|
+
alias: 'τ_p/t ≪ 1 (machine form ≤ 0.01)',
|
|
71
|
+
},
|
|
72
|
+
]),
|
|
73
|
+
counterexamples: [
|
|
74
|
+
{
|
|
75
|
+
description: 'At t = 0.1 τ_p the Langevin mean-square displacement is 0.048 of 2Dt: the particle is ' +
|
|
76
|
+
'still ballistic, ⟨x²⟩ ≈ (k_BT/m)t², and the diffusion model does not describe it.',
|
|
77
|
+
witness: 'WD4b',
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
evidence: new Set(['proposed', 'numerically-supported']),
|
|
81
|
+
witnesses: [
|
|
82
|
+
{
|
|
83
|
+
id: 'WD4',
|
|
84
|
+
kind: 'numeric',
|
|
85
|
+
test: TEST,
|
|
86
|
+
tolerance: '⟨x²⟩/(2Dt) within 0.02 of 1 at t = 100 τ_p, from the Langevin moment equations by RK4',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
id: 'WD4b',
|
|
90
|
+
kind: 'numeric',
|
|
91
|
+
test: TEST,
|
|
92
|
+
tolerance: '⟨x²⟩/(2Dt) = 0.0484 at t = 0.1 τ_p',
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
citations: [
|
|
96
|
+
'Uhlenbeck & Ornstein, Phys. Rev. 36 (1930) 823 - On the theory of the Brownian motion',
|
|
97
|
+
'Einstein, Ann. Phys. 17 (1905) 549 - the relation D = k_B T/γ',
|
|
98
|
+
],
|
|
99
|
+
reviewStatus: 'proposed',
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Bridge: Langevin + Stokes drag → Fick with the Stokes–Einstein coefficient.
|
|
103
|
+
*
|
|
104
|
+
* A HYPEREDGE: the Langevin model supplies D = k_BT/γ with γ free; Stokes drag
|
|
105
|
+
* supplies γ = 6πηa for a sphere. Neither alone gives D in terms of the fluid.
|
|
106
|
+
*
|
|
107
|
+
* @internal
|
|
108
|
+
*/
|
|
109
|
+
export const BRIDGE_STOKES_EINSTEIN = {
|
|
110
|
+
id: 'ab-stokes-einstein',
|
|
111
|
+
relation: 'derivation',
|
|
112
|
+
premises: ['model-langevin', 'model-stokes-drag'],
|
|
113
|
+
conclusion: 'model-fick',
|
|
114
|
+
transformation: 'substitute γ = 6πηa into D = k_B T/γ: D = k_B T/(6πηa)',
|
|
115
|
+
preserves: ['the long-time diffusion coefficient of a sphere'],
|
|
116
|
+
doesNotPreserve: ['the particle mass (it drops out)', 'the shape beyond the radius a'],
|
|
117
|
+
sideConditions: ['creeping flow around the sphere, Re ≪ 1', 'no-slip boundary', 'overdamped times t ≫ m/γ'],
|
|
118
|
+
regime: regime([
|
|
119
|
+
{ name: 'kT', dim: ENERGY },
|
|
120
|
+
{ name: 'gamma', dim: DAMPING },
|
|
121
|
+
{ name: 'eta', dim: VISCOSITY },
|
|
122
|
+
{ name: 'a', dim: LENGTH },
|
|
123
|
+
{ name: 'D', dim: DIFFUSIVITY },
|
|
124
|
+
], []),
|
|
125
|
+
counterexamples: [],
|
|
126
|
+
evidence: new Set(['proposed', 'numerically-supported']),
|
|
127
|
+
witnesses: [
|
|
128
|
+
{
|
|
129
|
+
id: 'WD5',
|
|
130
|
+
kind: 'numeric',
|
|
131
|
+
test: TEST,
|
|
132
|
+
tolerance: 'agrees with CE-stokes-einstein to 1e-12 relative; a 1 µm sphere in water at 20 °C gives D = 4.29e-13 m²/s',
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
id: 'WD5s',
|
|
136
|
+
kind: 'symbolic',
|
|
137
|
+
test: WITNESS_RESULTS_TEST,
|
|
138
|
+
tolerance: 'CAS: k_BT/γ under γ ↦ 6πηa minus k_BT/(6πηa) simplifies to literal 0',
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
citations: [
|
|
142
|
+
'Einstein, Ann. Phys. 17 (1905) 549 - Brownian motion of a sphere, D = k_B T/(6πηa)',
|
|
143
|
+
'Stokes, Trans. Camb. Phil. Soc. 9 (1851) 8 - the drag on a sphere in creeping flow',
|
|
144
|
+
],
|
|
145
|
+
reviewStatus: 'proposed',
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Bridge: telegraph → Fick, the SINGULAR limit τ → 0.
|
|
149
|
+
*
|
|
150
|
+
* Singular because the highest time derivative is lost: the telegraph equation
|
|
151
|
+
* needs two initial conditions and diffusion takes one, so a fast mode
|
|
152
|
+
* `e^{−t/τ}` forms an initial layer. The bound therefore holds only AFTER that
|
|
153
|
+
* layer, and the machine horizon has a LOWER edge as well as an upper one.
|
|
154
|
+
*
|
|
155
|
+
* @internal
|
|
156
|
+
*/
|
|
157
|
+
export const BRIDGE_TELEGRAPH_DIFFUSION = {
|
|
158
|
+
id: 'ab-telegraph-diffusion',
|
|
159
|
+
relation: 'approximation',
|
|
160
|
+
premises: ['model-telegraph'],
|
|
161
|
+
conclusion: 'model-fick',
|
|
162
|
+
transformation: 'drop τ u_tt: the slow mode decays at Dq²(1 + ε + 2ε² + …) → Dq², ε = τDq²',
|
|
163
|
+
preserves: ['the slow decay rate of each Fourier mode to O(ε)', 'the total amount ∫u dx'],
|
|
164
|
+
doesNotPreserve: [
|
|
165
|
+
'the finite signal speed √(D/τ)',
|
|
166
|
+
'the second initial condition u_t(x, 0)',
|
|
167
|
+
'oscillatory modes, which exist for ε > 1/4',
|
|
168
|
+
],
|
|
169
|
+
sideConditions: ['ε = τDq² ≤ 0.05', 'after the initial layer: t ≫ τ'],
|
|
170
|
+
bound: makeApproximation({
|
|
171
|
+
K: 1,
|
|
172
|
+
delta: telegraphSlowRateRatio(TELEGRAPH_FICK_MAX_EPS, 1, 1) - 1,
|
|
173
|
+
deltaAt: (p) => telegraphSlowRateRatio(p['tau'] ?? Number.NaN, p['D'] ?? Number.NaN, p['q'] ?? Number.NaN) - 1,
|
|
174
|
+
norm: 'relative error of the slow-mode decay rate of a Fourier mode',
|
|
175
|
+
domain: 'ε = τDq² ≤ 0.05',
|
|
176
|
+
horizon: 'τ ≪ t ≪ 1/(δ D q²): after the initial layer and before the decay-rate error accumulates; ' +
|
|
177
|
+
'machine form 5τ < t < 0.1/(δ D q²)',
|
|
178
|
+
horizonHolds: (t, p) => {
|
|
179
|
+
const { tau, D, q } = p;
|
|
180
|
+
if (tau === undefined || D === undefined || q === undefined)
|
|
181
|
+
return false;
|
|
182
|
+
const delta = telegraphSlowRateRatio(tau, D, q) - 1;
|
|
183
|
+
if (!Number.isFinite(delta))
|
|
184
|
+
return false;
|
|
185
|
+
if (t <= 5 * tau)
|
|
186
|
+
return false;
|
|
187
|
+
return delta === 0 || t < 0.1 / (delta * D * q * q);
|
|
188
|
+
},
|
|
189
|
+
parameterRange: 'ε = τDq² ≤ 0.05',
|
|
190
|
+
limitCharacter: 'singular',
|
|
191
|
+
// A slow-mode decay-rate error. The horizon says that error accumulates,
|
|
192
|
+
// so time is not listed.
|
|
193
|
+
uniformity: ['slow-mode decay rate of one Fourier mode, for ε = τDq² ≤ 0.05'],
|
|
194
|
+
}),
|
|
195
|
+
regime: regime([
|
|
196
|
+
{ name: 'tau', dim: TIME },
|
|
197
|
+
{ name: 'D', dim: DIFFUSIVITY },
|
|
198
|
+
{ name: 'q', dim: WAVENUMBER },
|
|
199
|
+
], [{ group: 'tau · D · q^2', op: '<=', bound: TELEGRAPH_FICK_MAX_EPS, alias: 'ε = τDq² ≤ 0.05' }]),
|
|
200
|
+
counterexamples: [
|
|
201
|
+
{
|
|
202
|
+
description: 'At ε = τDq² = 1 the telegraph mode is OSCILLATORY (complex rate, NaN on the slow branch): ' +
|
|
203
|
+
'no diffusion mode oscillates.',
|
|
204
|
+
witness: 'WD6b',
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
evidence: new Set(['proposed', 'numerically-supported']),
|
|
208
|
+
witnesses: [
|
|
209
|
+
{
|
|
210
|
+
id: 'WD6',
|
|
211
|
+
kind: 'numeric',
|
|
212
|
+
test: TEST,
|
|
213
|
+
tolerance: 'slow rate / Dq² within 0.03 of 1 at τ = 0.025 (D = q = 1); error halves with τ',
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
id: 'WD6b',
|
|
217
|
+
kind: 'numeric',
|
|
218
|
+
test: TEST,
|
|
219
|
+
tolerance: 'no real slow rate at ε = 1',
|
|
220
|
+
},
|
|
221
|
+
],
|
|
222
|
+
citations: [
|
|
223
|
+
'Cattaneo, Atti Sem. Mat. Fis. Univ. Modena 3 (1948) 83 - heat conduction with a relaxation time',
|
|
224
|
+
'Goldstein, Q. J. Mech. Appl. Math. 4 (1951) 129 - On diffusion by discontinuous movements, and on the telegraph equation',
|
|
225
|
+
],
|
|
226
|
+
reviewStatus: 'proposed',
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* Bridge: telegraph → 1-D wave, for strongly underdamped modes over short times.
|
|
230
|
+
*
|
|
231
|
+
* @internal
|
|
232
|
+
*/
|
|
233
|
+
export const BRIDGE_TELEGRAPH_WAVE = {
|
|
234
|
+
id: 'ab-telegraph-wave',
|
|
235
|
+
relation: 'approximation',
|
|
236
|
+
premises: ['model-telegraph'],
|
|
237
|
+
conclusion: 'model-wave-1d',
|
|
238
|
+
transformation: 'drop u_t: τ u_tt = D u_xx, a wave with c² = D/τ',
|
|
239
|
+
preserves: ['the signal speed √(D/τ)', 'the oscillation frequency to O(1/ε)'],
|
|
240
|
+
doesNotPreserve: ['damping: telegraph modes decay as e^{−t/(2τ)}', 'relaxation to diffusion at long times'],
|
|
241
|
+
sideConditions: ['ε = τDq² ≥ 25', 'short times t ≪ τ (the bound is not uniform in time)'],
|
|
242
|
+
bound: makeApproximation({
|
|
243
|
+
K: 1,
|
|
244
|
+
delta: 1 - telegraphWaveFrequencyRatio(TELEGRAPH_WAVE_MIN_EPS, 1, 1),
|
|
245
|
+
deltaAt: (p) => 1 - telegraphWaveFrequencyRatio(p['tau'] ?? Number.NaN, p['D'] ?? Number.NaN, p['q'] ?? Number.NaN),
|
|
246
|
+
norm: 'relative error of the oscillation frequency of a Fourier mode',
|
|
247
|
+
domain: 'ε = τDq² ≥ 25',
|
|
248
|
+
horizon: 't ≪ τ: before damping e^{−t/(2τ)} removes 10% of the amplitude; machine form t < 2τ ln(10/9)',
|
|
249
|
+
horizonHolds: (t, p) => {
|
|
250
|
+
const { tau } = p;
|
|
251
|
+
if (tau === undefined || !(tau > 0))
|
|
252
|
+
return false;
|
|
253
|
+
return t >= 0 && t < 2 * tau * Math.log(10 / 9);
|
|
254
|
+
},
|
|
255
|
+
parameterRange: 'ε = τDq² ≥ 25',
|
|
256
|
+
limitCharacter: 'regular',
|
|
257
|
+
// An oscillation-frequency error. The record says it is not uniform in time.
|
|
258
|
+
uniformity: ['oscillation frequency of one Fourier mode, for ε = τDq² ≥ 25'],
|
|
259
|
+
}),
|
|
260
|
+
regime: regime([
|
|
261
|
+
{ name: 'tau', dim: TIME },
|
|
262
|
+
{ name: 'D', dim: DIFFUSIVITY },
|
|
263
|
+
{ name: 'q', dim: WAVENUMBER },
|
|
264
|
+
{ name: 'c', dim: VELOCITY },
|
|
265
|
+
], [{ group: 'tau · D · q^2', op: '>=', bound: TELEGRAPH_WAVE_MIN_EPS, alias: 'ε = τDq² ≥ 25' }]),
|
|
266
|
+
counterexamples: [],
|
|
267
|
+
evidence: new Set(['proposed', 'numerically-supported']),
|
|
268
|
+
witnesses: [
|
|
269
|
+
{
|
|
270
|
+
id: 'WD7',
|
|
271
|
+
kind: 'numeric',
|
|
272
|
+
test: TEST,
|
|
273
|
+
tolerance: 'frequency ratio within 3e-3 of 1 at ε = 50; error halves as ε doubles',
|
|
274
|
+
},
|
|
275
|
+
],
|
|
276
|
+
citations: ['Goldstein, Q. J. Mech. Appl. Math. 4 (1951) 129 - On diffusion by discontinuous movements, and on the telegraph equation'],
|
|
277
|
+
reviewStatus: 'proposed',
|
|
278
|
+
};
|
|
279
|
+
/** Bridge: heat → Laplace, the steady-state restriction. @internal */
|
|
280
|
+
export const BRIDGE_HEAT_LAPLACE = {
|
|
281
|
+
id: 'ab-heat-laplace',
|
|
282
|
+
relation: 'restriction',
|
|
283
|
+
premises: ['model-heat'],
|
|
284
|
+
conclusion: 'model-laplace-1d',
|
|
285
|
+
transformation: '∂T/∂t = 0: κ T_xx = 0, T linear between the end temperatures',
|
|
286
|
+
preserves: ['the end temperatures', 'the steady heat flux κ(T_b − T_a)/ℓ'],
|
|
287
|
+
doesNotPreserve: ['the transient', 'ρ and c_p, which drop out of the steady state'],
|
|
288
|
+
sideConditions: ['fixed end temperatures', 'Fourier number αt/ℓ² ≥ 1 (transients decayed)'],
|
|
289
|
+
regime: regime([
|
|
290
|
+
{ name: 'kappa', dim: THERMAL_CONDUCTIVITY },
|
|
291
|
+
{ name: 'rho', dim: DENSITY },
|
|
292
|
+
{ name: 'cp', dim: SPECIFIC_HEAT },
|
|
293
|
+
{ name: 'ell', dim: LENGTH },
|
|
294
|
+
{ name: 't', dim: TIME },
|
|
295
|
+
], [
|
|
296
|
+
{
|
|
297
|
+
group: 'kappa · rho^-1 · cp^-1 · ell^-2 · t',
|
|
298
|
+
op: '>=',
|
|
299
|
+
bound: STEADY_MIN_FOURIER,
|
|
300
|
+
alias: 'Fo = αt/ℓ² ≥ 1',
|
|
301
|
+
},
|
|
302
|
+
]),
|
|
303
|
+
counterexamples: [],
|
|
304
|
+
evidence: new Set(['proposed', 'numerically-supported']),
|
|
305
|
+
witnesses: [
|
|
306
|
+
{
|
|
307
|
+
id: 'WD8',
|
|
308
|
+
kind: 'numeric',
|
|
309
|
+
test: TEST,
|
|
310
|
+
tolerance: 'max deviation from the linear profile below 0.025 at αt/ℓ² = 0.4; shrinks with time',
|
|
311
|
+
},
|
|
312
|
+
],
|
|
313
|
+
citations: ['Carslaw & Jaeger, Conduction of Heat in Solids - steady linear flow in a slab'],
|
|
314
|
+
reviewStatus: 'proposed',
|
|
315
|
+
};
|
|
316
|
+
/** The diffusion-family closure bridges. @internal */
|
|
317
|
+
export const DIFFUSION_CLOSURE_BRIDGES = [
|
|
318
|
+
BRIDGE_LANGEVIN_DIFFUSION,
|
|
319
|
+
BRIDGE_STOKES_EINSTEIN,
|
|
320
|
+
BRIDGE_TELEGRAPH_DIFFUSION,
|
|
321
|
+
BRIDGE_TELEGRAPH_WAVE,
|
|
322
|
+
BRIDGE_HEAT_LAPLACE,
|
|
323
|
+
];
|
|
324
|
+
//# sourceMappingURL=bridges-closure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridges-closure.js","sourceRoot":"","sources":["../../../src/atlas/diffusion/bridges-closure.ts"],"names":[],"mappings":"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"}
|