universal-physics-tensor 10.0.0 → 12.0.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 +39 -36
- package/bin/upt.mjs +13 -1
- package/data/applied-cases.json +1892 -0
- package/data/applied-cases.schema.json +194 -0
- package/data/atlas/atlas.json +25 -25
- package/data/atlas/atlas.jsonld +1 -1
- package/data/atlas/diffusion.json +6 -6
- package/data/atlas/oscillators.json +7 -7
- package/data/atlas/waves.json +14 -14
- package/data/atlas/witness-results.json +11 -11
- package/data/bridge-catalog.json +389 -230
- package/data/bridge-catalog.schema.json +45 -7
- package/data/units.json +6 -25
- package/dist/atlas/applicability.d.ts.map +1 -1
- package/dist/atlas/applicability.js +21 -15
- package/dist/atlas/applicability.js.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts +9 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js +15 -13
- package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
- package/dist/atlas/benchmark/loader.js +2 -2
- package/dist/atlas/benchmark/loader.js.map +1 -1
- package/dist/atlas/benchmark/stats.d.ts +2 -2
- package/dist/atlas/benchmark/stats.d.ts.map +1 -1
- package/dist/atlas/benchmark/stats.js +9 -15
- package/dist/atlas/benchmark/stats.js.map +1 -1
- package/dist/atlas/catalog-formal-ref.d.ts +26 -3
- package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
- package/dist/atlas/catalog-formal-ref.js +52 -5
- package/dist/atlas/catalog-formal-ref.js.map +1 -1
- package/dist/atlas/chain-pipeline.d.ts.map +1 -1
- package/dist/atlas/chain-pipeline.js +7 -8
- package/dist/atlas/chain-pipeline.js.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.d.ts +0 -4
- package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.js +8 -12
- package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
- package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges.js +27 -39
- package/dist/atlas/diffusion/bridges.js.map +1 -1
- package/dist/atlas/diffusion/dimensions.d.ts +6 -14
- package/dist/atlas/diffusion/dimensions.d.ts.map +1 -1
- package/dist/atlas/diffusion/dimensions.js +8 -16
- package/dist/atlas/diffusion/dimensions.js.map +1 -1
- package/dist/atlas/diffusion/models.d.ts +3 -3
- package/dist/atlas/diffusion/models.d.ts.map +1 -1
- package/dist/atlas/diffusion/models.js +5 -10
- package/dist/atlas/diffusion/models.js.map +1 -1
- package/dist/atlas/diffusion/numerics.d.ts +16 -4
- package/dist/atlas/diffusion/numerics.d.ts.map +1 -1
- package/dist/atlas/diffusion/numerics.js +38 -24
- package/dist/atlas/diffusion/numerics.js.map +1 -1
- package/dist/atlas/link-prediction.d.ts +106 -3
- package/dist/atlas/link-prediction.d.ts.map +1 -1
- package/dist/atlas/link-prediction.js +212 -66
- package/dist/atlas/link-prediction.js.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.js +7 -11
- package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.js +6 -7
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.d.ts +3 -16
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.js +23 -34
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
- package/dist/atlas/oscillators/dimensions.d.ts +9 -21
- package/dist/atlas/oscillators/dimensions.d.ts.map +1 -1
- package/dist/atlas/oscillators/dimensions.js +9 -21
- package/dist/atlas/oscillators/dimensions.js.map +1 -1
- package/dist/atlas/oscillators/limit-witnesses.d.ts +2 -2
- package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -1
- package/dist/atlas/oscillators/limit-witnesses.js +17 -15
- package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
- package/dist/atlas/oscillators/models.d.ts.map +1 -1
- package/dist/atlas/oscillators/models.js +2 -6
- package/dist/atlas/oscillators/models.js.map +1 -1
- package/dist/atlas/oscillators/pendulum-motion.d.ts +29 -6
- package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -1
- package/dist/atlas/oscillators/pendulum-motion.js +60 -40
- package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
- package/dist/atlas/oscillators/phase-translation.d.ts +0 -11
- package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -1
- package/dist/atlas/oscillators/phase-translation.js +3 -4
- package/dist/atlas/oscillators/phase-translation.js.map +1 -1
- package/dist/atlas/oscillators/position-translation.d.ts +68 -7
- package/dist/atlas/oscillators/position-translation.d.ts.map +1 -1
- package/dist/atlas/oscillators/position-translation.js +123 -12
- package/dist/atlas/oscillators/position-translation.js.map +1 -1
- package/dist/atlas/oscillators/rejections.d.ts +0 -2
- package/dist/atlas/oscillators/rejections.d.ts.map +1 -1
- package/dist/atlas/oscillators/rejections.js +0 -7
- package/dist/atlas/oscillators/rejections.js.map +1 -1
- package/dist/atlas/physjs-entries.generated.d.ts +35 -25
- package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
- package/dist/atlas/physjs-entries.generated.js +37 -25
- package/dist/atlas/physjs-entries.generated.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +34 -31
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +55 -53
- package/dist/atlas/physjs-ref.js.map +1 -1
- package/dist/atlas/physjs-reviewed.d.ts +1 -1
- package/dist/atlas/physjs-reviewed.js +15 -15
- package/dist/atlas/physjs-reviewed.js.map +1 -1
- package/dist/atlas/poster/statements.d.ts +0 -19
- package/dist/atlas/poster/statements.d.ts.map +1 -1
- package/dist/atlas/poster/statements.js +1 -1
- package/dist/atlas/poster/statements.js.map +1 -1
- package/dist/atlas/proof-target.d.ts +1 -1
- package/dist/atlas/proof-target.js +1 -1
- package/dist/atlas/proof-target.js.map +1 -1
- package/dist/atlas/regime.d.ts +1 -1
- package/dist/atlas/regime.d.ts.map +1 -1
- package/dist/atlas/regime.js +1 -1
- package/dist/atlas/regime.js.map +1 -1
- package/dist/atlas/text-overlap.d.ts +23 -0
- package/dist/atlas/text-overlap.d.ts.map +1 -0
- package/dist/atlas/text-overlap.js +41 -0
- package/dist/atlas/text-overlap.js.map +1 -0
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/waves/bridges-closure.js +2 -6
- package/dist/atlas/waves/bridges-closure.js.map +1 -1
- package/dist/atlas/waves/bridges.d.ts.map +1 -1
- package/dist/atlas/waves/bridges.js +32 -48
- package/dist/atlas/waves/bridges.js.map +1 -1
- package/dist/atlas/waves/models.d.ts +5 -6
- package/dist/atlas/waves/models.d.ts.map +1 -1
- package/dist/atlas/waves/models.js +7 -13
- package/dist/atlas/waves/models.js.map +1 -1
- package/dist/atlas/waves/numerics.d.ts.map +1 -1
- package/dist/atlas/waves/numerics.js +10 -3
- package/dist/atlas/waves/numerics.js.map +1 -1
- package/dist/atlas/witness-numeric.d.ts +30 -0
- package/dist/atlas/witness-numeric.d.ts.map +1 -1
- package/dist/atlas/witness-numeric.js +53 -0
- package/dist/atlas/witness-numeric.js.map +1 -1
- package/dist/atlas/witness-specs.d.ts.map +1 -1
- package/dist/atlas/witness-specs.js +19 -0
- package/dist/atlas/witness-specs.js.map +1 -1
- package/dist/atlas/witness-symbolic.d.ts +75 -3
- package/dist/atlas/witness-symbolic.d.ts.map +1 -1
- package/dist/atlas/witness-symbolic.js +116 -10
- package/dist/atlas/witness-symbolic.js.map +1 -1
- package/dist/bridges/catalog-load.d.ts.map +1 -1
- package/dist/bridges/catalog-load.js +13 -8
- package/dist/bridges/catalog-load.js.map +1 -1
- package/dist/bridges/catalog-types.d.ts +26 -2
- package/dist/bridges/catalog-types.d.ts.map +1 -1
- package/dist/bridges/catalog-types.js +11 -1
- package/dist/bridges/catalog-types.js.map +1 -1
- package/dist/bridges/evaluation-errors.d.ts +31 -1
- package/dist/bridges/evaluation-errors.d.ts.map +1 -1
- package/dist/bridges/evaluation-errors.js +20 -2
- package/dist/bridges/evaluation-errors.js.map +1 -1
- package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
- package/dist/bridges/evaluator-inputs.js +7 -5
- package/dist/bridges/evaluator-inputs.js.map +1 -1
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +27 -12
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/expr-parse.d.ts +11 -0
- package/dist/bridges/expr-parse.d.ts.map +1 -1
- package/dist/bridges/expr-parse.js +14 -5
- package/dist/bridges/expr-parse.js.map +1 -1
- package/dist/bridges/holds.d.ts +35 -3
- package/dist/bridges/holds.d.ts.map +1 -1
- package/dist/bridges/holds.js +117 -23
- package/dist/bridges/holds.js.map +1 -1
- package/dist/bridges/notices.d.ts.map +1 -1
- package/dist/bridges/notices.js +5 -5
- package/dist/bridges/notices.js.map +1 -1
- package/dist/bridges/relation-eval.d.ts +4 -4
- package/dist/bridges/relation-eval.d.ts.map +1 -1
- package/dist/bridges/relation-eval.js +15 -16
- package/dist/bridges/relation-eval.js.map +1 -1
- package/dist/bridges/sensitivity.d.ts.map +1 -1
- package/dist/bridges/sensitivity.js +3 -3
- package/dist/bridges/sensitivity.js.map +1 -1
- package/dist/bridges/validity.d.ts +33 -0
- package/dist/bridges/validity.d.ts.map +1 -0
- package/dist/bridges/validity.js +67 -0
- package/dist/bridges/validity.js.map +1 -0
- package/dist/canonical/entries/atomic.js +1 -3
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
- package/dist/canonical/entries/condensed-matter.js +4 -5
- package/dist/canonical/entries/condensed-matter.js.map +1 -1
- package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
- package/dist/canonical/entries/dimensional-classics.js +3 -4
- package/dist/canonical/entries/dimensional-classics.js.map +1 -1
- package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
- package/dist/canonical/entries/electromagnetism.js +4 -10
- package/dist/canonical/entries/electromagnetism.js.map +1 -1
- package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
- package/dist/canonical/entries/fluids-waves.js +3 -7
- package/dist/canonical/entries/fluids-waves.js.map +1 -1
- package/dist/canonical/entries/mechanics.d.ts.map +1 -1
- package/dist/canonical/entries/mechanics.js +4 -6
- package/dist/canonical/entries/mechanics.js.map +1 -1
- package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
- package/dist/canonical/entries/nonmonomial.js +9 -17
- package/dist/canonical/entries/nonmonomial.js.map +1 -1
- package/dist/canonical/entries/relativity.d.ts.map +1 -1
- package/dist/canonical/entries/relativity.js +6 -6
- package/dist/canonical/entries/relativity.js.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +6 -10
- package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
- package/dist/canonical/fixed-points.d.ts +94 -0
- package/dist/canonical/fixed-points.d.ts.map +1 -0
- package/dist/canonical/fixed-points.js +81 -0
- package/dist/canonical/fixed-points.js.map +1 -0
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +25 -44
- package/dist/canonical/linkage.js.map +1 -1
- package/dist/canonical/normal-form.d.ts.map +1 -1
- package/dist/canonical/normal-form.js +5 -11
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/structural.d.ts +21 -21
- package/dist/canonical/structural.d.ts.map +1 -1
- package/dist/canonical/structural.js +40 -19
- package/dist/canonical/structural.js.map +1 -1
- package/dist/cases/catalog-checks.d.ts +10 -0
- package/dist/cases/catalog-checks.d.ts.map +1 -0
- package/dist/cases/catalog-checks.js +241 -0
- package/dist/cases/catalog-checks.js.map +1 -0
- package/dist/cases/catalog.d.ts +83 -0
- package/dist/cases/catalog.d.ts.map +1 -0
- package/dist/cases/catalog.js +118 -0
- package/dist/cases/catalog.js.map +1 -0
- package/dist/cases/engine.d.ts +13 -0
- package/dist/cases/engine.d.ts.map +1 -0
- package/dist/cases/engine.js +179 -0
- package/dist/cases/engine.js.map +1 -0
- package/dist/cases/index.d.ts.map +1 -1
- package/dist/cases/index.js +5 -7
- package/dist/cases/index.js.map +1 -1
- package/dist/cases/methods.d.ts +215 -0
- package/dist/cases/methods.d.ts.map +1 -0
- package/dist/cases/methods.js +743 -0
- package/dist/cases/methods.js.map +1 -0
- package/dist/cases/quadrature.d.ts +7 -9
- package/dist/cases/quadrature.d.ts.map +1 -1
- package/dist/cases/quadrature.js +28 -32
- package/dist/cases/quadrature.js.map +1 -1
- package/dist/cases/types.d.ts +12 -0
- package/dist/cases/types.d.ts.map +1 -1
- package/dist/cases/types.js.map +1 -1
- package/dist/cli/args.d.ts +25 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +30 -8
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/bindings.d.ts.map +1 -1
- package/dist/cli/bindings.js +5 -4
- package/dist/cli/bindings.js.map +1 -1
- package/dist/cli/command.d.ts +11 -1
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/_atlas-map.d.ts +0 -9
- package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-map.js +8 -18
- package/dist/cli/commands/_atlas-map.js.map +1 -1
- package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-route.js +6 -2
- package/dist/cli/commands/_atlas-route.js.map +1 -1
- package/dist/cli/commands/_discovery-opts.d.ts +1 -0
- package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
- package/dist/cli/commands/_discovery-opts.js +9 -9
- package/dist/cli/commands/_discovery-opts.js.map +1 -1
- package/dist/cli/commands/atlas.d.ts.map +1 -1
- package/dist/cli/commands/atlas.js +8 -5
- package/dist/cli/commands/atlas.js.map +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +8 -1
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/axes.d.ts.map +1 -1
- package/dist/cli/commands/axes.js +20 -1
- package/dist/cli/commands/axes.js.map +1 -1
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +8 -14
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +22 -22
- package/dist/cli/commands/derive.js.map +1 -1
- package/dist/cli/commands/discover.d.ts.map +1 -1
- package/dist/cli/commands/discover.js +122 -73
- package/dist/cli/commands/discover.js.map +1 -1
- package/dist/cli/commands/eval.d.ts.map +1 -1
- package/dist/cli/commands/eval.js +1 -0
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/evaluate.d.ts.map +1 -1
- package/dist/cli/commands/evaluate.js +67 -39
- package/dist/cli/commands/evaluate.js.map +1 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +24 -3
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/ground.d.ts.map +1 -1
- package/dist/cli/commands/ground.js +7 -1
- package/dist/cli/commands/ground.js.map +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +84 -11
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/metric.d.ts.map +1 -1
- package/dist/cli/commands/metric.js +12 -9
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/path.d.ts +10 -0
- package/dist/cli/commands/path.d.ts.map +1 -1
- package/dist/cli/commands/path.js +25 -3
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/probe.d.ts.map +1 -1
- package/dist/cli/commands/probe.js +59 -16
- package/dist/cli/commands/probe.js.map +1 -1
- package/dist/cli/commands/regime.d.ts.map +1 -1
- package/dist/cli/commands/regime.js +1 -0
- package/dist/cli/commands/regime.js.map +1 -1
- package/dist/cli/commands/retrieve.d.ts.map +1 -1
- package/dist/cli/commands/retrieve.js +1 -0
- package/dist/cli/commands/retrieve.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +1 -0
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/symbolic.d.ts.map +1 -1
- package/dist/cli/commands/symbolic.js +19 -28
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/commands/testplan.d.ts.map +1 -1
- package/dist/cli/commands/testplan.js +4 -2
- package/dist/cli/commands/testplan.js.map +1 -1
- package/dist/cli/determination.d.ts +1 -0
- package/dist/cli/determination.d.ts.map +1 -1
- package/dist/cli/determination.js.map +1 -1
- package/dist/cli/expr-print.d.ts +0 -2
- package/dist/cli/expr-print.d.ts.map +1 -1
- package/dist/cli/expr-print.js +7 -31
- package/dist/cli/expr-print.js.map +1 -1
- package/dist/cli/flag-help.d.ts +1 -0
- package/dist/cli/flag-help.d.ts.map +1 -1
- package/dist/cli/flag-help.js +1 -0
- package/dist/cli/flag-help.js.map +1 -1
- package/dist/cli/graphs.d.ts +2 -0
- package/dist/cli/graphs.d.ts.map +1 -1
- package/dist/cli/graphs.js +1 -0
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/main.d.ts +8 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +19 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/numeric-flag.d.ts +12 -0
- package/dist/cli/numeric-flag.d.ts.map +1 -0
- package/dist/cli/numeric-flag.js +44 -0
- package/dist/cli/numeric-flag.js.map +1 -0
- package/dist/cli/output.d.ts +28 -0
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +23 -0
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/record-reach.js +2 -2
- package/dist/cli/record-reach.js.map +1 -1
- package/dist/cli/record-tables.d.ts.map +1 -1
- package/dist/cli/record-tables.js +6 -5
- package/dist/cli/record-tables.js.map +1 -1
- package/dist/cli/record.d.ts +1 -5
- package/dist/cli/record.d.ts.map +1 -1
- package/dist/cli/record.js +9 -8
- package/dist/cli/record.js.map +1 -1
- package/dist/cli/search-index.d.ts.map +1 -1
- package/dist/cli/search-index.js +7 -6
- package/dist/cli/search-index.js.map +1 -1
- package/dist/cli/statuses.d.ts +0 -2
- package/dist/cli/statuses.d.ts.map +1 -1
- package/dist/cli/statuses.js +12 -9
- package/dist/cli/statuses.js.map +1 -1
- package/dist/cli/stored-results.d.ts +7 -0
- package/dist/cli/stored-results.d.ts.map +1 -0
- package/dist/cli/stored-results.js +23 -0
- package/dist/cli/stored-results.js.map +1 -0
- package/dist/cli/version.d.ts +1 -0
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +8 -5
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +36 -5
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +30 -4
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/algebraic-equivalence.d.ts +43 -0
- package/dist/composition/algebraic-equivalence.d.ts.map +1 -0
- package/dist/composition/algebraic-equivalence.js +115 -0
- package/dist/composition/algebraic-equivalence.js.map +1 -0
- package/dist/composition/axes.d.ts +0 -6
- package/dist/composition/axes.d.ts.map +1 -1
- package/dist/composition/axes.js +6 -6
- package/dist/composition/axes.js.map +1 -1
- package/dist/composition/axis-audit.d.ts +47 -20
- package/dist/composition/axis-audit.d.ts.map +1 -1
- package/dist/composition/axis-audit.js +82 -9
- package/dist/composition/axis-audit.js.map +1 -1
- package/dist/composition/bridge-analysis.d.ts +17 -0
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +102 -55
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/canonical-compare.d.ts +40 -0
- package/dist/composition/canonical-compare.d.ts.map +1 -1
- package/dist/composition/canonical-compare.js +122 -24
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +3 -3
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +11 -38
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/canonical-json.js +2 -2
- package/dist/composition/canonical-json.js.map +1 -1
- package/dist/composition/catalog-graph.d.ts.map +1 -1
- package/dist/composition/catalog-graph.js +2 -5
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/chain-candidate.d.ts +8 -0
- package/dist/composition/chain-candidate.d.ts.map +1 -1
- package/dist/composition/chain-candidate.js +9 -2
- package/dist/composition/chain-candidate.js.map +1 -1
- package/dist/composition/chain-match.d.ts +6 -3
- package/dist/composition/chain-match.d.ts.map +1 -1
- package/dist/composition/chain-match.js +4 -1
- package/dist/composition/chain-match.js.map +1 -1
- package/dist/composition/chain-result.d.ts.map +1 -1
- package/dist/composition/chain-result.js +2 -14
- package/dist/composition/chain-result.js.map +1 -1
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js +3 -2
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +13 -5
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/composition-recovery.d.ts.map +1 -1
- package/dist/composition/composition-recovery.js +4 -7
- package/dist/composition/composition-recovery.js.map +1 -1
- package/dist/composition/consequence.d.ts +15 -5
- package/dist/composition/consequence.d.ts.map +1 -1
- package/dist/composition/consequence.js +6 -4
- package/dist/composition/consequence.js.map +1 -1
- package/dist/composition/discovery.d.ts +129 -9
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +171 -67
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +21 -2
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +23 -1
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/enumerate.d.ts.map +1 -1
- package/dist/composition/enumerate.js +18 -3
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/evaluate-relation.d.ts +35 -11
- package/dist/composition/evaluate-relation.d.ts.map +1 -1
- package/dist/composition/evaluate-relation.js +60 -39
- package/dist/composition/evaluate-relation.js.map +1 -1
- package/dist/composition/explain.d.ts +3 -12
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +7 -20
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js +6 -15
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts +26 -14
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +64 -72
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/formula-shape.d.ts +23 -4
- package/dist/composition/formula-shape.d.ts.map +1 -1
- package/dist/composition/formula-shape.js +57 -17
- package/dist/composition/formula-shape.js.map +1 -1
- package/dist/composition/graph-structure.d.ts +98 -0
- package/dist/composition/graph-structure.d.ts.map +1 -0
- package/dist/composition/graph-structure.js +167 -0
- package/dist/composition/graph-structure.js.map +1 -0
- package/dist/composition/graph-viz-svg.d.ts.map +1 -1
- package/dist/composition/graph-viz-svg.js +1 -1
- package/dist/composition/graph-viz-svg.js.map +1 -1
- package/dist/composition/graph-viz.d.ts.map +1 -1
- package/dist/composition/graph-viz.js +8 -37
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/grounding.d.ts.map +1 -1
- package/dist/composition/grounding.js +19 -7
- package/dist/composition/grounding.js.map +1 -1
- package/dist/composition/identifiability.d.ts +91 -4
- package/dist/composition/identifiability.d.ts.map +1 -1
- package/dist/composition/identifiability.js +363 -6
- package/dist/composition/identifiability.js.map +1 -1
- package/dist/composition/index.d.ts +8 -4
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +3 -2
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/mathts-quiet.d.ts +7 -8
- package/dist/composition/mathts-quiet.d.ts.map +1 -1
- package/dist/composition/mathts-quiet.js +7 -16
- package/dist/composition/mathts-quiet.js.map +1 -1
- package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
- package/dist/composition/mathts-scalar-symbols.js +2 -1
- package/dist/composition/mathts-scalar-symbols.js.map +1 -1
- package/dist/composition/own-equation-magnitude.d.ts +95 -0
- package/dist/composition/own-equation-magnitude.d.ts.map +1 -0
- package/dist/composition/own-equation-magnitude.js +270 -0
- package/dist/composition/own-equation-magnitude.js.map +1 -0
- package/dist/composition/probe/backend-protocol.d.ts +3 -0
- package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
- package/dist/composition/probe/backend-protocol.js.map +1 -1
- package/dist/composition/probe/candidate-store.d.ts +1 -0
- package/dist/composition/probe/candidate-store.d.ts.map +1 -1
- package/dist/composition/probe/candidate-store.js +1 -0
- package/dist/composition/probe/candidate-store.js.map +1 -1
- package/dist/composition/probe/corpus.d.ts +8 -4
- package/dist/composition/probe/corpus.d.ts.map +1 -1
- package/dist/composition/probe/corpus.js +23 -12
- package/dist/composition/probe/corpus.js.map +1 -1
- package/dist/composition/probe/dataset.d.ts +18 -0
- package/dist/composition/probe/dataset.d.ts.map +1 -1
- package/dist/composition/probe/dataset.js +95 -50
- package/dist/composition/probe/dataset.js.map +1 -1
- package/dist/composition/probe/experiment-design.d.ts +7 -1
- package/dist/composition/probe/experiment-design.d.ts.map +1 -1
- package/dist/composition/probe/experiment-design.js +44 -24
- package/dist/composition/probe/experiment-design.js.map +1 -1
- package/dist/composition/probe/falsify.d.ts +2 -0
- package/dist/composition/probe/falsify.d.ts.map +1 -1
- package/dist/composition/probe/falsify.js +2 -0
- package/dist/composition/probe/falsify.js.map +1 -1
- package/dist/composition/probe/fit.d.ts +7 -0
- package/dist/composition/probe/fit.d.ts.map +1 -1
- package/dist/composition/probe/fit.js +46 -22
- package/dist/composition/probe/fit.js.map +1 -1
- package/dist/composition/probe/frontier.d.ts.map +1 -1
- package/dist/composition/probe/frontier.js +33 -15
- package/dist/composition/probe/frontier.js.map +1 -1
- package/dist/composition/probe/generator.d.ts +30 -1
- package/dist/composition/probe/generator.d.ts.map +1 -1
- package/dist/composition/probe/generator.js +58 -36
- package/dist/composition/probe/generator.js.map +1 -1
- package/dist/composition/probe/index.d.ts +14 -0
- package/dist/composition/probe/index.d.ts.map +1 -1
- package/dist/composition/probe/index.js +6 -0
- package/dist/composition/probe/index.js.map +1 -1
- package/dist/composition/probe/limits.d.ts +25 -1
- package/dist/composition/probe/limits.d.ts.map +1 -1
- package/dist/composition/probe/limits.js +53 -11
- package/dist/composition/probe/limits.js.map +1 -1
- package/dist/composition/probe/pipeline.d.ts +5 -0
- package/dist/composition/probe/pipeline.d.ts.map +1 -1
- package/dist/composition/probe/pipeline.js +73 -24
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/power-law.d.ts +121 -0
- package/dist/composition/probe/power-law.d.ts.map +1 -0
- package/dist/composition/probe/power-law.js +251 -0
- package/dist/composition/probe/power-law.js.map +1 -0
- package/dist/composition/probe/problem.d.ts +8 -4
- package/dist/composition/probe/problem.d.ts.map +1 -1
- package/dist/composition/probe/problem.js +177 -49
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/report.js +1 -1
- package/dist/composition/probe/report.js.map +1 -1
- package/dist/composition/probe/residual.d.ts +7 -1
- package/dist/composition/probe/residual.d.ts.map +1 -1
- package/dist/composition/probe/residual.js +10 -7
- package/dist/composition/probe/residual.js.map +1 -1
- package/dist/composition/probe/run-manifest.d.ts +1 -0
- package/dist/composition/probe/run-manifest.d.ts.map +1 -1
- package/dist/composition/probe/run-manifest.js.map +1 -1
- package/dist/composition/probe/scalar-search.d.ts +50 -0
- package/dist/composition/probe/scalar-search.d.ts.map +1 -0
- package/dist/composition/probe/scalar-search.js +169 -0
- package/dist/composition/probe/scalar-search.js.map +1 -0
- package/dist/composition/probe/scoring.d.ts +1 -0
- package/dist/composition/probe/scoring.d.ts.map +1 -1
- package/dist/composition/probe/scoring.js.map +1 -1
- package/dist/composition/probe/structure.d.ts +82 -17
- package/dist/composition/probe/structure.d.ts.map +1 -1
- package/dist/composition/probe/structure.js +129 -55
- package/dist/composition/probe/structure.js.map +1 -1
- package/dist/composition/probe/study.d.ts +31 -9
- package/dist/composition/probe/study.d.ts.map +1 -1
- package/dist/composition/probe/study.js +235 -184
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/probe/t-tail.d.ts +16 -0
- package/dist/composition/probe/t-tail.d.ts.map +1 -0
- package/dist/composition/probe/t-tail.js +29 -0
- package/dist/composition/probe/t-tail.js.map +1 -0
- package/dist/composition/probe/types.d.ts +3 -0
- package/dist/composition/probe/types.d.ts.map +1 -1
- package/dist/composition/probe/types.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +52 -12
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +107 -60
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/quantity-clusters.d.ts +48 -0
- package/dist/composition/quantity-clusters.d.ts.map +1 -0
- package/dist/composition/quantity-clusters.js +98 -0
- package/dist/composition/quantity-clusters.js.map +1 -0
- package/dist/composition/rational-exponent.d.ts +40 -0
- package/dist/composition/rational-exponent.d.ts.map +1 -0
- package/dist/composition/rational-exponent.js +65 -0
- package/dist/composition/rational-exponent.js.map +1 -0
- package/dist/composition/representative-values.d.ts +22 -0
- package/dist/composition/representative-values.d.ts.map +1 -1
- package/dist/composition/representative-values.js +29 -0
- package/dist/composition/representative-values.js.map +1 -1
- package/dist/composition/retrodiction.d.ts +15 -0
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +12 -4
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/user-equation.d.ts +1 -0
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/composition/user-equation.js +3 -2
- package/dist/composition/user-equation.js.map +1 -1
- package/dist/core/assignment.d.ts +19 -0
- package/dist/core/assignment.d.ts.map +1 -0
- package/dist/core/assignment.js +19 -0
- package/dist/core/assignment.js.map +1 -0
- package/dist/core/compare.d.ts +32 -0
- package/dist/core/compare.d.ts.map +1 -0
- package/dist/core/compare.js +46 -0
- package/dist/core/compare.js.map +1 -0
- package/dist/core/constants.d.ts +42 -41
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +71 -51
- package/dist/core/constants.js.map +1 -1
- package/dist/core/data-file.d.ts +7 -0
- package/dist/core/data-file.d.ts.map +1 -1
- package/dist/core/data-file.js +17 -0
- package/dist/core/data-file.js.map +1 -1
- package/dist/core/format.d.ts +36 -0
- package/dist/core/format.d.ts.map +1 -0
- package/dist/core/format.js +39 -0
- package/dist/core/format.js.map +1 -0
- package/dist/core/hash.d.ts +14 -0
- package/dist/core/hash.d.ts.map +1 -0
- package/dist/core/hash.js +17 -0
- package/dist/core/hash.js.map +1 -0
- package/dist/core/json-schema.d.ts +2 -0
- package/dist/core/json-schema.d.ts.map +1 -1
- package/dist/core/json-schema.js +14 -13
- package/dist/core/json-schema.js.map +1 -1
- package/dist/core/labeled-tensor.d.ts.map +1 -1
- package/dist/core/labeled-tensor.js +0 -8
- package/dist/core/labeled-tensor.js.map +1 -1
- package/dist/core/mathts-read.d.ts +25 -0
- package/dist/core/mathts-read.d.ts.map +1 -0
- package/dist/core/mathts-read.js +51 -0
- package/dist/core/mathts-read.js.map +1 -0
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +24 -0
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts +5 -5
- package/dist/diff/bridge-ast-gradient.d.ts +27 -23
- package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js +75 -173
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts +19 -6
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +19 -11
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/diff/bridge-specs.d.ts.map +1 -1
- package/dist/diff/bridge-specs.js +3 -0
- package/dist/diff/bridge-specs.js.map +1 -1
- package/dist/dimensional/algebra.d.ts +18 -0
- package/dist/dimensional/algebra.d.ts.map +1 -1
- package/dist/dimensional/algebra.js +41 -1
- package/dist/dimensional/algebra.js.map +1 -1
- package/dist/dimensional/ast-builders.d.ts +7 -0
- package/dist/dimensional/ast-builders.d.ts.map +1 -1
- package/dist/dimensional/ast-builders.js +11 -0
- package/dist/dimensional/ast-builders.js.map +1 -1
- package/dist/dimensional/ast-leaves.d.ts +81 -0
- package/dist/dimensional/ast-leaves.d.ts.map +1 -0
- package/dist/dimensional/ast-leaves.js +146 -0
- package/dist/dimensional/ast-leaves.js.map +1 -0
- package/dist/dimensional/ast-types.d.ts +15 -0
- package/dist/dimensional/ast-types.d.ts.map +1 -1
- package/dist/dimensional/ast-types.js.map +1 -1
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/buckingham.js +15 -27
- package/dist/dimensional/buckingham.js.map +1 -1
- package/dist/dimensional/constant-rows.js +9 -9
- package/dist/dimensional/constant-rows.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +1 -1
- package/dist/dimensional/curvature-composite.js.map +1 -1
- package/dist/dimensional/dimension-inference.d.ts.map +1 -1
- package/dist/dimensional/dimension-inference.js +1 -2
- package/dist/dimensional/dimension-inference.js.map +1 -1
- package/dist/dimensional/errors.d.ts +1 -1
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/errors.js +1 -15
- package/dist/dimensional/errors.js.map +1 -1
- package/dist/dimensional/exact-scale.d.ts +24 -11
- package/dist/dimensional/exact-scale.d.ts.map +1 -1
- package/dist/dimensional/exact-scale.js +122 -130
- package/dist/dimensional/exact-scale.js.map +1 -1
- package/dist/dimensional/gauge-field.d.ts.map +1 -1
- package/dist/dimensional/gauge-field.js +2 -2
- package/dist/dimensional/gauge-field.js.map +1 -1
- package/dist/dimensional/hyphen-names.d.ts +12 -2
- package/dist/dimensional/hyphen-names.d.ts.map +1 -1
- package/dist/dimensional/hyphen-names.js +44 -19
- package/dist/dimensional/hyphen-names.js.map +1 -1
- package/dist/dimensional/mathts-unit-delegation.d.ts +29 -0
- package/dist/dimensional/mathts-unit-delegation.d.ts.map +1 -0
- package/dist/dimensional/mathts-unit-delegation.js +187 -0
- package/dist/dimensional/mathts-unit-delegation.js.map +1 -0
- package/dist/dimensional/mathts-unit-wrapper.d.ts +33 -0
- package/dist/dimensional/mathts-unit-wrapper.d.ts.map +1 -0
- package/dist/dimensional/mathts-unit-wrapper.js +190 -0
- package/dist/dimensional/mathts-unit-wrapper.js.map +1 -0
- package/dist/dimensional/metric.d.ts.map +1 -1
- package/dist/dimensional/metric.js +0 -1
- package/dist/dimensional/metric.js.map +1 -1
- package/dist/dimensional/scalar-lowering.d.ts +21 -0
- package/dist/dimensional/scalar-lowering.d.ts.map +1 -0
- package/dist/dimensional/scalar-lowering.js +45 -0
- package/dist/dimensional/scalar-lowering.js.map +1 -0
- package/dist/dimensional/symbolic-constants.d.ts +9 -0
- package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
- package/dist/dimensional/symbolic-constants.js +13 -1
- package/dist/dimensional/symbolic-constants.js.map +1 -1
- package/dist/dimensional/types.d.ts +36 -0
- package/dist/dimensional/types.d.ts.map +1 -1
- package/dist/dimensional/types.js +45 -7
- package/dist/dimensional/types.js.map +1 -1
- package/dist/dimensional/unit-data.d.ts +5 -1
- package/dist/dimensional/unit-data.d.ts.map +1 -1
- package/dist/dimensional/unit-data.js +30 -6
- package/dist/dimensional/unit-data.js.map +1 -1
- package/dist/dimensional/units.d.ts +2 -0
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +59 -3
- package/dist/dimensional/units.js.map +1 -1
- package/dist/dimensional/validator.d.ts +2 -0
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/numerical/christoffel-flat.d.ts.map +1 -1
- package/dist/numerical/christoffel-flat.js +3 -2
- package/dist/numerical/christoffel-flat.js.map +1 -1
- package/dist/numerical/connection-lowering-helpers.d.ts +3 -1
- package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/connection-lowering-helpers.js +11 -15
- package/dist/numerical/connection-lowering-helpers.js.map +1 -1
- package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/covariant-eikonal.js +34 -11
- package/dist/numerical/covariant-eikonal.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +3 -2
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js +0 -3
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/finite-difference.d.ts +22 -0
- package/dist/numerical/finite-difference.d.ts.map +1 -0
- package/dist/numerical/finite-difference.js +27 -0
- package/dist/numerical/finite-difference.js.map +1 -0
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +22 -14
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/geometrized.d.ts.map +1 -1
- package/dist/numerical/geometrized.js +0 -1
- package/dist/numerical/geometrized.js.map +1 -1
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js +10 -24
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.d.ts.map +1 -1
- package/dist/numerical/metric-inverse.js +83 -46
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/null-ray-integrator.d.ts +2 -1
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
- package/dist/numerical/null-ray-integrator.js +12 -12
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- package/dist/numerical/painleve-gullstrand-metric.js +2 -2
- package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +2 -6
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +0 -36
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +41 -87
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +11 -13
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/rk4-trajectory.d.ts +10 -0
- package/dist/numerical/rk4-trajectory.d.ts.map +1 -0
- package/dist/numerical/rk4-trajectory.js +37 -0
- package/dist/numerical/rk4-trajectory.js.map +1 -0
- package/dist/numerical/schwarzschild.d.ts +14 -0
- package/dist/numerical/schwarzschild.d.ts.map +1 -0
- package/dist/numerical/schwarzschild.js +17 -0
- package/dist/numerical/schwarzschild.js.map +1 -0
- package/dist/numerical/spacetime-metrics.d.ts +12 -0
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js +72 -56
- package/dist/numerical/spacetime-metrics.js.map +1 -1
- package/dist/numerical/statistics.d.ts +24 -0
- package/dist/numerical/statistics.d.ts.map +1 -0
- package/dist/numerical/statistics.js +52 -0
- package/dist/numerical/statistics.js.map +1 -0
- package/dist/numerical/strides.d.ts +3 -2
- package/dist/numerical/strides.d.ts.map +1 -1
- package/dist/numerical/strides.js +3 -10
- package/dist/numerical/strides.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +21 -0
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- package/dist/numerical/tensor-engine.js +12 -0
- package/dist/numerical/tensor-engine.js.map +1 -1
- package/dist/relations/regime.d.ts +10 -0
- package/dist/relations/regime.d.ts.map +1 -1
- package/dist/relations/regime.js +18 -1
- package/dist/relations/regime.js.map +1 -1
- package/package.json +9 -12
- package/dist/cases/brownian-sphere.d.ts +0 -68
- package/dist/cases/brownian-sphere.d.ts.map +0 -1
- package/dist/cases/brownian-sphere.js +0 -354
- package/dist/cases/brownian-sphere.js.map +0 -1
- package/dist/cases/damped-resonator.d.ts +0 -23
- package/dist/cases/damped-resonator.d.ts.map +0 -1
- package/dist/cases/damped-resonator.js +0 -224
- package/dist/cases/damped-resonator.js.map +0 -1
- package/dist/cases/kepler-rv.d.ts +0 -13
- package/dist/cases/kepler-rv.d.ts.map +0 -1
- package/dist/cases/kepler-rv.js +0 -172
- package/dist/cases/kepler-rv.js.map +0 -1
- package/dist/cases/lumped-cooling.d.ts +0 -46
- package/dist/cases/lumped-cooling.d.ts.map +0 -1
- package/dist/cases/lumped-cooling.js +0 -261
- package/dist/cases/lumped-cooling.js.map +0 -1
- package/dist/cases/resistor-noise.d.ts +0 -14
- package/dist/cases/resistor-noise.d.ts.map +0 -1
- package/dist/cases/resistor-noise.js +0 -215
- package/dist/cases/resistor-noise.js.map +0 -1
- package/dist/cases/skin-depth.d.ts +0 -21
- package/dist/cases/skin-depth.d.ts.map +0 -1
- package/dist/cases/skin-depth.js +0 -174
- package/dist/cases/skin-depth.js.map +0 -1
|
@@ -1,354 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Applied case: a Brownian sphere tracked in a fluid — the diffusion
|
|
3
|
-
* coefficient and mean-square displacement from the particle's radius and the
|
|
4
|
-
* fluid's viscosity and temperature, with the regime checks that make the
|
|
5
|
-
* Stokes–Einstein scalar applicable.
|
|
6
|
-
*
|
|
7
|
-
* The atlas bridge `ab-stokes-einstein` derives D = k_BT/(6πηa) from the
|
|
8
|
-
* Langevin model and Stokes drag, with Re ≤ 0.1 and m/(γt) ≤ 0.01. This case
|
|
9
|
-
* evaluates it for a named geometry (radius, or diameter through an exact
|
|
10
|
-
* alternate) and fluid, computes Re from the particle's own velocity scales,
|
|
11
|
-
* includes the displaced-fluid added mass in the momentum relaxation time, and
|
|
12
|
-
* evaluates the hydrodynamic memory (the Basset force) that the bridge does not
|
|
13
|
-
* check: the full MSD with fluid inertia, and the correction it makes at t.
|
|
14
|
-
* Given a distance to a plane wall, it applies the wall's drag corrections to D.
|
|
15
|
-
*
|
|
16
|
-
* `CE-stokes-einstein` is encoded only up to its 6π (scalar-up-to-constant);
|
|
17
|
-
* the 6π here comes from Stokes drag, not from that entry.
|
|
18
|
-
*
|
|
19
|
-
* @module cases/brownian-sphere
|
|
20
|
-
*/
|
|
21
|
-
import { K_B_SI } from '../core/constants.js';
|
|
22
|
-
import { adaptiveSimpson } from './quadrature.js';
|
|
23
|
-
import { check, requirePositive, signedRelativeDifference } from './types.js';
|
|
24
|
-
const ID = 'case-brownian-sphere';
|
|
25
|
-
/** Standard gravity (CGPM 1901), for the sedimentation speed. @internal */
|
|
26
|
-
export const G_STANDARD = 9.80665;
|
|
27
|
-
/** The thresholds `ab-stokes-einstein` states: Re ≤ 0.1 and τ_p/t ≤ 0.01. @internal */
|
|
28
|
-
export const MAX_RE = 0.1;
|
|
29
|
-
export const MAX_TAU_P_RATIO = 0.01;
|
|
30
|
-
/** Ceiling on the memory term's own share of the MSD, |MSD_H/MSD_OU − 1|. @internal */
|
|
31
|
-
export const MAX_MEMORY_CORRECTION = 0.01;
|
|
32
|
-
/** (v_s t)²/(2Dt) ceiling along gravity when the vertical axis is tracked. @internal */
|
|
33
|
-
export const MAX_DRIFT_RATIO = 0.01;
|
|
34
|
-
/** Ceiling on |MSD/MSD_wall − 1|: the wall's correction to the tracked MSD is negligible. @internal */
|
|
35
|
-
export const MAX_WALL_CORRECTION = 0.01;
|
|
36
|
-
/** Ceiling on the last retained Faxén term (a/h)⁵/16 over the series' value. @internal */
|
|
37
|
-
export const MAX_FAXEN_LAST_TERM = 0.01;
|
|
38
|
-
/** Ceiling on √(2 D_⊥ t)/(h − a): the height, and so D_∥ and D_⊥, barely change over t. @internal */
|
|
39
|
-
export const MAX_WALL_EXCURSION = 0.1;
|
|
40
|
-
/** t − τ(1 − e^{−t/τ}) in units of τ, i.e. x − (1 − e^{−x}), without its cancellation at small x. @internal */
|
|
41
|
-
export function ballisticDeficit(x) {
|
|
42
|
-
return x < 1e-3 ? x * x * (1 / 2 - x / 6 + (x * x) / 24 - (x * x * x) / 120) : x + Math.expm1(-x);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* MSD/(2Dt) per axis for a sphere with fluid inertia: added mass and the Basset
|
|
46
|
-
* memory force, in an unbounded incompressible fluid, velocities in equilibrium.
|
|
47
|
-
*
|
|
48
|
-
* The velocity autocorrelation has the Laplace transform
|
|
49
|
-
* Ĉ(s) = k_BT/(M s + γ(1 + √(s τ_f))), M = m + m_f/2, from the frequency-dependent
|
|
50
|
-
* Stokes drag γ(1 + √(sτ_f)) + s m_f/2 (Stokes 1851; the Basset 1888 term is its
|
|
51
|
-
* √s part; Hinch 1975, J. Fluid Mech. 72, 499; Clercx & Schram 1992, Phys. Rev.
|
|
52
|
-
* A 46, 1942). Its poles in √s both have negative real part, so Ĉ has none on the
|
|
53
|
-
* principal sheet and C(t) is the branch-cut integral
|
|
54
|
-
* C(t) = (k_BT/πγ) ∫₀^∞ e^{−ut} √(τ_f u)/((1 − τ_p u)² + τ_f u) du, τ_p = M/γ.
|
|
55
|
-
* Then ⟨Δx²⟩ = 2∫₀ᵗ (t − s) C(s) ds, and with v = ut,
|
|
56
|
-
* MSD/(2Dt) = (1/π) ∫₀^∞ √(βv) (v − 1 + e^{−v}) / (v² ((1 − αv)² + βv)) dv, α = τ_p/t, β = τ_f/t,
|
|
57
|
-
* integrated here over ln v by adaptive Simpson, split at v = 1, 1/β and around
|
|
58
|
-
* the near-resonance at v = 1/α (width √(β/α) in ln v; β/α ≤ 9 for any densities).
|
|
59
|
-
*
|
|
60
|
-
* Limits: → 1 − 2√(τ_f/(πt)) + (τ_f − τ_p)/t for t ≫ τ_p, τ_f (expanding Ĉ in √s),
|
|
61
|
-
* whose second derivative is the VACF tail k_BT/(12 ρ_f (πνt)^{3/2}); → t/(2τ_p)
|
|
62
|
-
* for t ≪ τ_p, i.e. ⟨Δx²⟩ → (k_BT/M) t². Requires β > 0: without memory the
|
|
63
|
-
* poles reach the principal sheet and this integral no longer holds them.
|
|
64
|
-
* @internal
|
|
65
|
-
*/
|
|
66
|
-
export function hydrodynamicMsdRatio(alpha, beta) {
|
|
67
|
-
const f = (y) => {
|
|
68
|
-
const v = Math.exp(y);
|
|
69
|
-
const lag = 1 - alpha * v;
|
|
70
|
-
return (Math.sqrt(beta * v) * (ballisticDeficit(v) / v)) / (lag * lag + beta * v);
|
|
71
|
-
};
|
|
72
|
-
const peak = -Math.log(alpha);
|
|
73
|
-
const w = Math.min(1, Math.sqrt(beta / alpha));
|
|
74
|
-
const points = [0, -Math.log(beta), peak, ...[1, 2, 4].flatMap((k) => [peak - k * w, peak + k * w])].sort((x, y) => x - y);
|
|
75
|
-
// The integrand falls as v^{3/2} below and v^{−3/2} above the breakpoints: e^{−75} at ±50 in ln v.
|
|
76
|
-
const edges = [points[0] - 50, ...points, points[points.length - 1] + 50];
|
|
77
|
-
let sum = 0;
|
|
78
|
-
for (let k = 1; k < edges.length; k++)
|
|
79
|
-
if (edges[k] > edges[k - 1])
|
|
80
|
-
sum += adaptiveSimpson(f, edges[k - 1], edges[k], 1e-12);
|
|
81
|
-
return sum / Math.PI;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* D_∥/D₀ for a sphere translating parallel to a plane wall, centre at h:
|
|
85
|
-
* 1 − (9/16)ξ + (1/8)ξ³ − (45/256)ξ⁴ − (1/16)ξ⁵, ξ = a/h (Faxén 1923, method of
|
|
86
|
-
* reflections, as quoted in Happel & Brenner 1965, Low Reynolds Number
|
|
87
|
-
* Hydrodynamics, ch. 7). A series in a/h, truncated:
|
|
88
|
-
* its error is not bounded here, and near contact it misses the logarithmic
|
|
89
|
-
* lubrication divergence of the drag.
|
|
90
|
-
* @internal
|
|
91
|
-
*/
|
|
92
|
-
export function faxenParallel(aOverH) {
|
|
93
|
-
const x = aOverH;
|
|
94
|
-
return 1 - (9 / 16) * x + (1 / 8) * x ** 3 - (45 / 256) * x ** 4 - (1 / 16) * x ** 5;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* λ = F/(6πηaU) for a sphere approaching a plane wall head-on, centre at h > a,
|
|
98
|
-
* exact in Stokes flow (Brenner 1961, Chem. Eng. Sci. 16, 242, bispherical coordinates):
|
|
99
|
-
* λ = (4/3) sinh α Σₙ n(n+1)/((2n−1)(2n+3)) · [(2 sinh(2n+1)α + (2n+1) sinh 2α) /
|
|
100
|
-
* (4 sinh²(n+½)α − (2n+1)² sinh²α) − 1], cosh α = h/a. D_⊥ = D₀/λ.
|
|
101
|
-
*
|
|
102
|
-
* The bracket is rewritten over 4 sinh²(n+½)α so that no sinh overflows; its
|
|
103
|
-
* terms fall as e^{−(2n+1)α}, so near contact (α → 0) the sum needs ~40/α terms,
|
|
104
|
-
* and the low-n denominators lose ~α⁻² of relative precision to cancellation.
|
|
105
|
-
* Limits: λ → 1 + (9/8)(a/h) far away (Lorentz 1907); λ → a/δ + (1/5) ln(a/δ) +
|
|
106
|
-
* 0.971 as the gap δ = h − a → 0 (Cox & Brenner 1967, Chem. Eng. Sci. 22, 1753).
|
|
107
|
-
* @throws Error if h/a ≤ 1.
|
|
108
|
-
* @internal
|
|
109
|
-
*/
|
|
110
|
-
export function brennerPerpendicular(hOverA) {
|
|
111
|
-
if (!(hOverA > 1))
|
|
112
|
-
throw new Error(`brennerPerpendicular: need h/a > 1 (got ${hOverA})`);
|
|
113
|
-
const al = Math.acosh(hOverA);
|
|
114
|
-
const s = Math.sinh(al);
|
|
115
|
-
const s2a = Math.sinh(2 * al);
|
|
116
|
-
let sum = 0;
|
|
117
|
-
for (let n = 1;; n++) {
|
|
118
|
-
const x = (n + 0.5) * al;
|
|
119
|
-
const k = 2 * n + 1;
|
|
120
|
-
const inv4Sinh2 = Math.exp(-2 * x) / Math.expm1(-2 * x) ** 2;
|
|
121
|
-
const cothMinus1 = 2 / Math.expm1(2 * x);
|
|
122
|
-
const bracket = (cothMinus1 + k * s2a * inv4Sinh2 + k * k * s * s * inv4Sinh2) / (1 - k * k * s * s * inv4Sinh2);
|
|
123
|
-
const term = ((n * (n + 1)) / ((2 * n - 1) * (2 * n + 3))) * bracket;
|
|
124
|
-
sum += term;
|
|
125
|
-
if (term < 1e-17 * sum)
|
|
126
|
-
break;
|
|
127
|
-
if (n > 1e7)
|
|
128
|
-
throw new Error(`brennerPerpendicular: no convergence at h/a = ${hOverA}`);
|
|
129
|
-
}
|
|
130
|
-
return (4 / 3) * s * sum;
|
|
131
|
-
}
|
|
132
|
-
export const BROWNIAN_SPHERE_CASE = {
|
|
133
|
-
id: ID,
|
|
134
|
-
title: 'Brownian sphere in a fluid (particle geometry, fluid conditions)',
|
|
135
|
-
parameters: [
|
|
136
|
-
{ key: 'T_K', quantity: 'temperature', symbol: 'T', unit: 'K', meaning: 'absolute temperature of the fluid, > 0 K', temperature: 'absolute' },
|
|
137
|
-
{ key: 'eta_Pa_s', quantity: 'dynamic viscosity', symbol: 'η', unit: 'Pa*s', meaning: 'viscosity of the fluid at T (water at 20 °C ≈ 1.0e-3 Pa·s), > 0' },
|
|
138
|
-
{
|
|
139
|
-
key: 'a_m',
|
|
140
|
-
quantity: 'particle radius',
|
|
141
|
-
symbol: 'a',
|
|
142
|
-
unit: 'm',
|
|
143
|
-
meaning: 'hydrodynamic radius of the sphere, > 0',
|
|
144
|
-
geometry: 'radius',
|
|
145
|
-
alternates: [{ key: 'diameter_m', meaning: 'the diameter 2a of the sphere', toKey: 0.5 }],
|
|
146
|
-
},
|
|
147
|
-
{ key: 'rho_p_kg_per_m3', quantity: 'particle density', symbol: 'ρ_p', unit: 'kg/m^3', meaning: 'mass density of the sphere (silica ≈ 2000), > 0' },
|
|
148
|
-
{ key: 'rho_f_kg_per_m3', quantity: 'fluid density', symbol: 'ρ_f', unit: 'kg/m^3', meaning: 'mass density of the fluid (water ≈ 998), > 0' },
|
|
149
|
-
{ key: 't_s', quantity: 'lag time', symbol: 't', unit: 's', meaning: 'the time over which the displacement is measured, > 0' },
|
|
150
|
-
{ key: 'd', quantity: 'tracked dimensions', symbol: 'd', unit: '', meaning: 'number of Cartesian axes tracked: 1, 2 (a microscope image plane, horizontal) or 3' },
|
|
151
|
-
{
|
|
152
|
-
key: 'h_m',
|
|
153
|
-
quantity: 'distance to a wall',
|
|
154
|
-
symbol: 'h',
|
|
155
|
-
unit: 'm',
|
|
156
|
-
meaning: "distance from the sphere's centre to one plane horizontal wall (a coverslip), > a; leave out when no wall is within many radii",
|
|
157
|
-
geometry: 'separation',
|
|
158
|
-
optional: true,
|
|
159
|
-
},
|
|
160
|
-
],
|
|
161
|
-
governing: {
|
|
162
|
-
parent: [
|
|
163
|
-
'm dv/dt = −γ v + ξ(t), ⟨ξ_i(t) ξ_j(t′)⟩ = 2γ k_BT δ_ij δ(t − t′) (Langevin, a 3-vector equation; model-langevin)',
|
|
164
|
-
'η ∇²u = ∇p, ∇·u = 0, u = v on the sphere (no slip), u → 0 far away (Stokes creeping flow, a field; model-stokes-drag) ⇒ γ = 6πηa',
|
|
165
|
-
'm dv/dt = −γ v − (m_f/2) dv/dt − 6a²√(πηρ_f) ∫_{−∞}^t v′(s)/√(t − s) ds + ξ(t), ξ coloured by the same kernel ' +
|
|
166
|
-
'(unsteady Stokes flow: added mass and the Basset memory force; Hinch 1975)',
|
|
167
|
-
],
|
|
168
|
-
scalar: [
|
|
169
|
-
'D = k_BT/(6πηa) (Stokes–Einstein; ab-stokes-einstein)',
|
|
170
|
-
'⟨|Δr|²⟩ = 2 d D t over the d tracked axes',
|
|
171
|
-
],
|
|
172
|
-
distinction: 'The parents are a vector stochastic equation for the velocity and a field equation for the flow around the sphere; ' +
|
|
173
|
-
'the scalar keeps one isotropic number D and a mean-square displacement linear in t. Dropped: the velocity as a ' +
|
|
174
|
-
'state (the ballistic regime t ≲ τ_p), the flow field (and with it the hydrodynamic memory for t ≲ τ_f), the shape ' +
|
|
175
|
-
'beyond the radius, and every anisotropy.',
|
|
176
|
-
},
|
|
177
|
-
observable: 'MSD_m2',
|
|
178
|
-
outputs: [
|
|
179
|
-
{ key: 'gamma_kg_per_s', symbol: 'γ', unit: 'kg/s', meaning: 'Stokes drag coefficient 6πηa' },
|
|
180
|
-
{ key: 'D_m2_per_s', symbol: 'D', unit: 'm^2/s', meaning: 'diffusion coefficient k_BT/(6πηa)' },
|
|
181
|
-
{ key: 'MSD_m2', symbol: '⟨|Δr|²⟩', unit: 'm^2', meaning: 'mean-square displacement 2dDt over the tracked axes' },
|
|
182
|
-
{ key: 'rms_displacement_m', symbol: '√⟨|Δr|²⟩', unit: 'm', meaning: 'root-mean-square displacement over the tracked axes' },
|
|
183
|
-
{ key: 'm_kg', symbol: 'm', unit: 'kg', meaning: 'particle mass (4/3)πa³ρ_p' },
|
|
184
|
-
{ key: 'tau_p_s', symbol: 'τ_p', unit: 's', meaning: 'momentum relaxation time (m + m_f/2)/γ, with the displaced-fluid added mass m_f/2' },
|
|
185
|
-
{ key: 'tau_f_s', symbol: 'τ_f', unit: 's', meaning: 'vorticity diffusion time ρ_f a²/η over one radius (hydrodynamic memory)' },
|
|
186
|
-
{ key: 'v_sed_m_per_s', symbol: 'v_s', unit: 'm/s', meaning: 'Stokes sedimentation speed (2/9)(ρ_p − ρ_f) g a²/η; negative means the sphere rises' },
|
|
187
|
-
{ key: 'Re', symbol: 'Re', unit: '', meaning: 'ρ_f a max(√(k_BT/m), |v_s|)/η — radius-based; a diameter-based Re is twice this' },
|
|
188
|
-
{ key: 'MSD_langevin_m2', symbol: '⟨|Δr|²⟩_L', unit: 'm^2', meaning: 'the Langevin parent: 2dD[t − τ(1 − e^{−t/τ})], τ = m/γ (bare mass)' },
|
|
189
|
-
{ key: 'langevin_deviation', symbol: 'MSD/MSD_L − 1', unit: '', meaning: signedRelativeDifference('diffusive MSD', 'Langevin one') },
|
|
190
|
-
{
|
|
191
|
-
key: 'MSD_hydro_m2',
|
|
192
|
-
symbol: '⟨|Δr|²⟩_H',
|
|
193
|
-
unit: 'm^2',
|
|
194
|
-
meaning: 'the Langevin–Basset parent: added mass and hydrodynamic memory, unbounded incompressible fluid (branch-cut integral of its Laplace-domain VACF)',
|
|
195
|
-
},
|
|
196
|
-
{ key: 'hydro_correction_m2', symbol: '⟨|Δr|²⟩_H − ⟨|Δr|²⟩', unit: 'm^2', meaning: 'what inertia and memory change in the MSD at t; ≈ −4dD√(τ_f t/π) at t ≫ τ_f' },
|
|
197
|
-
{ key: 'hydro_deviation', symbol: 'MSD/MSD_H − 1', unit: '', meaning: signedRelativeDifference('diffusive MSD', 'Langevin–Basset one') },
|
|
198
|
-
{
|
|
199
|
-
key: 'memory_correction',
|
|
200
|
-
symbol: 'MSD_H/MSD_OU − 1',
|
|
201
|
-
unit: '',
|
|
202
|
-
meaning: "the memory force's own share: MSD_H against the Ornstein–Uhlenbeck MSD with the same τ_p (added mass, no memory)",
|
|
203
|
-
},
|
|
204
|
-
{ key: 'D_parallel_m2_per_s', symbol: 'D_∥', unit: 'm^2/s', meaning: 'D beside the wall, parallel to it: D·(Faxén series in a/h); not defined without h_m' },
|
|
205
|
-
{ key: 'D_perp_m2_per_s', symbol: 'D_⊥', unit: 'm^2/s', meaning: 'D normal to the wall: D/λ, λ from Brenner\'s exact series; not defined without h_m' },
|
|
206
|
-
{ key: 'MSD_wall_m2', symbol: '⟨|Δr|²⟩_w', unit: 'm^2', meaning: '2t(d_∥ D_∥ + d_⊥ D_⊥): the tracked horizontal axes parallel to the wall, a third one normal to it; not defined without h_m' },
|
|
207
|
-
{ key: 'wall_deviation', symbol: 'MSD/MSD_w − 1', unit: '', meaning: signedRelativeDifference('unbounded-fluid MSD', 'wall-corrected one', 'not defined without h_m') },
|
|
208
|
-
],
|
|
209
|
-
comparison: {
|
|
210
|
-
reference: 'the parent Langevin model (bare mass, white noise; it has neither added mass nor hydrodynamic memory)',
|
|
211
|
-
valueKey: 'MSD_m2',
|
|
212
|
-
referenceKey: 'MSD_langevin_m2',
|
|
213
|
-
deviationKey: 'langevin_deviation',
|
|
214
|
-
method: 'closed form of the Ornstein–Uhlenbeck MSD, velocities starting in equilibrium',
|
|
215
|
-
},
|
|
216
|
-
conditions: [
|
|
217
|
-
'a rigid sphere released at r = 0; its displacement density starts as δ(r) and spreads as a Gaussian of variance 2Dt per axis',
|
|
218
|
-
'no-slip boundary on the sphere; the fluid is at rest far from it (no imposed flow; no wall within many radii, or with h_m one plane no-slip wall)',
|
|
219
|
-
'fluid in thermal equilibrium at T; one isolated particle (dilute: no hydrodynamic interaction with others)',
|
|
220
|
-
],
|
|
221
|
-
notIncluded: [
|
|
222
|
-
'walls other than one plane: a second wall, a channel or a curved surface; and, with h_m, the spread of heights the sphere samples (D_∥, D_⊥ are taken at h)',
|
|
223
|
-
'localization error and camera motion blur of the tracking, which offset and bias the measured MSD',
|
|
224
|
-
'fluid compressibility: the incompressible memory kernel gives ⟨v²⟩ = k_BT/(m + m_f/2) at t = 0; sound restores k_BT/m over a/c_s (Zwanzig & Bixon 1970)',
|
|
225
|
-
'the memory force near a wall: MSD_hydro is the unbounded-fluid result, and a wall within √(νt) changes the memory tail',
|
|
226
|
-
'the rotational diffusion of the sphere, and any non-spherical shape',
|
|
227
|
-
],
|
|
228
|
-
measurement: [
|
|
229
|
-
'single-particle tracking: fit ⟨|Δr|²⟩(t) over the d tracked axes, slope 2dD; compare D and MSD_m2 at the chosen lag ' +
|
|
230
|
-
'(with N independent displacements the relative scatter of the MSD is ≈ √(2/(dN)))',
|
|
231
|
-
'subtract the static localization offset 2dσ_loc² (measured on an immobilized particle) before comparing',
|
|
232
|
-
'dynamic light scattering: the field autocorrelation decays at Γ = D q², an independent route to the same D',
|
|
233
|
-
],
|
|
234
|
-
links: [
|
|
235
|
-
{ id: 'ab-stokes-einstein', role: 'the derivation D = k_BT/(6πηa) with its regime Re ≤ 0.1, m/(γt) ≤ 0.01 (`upt atlas ab-stokes-einstein`)' },
|
|
236
|
-
{ id: 'ab-langevin-diffusion', role: 'the overdamped coarse-graining D = k_BT/γ and its ballistic counterexample' },
|
|
237
|
-
{ id: 'model-stokes-drag', role: 'the creeping-flow drag γ = 6πηa' },
|
|
238
|
-
{ id: 'CE-stokes-einstein', role: 'encoded only up to its dimensionless 6π (scalar-up-to-constant); the 6π here is from Stokes drag' },
|
|
239
|
-
],
|
|
240
|
-
examples: {
|
|
241
|
-
valid: {
|
|
242
|
-
args: ['T_K=293.15', 'eta_Pa_s=1e-3', 'a_m=1um', 'rho_p_kg_per_m3=2000', 'rho_f_kg_per_m3=998', 't_s=1', 'd=2', 'h_m=100um'],
|
|
243
|
-
note: 'a 1 µm-radius silica sphere in water at 20 °C, 100 µm above the coverslip, tracked in the image plane over 1 s',
|
|
244
|
-
fails: [],
|
|
245
|
-
},
|
|
246
|
-
failures: [
|
|
247
|
-
{
|
|
248
|
-
args: ['T_K=293.15', 'eta_Pa_s=1e-3', 'a_m=1um', 'rho_p_kg_per_m3=2000', 'rho_f_kg_per_m3=998', 't_s=1us', 'd=2'],
|
|
249
|
-
note: 'the same sphere over 1 µs: still ballistic (t ≈ 2τ_p) and inside the hydrodynamic memory time',
|
|
250
|
-
fails: ['overdamped', 'memory'],
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
args: ['T_K=293.15', 'eta_Pa_s=1e-3', 'a_m=50um', 'rho_p_kg_per_m3=7800', 'rho_f_kg_per_m3=998', 't_s=100', 'd=3'],
|
|
254
|
-
note: 'a 50 µm-radius steel sphere tracked in 3-D: it sinks at ≈ 3.7 cm/s, Re ≈ 1.9, and the drift swamps diffusion',
|
|
255
|
-
fails: ['creeping-flow', 'drift'],
|
|
256
|
-
},
|
|
257
|
-
{
|
|
258
|
-
args: ['T_K=293.15', 'eta_Pa_s=1e-3', 'a_m=1um', 'rho_p_kg_per_m3=1050', 'rho_f_kg_per_m3=998', 't_s=50ms', 'd=2', 'h_m=3um'],
|
|
259
|
-
note: 'a 1 µm-radius polystyrene sphere 3 µm (centre) above the coverslip: the wall slows D_∥ by ≈ 19%',
|
|
260
|
-
fails: ['wall'],
|
|
261
|
-
},
|
|
262
|
-
{
|
|
263
|
-
args: ['T_K=293.15', 'eta_Pa_s=1e-3', 'a_m=1um', 'rho_p_kg_per_m3=1050', 'rho_f_kg_per_m3=998', 't_s=50ms', 'd=2', 'h_m=1.2um'],
|
|
264
|
-
note: 'the same sphere with a 0.2 µm gap: past the range of the Faxén series, and its height changes by more than the gap allows over t',
|
|
265
|
-
fails: ['faxen-range', 'wall', 'wall-static'],
|
|
266
|
-
},
|
|
267
|
-
],
|
|
268
|
-
},
|
|
269
|
-
/** Evaluate the Stokes-Einstein MSD and regime checks for the supplied Brownian-sphere inputs. */
|
|
270
|
-
regimeAt(inputs, outputs) {
|
|
271
|
-
const re = outputs.Re;
|
|
272
|
-
const m = outputs.m_kg;
|
|
273
|
-
const gamma = outputs.gamma_kg_per_s;
|
|
274
|
-
const t = inputs.t_s;
|
|
275
|
-
if (re == null || m == null || gamma == null || t == null)
|
|
276
|
-
return '';
|
|
277
|
-
return `upt regime diffusion --at Re=${re} m=${m} gamma=${gamma} t=${t}`;
|
|
278
|
-
},
|
|
279
|
-
/** Compute the Stokes-Einstein diffusion, MSD and regime checks for one set of Brownian-sphere inputs. */
|
|
280
|
-
run(i) {
|
|
281
|
-
requirePositive(ID, i, ['T_K', 'eta_Pa_s', 'a_m', 'rho_p_kg_per_m3', 'rho_f_kg_per_m3', 't_s']);
|
|
282
|
-
const { T_K: T, eta_Pa_s: eta, a_m: a, rho_p_kg_per_m3: rhoP, rho_f_kg_per_m3: rhoF, t_s: t, d } = i;
|
|
283
|
-
if (d !== 1 && d !== 2 && d !== 3)
|
|
284
|
-
throw new Error(`${ID}: d must be 1, 2 or 3 (got ${d})`);
|
|
285
|
-
const kT = K_B_SI * T;
|
|
286
|
-
const gamma = 6 * Math.PI * eta * a;
|
|
287
|
-
const D = kT / gamma;
|
|
288
|
-
const msd = 2 * d * D * t;
|
|
289
|
-
const volume = (4 / 3) * Math.PI * a ** 3;
|
|
290
|
-
const m = volume * rhoP;
|
|
291
|
-
const tauP = (m + 0.5 * volume * rhoF) / gamma;
|
|
292
|
-
const tauF = (rhoF * a * a) / eta;
|
|
293
|
-
const vSed = ((2 / 9) * (rhoP - rhoF) * G_STANDARD * a * a) / eta;
|
|
294
|
-
const re = (rhoF * a * Math.max(Math.sqrt(kT / m), Math.abs(vSed))) / eta;
|
|
295
|
-
const tauBare = m / gamma;
|
|
296
|
-
const msdLangevin = 2 * d * D * tauBare * ballisticDeficit(t / tauBare);
|
|
297
|
-
const msdHydro = msd * hydrodynamicMsdRatio(tauP / t, tauF / t);
|
|
298
|
-
const msdAddedMass = 2 * d * D * tauP * ballisticDeficit(t / tauP);
|
|
299
|
-
const memory = msdHydro / msdAddedMass - 1;
|
|
300
|
-
const checks = [
|
|
301
|
-
check('creeping-flow', 'creeping flow around the sphere, Re ≪ 1', 'ρ_f a max(√(k_BT/m), |v_s|)/η', re, '<=', MAX_RE, "the threshold ab-stokes-einstein states: a chosen machine form of Re ≪ 1"),
|
|
302
|
-
check('overdamped', 'overdamped times t ≫ τ_p', '(m + m_f/2)/(γ t)', tauP / t, '<=', MAX_TAU_P_RATIO, "ab-stokes-einstein's m/(γt) ≤ 0.01, with the added mass m_f/2 included (stricter)"),
|
|
303
|
-
check('memory', 'past the hydrodynamic memory, t ≫ τ_f = ρ_f a²/η', '|MSD_H/MSD_OU − 1|', Math.abs(memory), '<=', MAX_MEMORY_CORRECTION, 'chosen threshold: the Basset memory changes the MSD by ≤ 1% at t (computed, not estimated; ≈ 2√(τ_f/(πt)) at t ≫ τ_f)'),
|
|
304
|
-
];
|
|
305
|
-
const unchecked = ['the particle is a rigid sphere and a is its hydrodynamic radius (a coating or a shell changes it)'];
|
|
306
|
-
let wall = null;
|
|
307
|
-
if (i.h_m !== undefined) {
|
|
308
|
-
const h = i.h_m;
|
|
309
|
-
if (!Number.isFinite(h) || !(h > a))
|
|
310
|
-
throw new Error(`${ID}: h_m must be a finite distance > a_m, centre to wall (got ${h})`);
|
|
311
|
-
const faxen = faxenParallel(a / h);
|
|
312
|
-
const lambda = brennerPerpendicular(h / a);
|
|
313
|
-
const dPar = D * faxen;
|
|
314
|
-
const dPerp = D / lambda;
|
|
315
|
-
const msdWall = 2 * t * (Math.min(d, 2) * dPar + (d === 3 ? dPerp : 0));
|
|
316
|
-
wall = { dPar, dPerp, msdWall };
|
|
317
|
-
const excursion = Math.sqrt(2 * dPerp * t) + (Math.abs(vSed) * t) / lambda;
|
|
318
|
-
checks.push(check('faxen-range', 'the Faxén series in a/h holds for D_∥', '(a/h)⁵/16 ÷ (D_∥/D)', (a / h) ** 5 / 16 / faxen, '<=', MAX_FAXEN_LAST_TERM, 'chosen threshold: the last retained term is ≤ 1% of the series — a size estimate of the truncation, not a bound; D_⊥ (Brenner) is exact at any h > a'), check('wall', 'the wall correction to the tracked MSD is negligible', '|MSD/MSD_w − 1|', Math.abs(msd / msdWall - 1), '<=', MAX_WALL_CORRECTION, 'chosen threshold: the unbounded-fluid D is then within 1% for the tracked axes; otherwise read MSD_wall_m2'), check('wall-static', 'the height barely changes over t', '(√(2 D_⊥ t) + |v_s| t/λ)/(h − a)', excursion / (h - a), '<=', MAX_WALL_EXCURSION, 'chosen threshold: diffusion plus wall-slowed sedimentation normal to the wall move the sphere by ≤ 10% of the gap, so D_∥, D_⊥ taken at h hold over t'));
|
|
319
|
-
unchecked.push('the wall is plane, rigid, no-slip and horizontal, and the gap h − a is many molecular sizes and roughness heights (no surface forces, no lubrication-scale slip)');
|
|
320
|
-
}
|
|
321
|
-
if (d === 3) {
|
|
322
|
-
checks.push(check('drift', 'sedimentation drift negligible along gravity over t', '(v_s t)²/(2 D t)', (vSed * t) ** 2 / (2 * D * t), '<=', MAX_DRIFT_RATIO, 'chosen threshold: the vertical MSD then carries ≤ 1% from the deterministic drift'));
|
|
323
|
-
}
|
|
324
|
-
else {
|
|
325
|
-
unchecked.push(`the ${d === 1 ? 'tracked axis is' : 'tracked axes are'} horizontal, so sedimentation (${Number(Math.abs(vSed * t).toPrecision(3))} m over t) moves the sphere out of the plane but not along ${d === 1 ? 'it' : 'them'}`);
|
|
326
|
-
}
|
|
327
|
-
return {
|
|
328
|
-
outputs: {
|
|
329
|
-
gamma_kg_per_s: gamma,
|
|
330
|
-
D_m2_per_s: D,
|
|
331
|
-
MSD_m2: msd,
|
|
332
|
-
rms_displacement_m: Math.sqrt(msd),
|
|
333
|
-
m_kg: m,
|
|
334
|
-
tau_p_s: tauP,
|
|
335
|
-
tau_f_s: tauF,
|
|
336
|
-
v_sed_m_per_s: vSed,
|
|
337
|
-
Re: re,
|
|
338
|
-
MSD_langevin_m2: msdLangevin,
|
|
339
|
-
langevin_deviation: msd / msdLangevin - 1,
|
|
340
|
-
MSD_hydro_m2: msdHydro,
|
|
341
|
-
hydro_correction_m2: msdHydro - msd,
|
|
342
|
-
hydro_deviation: msd / msdHydro - 1,
|
|
343
|
-
memory_correction: memory,
|
|
344
|
-
D_parallel_m2_per_s: wall?.dPar ?? null,
|
|
345
|
-
D_perp_m2_per_s: wall?.dPerp ?? null,
|
|
346
|
-
MSD_wall_m2: wall?.msdWall ?? null,
|
|
347
|
-
wall_deviation: wall === null ? null : msd / wall.msdWall - 1,
|
|
348
|
-
},
|
|
349
|
-
checks,
|
|
350
|
-
unchecked,
|
|
351
|
-
};
|
|
352
|
-
},
|
|
353
|
-
};
|
|
354
|
-
//# sourceMappingURL=brownian-sphere.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"brownian-sphere.js","sourceRoot":"","sources":["../../src/cases/brownian-sphere.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Applied case: a Brownian sphere tracked in a fluid — the diffusion\n * coefficient and mean-square displacement from the particle's radius and the\n * fluid's viscosity and temperature, with the regime checks that make the\n * Stokes–Einstein scalar applicable.\n *\n * The atlas bridge `ab-stokes-einstein` derives D = k_BT/(6πηa) from the\n * Langevin model and Stokes drag, with Re ≤ 0.1 and m/(γt) ≤ 0.01. This case\n * evaluates it for a named geometry (radius, or diameter through an exact\n * alternate) and fluid, computes Re from the particle's own velocity scales,\n * includes the displaced-fluid added mass in the momentum relaxation time, and\n * evaluates the hydrodynamic memory (the Basset force) that the bridge does not\n * check: the full MSD with fluid inertia, and the correction it makes at t.\n * Given a distance to a plane wall, it applies the wall's drag corrections to D.\n *\n * `CE-stokes-einstein` is encoded only up to its 6π (scalar-up-to-constant);\n * the 6π here comes from Stokes drag, not from that entry.\n *\n * @module cases/brownian-sphere\n */\nimport { K_B_SI } from '../core/constants.js';\nimport { adaptiveSimpson } from './quadrature.js';\nimport { check, requirePositive, signedRelativeDifference, type AppliedCase } from './types.js';\n\nconst ID = 'case-brownian-sphere';\n\n/** Standard gravity (CGPM 1901), for the sedimentation speed. @internal */\nexport const G_STANDARD = 9.80665;\n\n/** The thresholds `ab-stokes-einstein` states: Re ≤ 0.1 and τ_p/t ≤ 0.01. @internal */\nexport const MAX_RE = 0.1;\nexport const MAX_TAU_P_RATIO = 0.01;\n\n/** Ceiling on the memory term's own share of the MSD, |MSD_H/MSD_OU − 1|. @internal */\nexport const MAX_MEMORY_CORRECTION = 0.01;\n\n/** (v_s t)²/(2Dt) ceiling along gravity when the vertical axis is tracked. @internal */\nexport const MAX_DRIFT_RATIO = 0.01;\n\n/** Ceiling on |MSD/MSD_wall − 1|: the wall's correction to the tracked MSD is negligible. @internal */\nexport const MAX_WALL_CORRECTION = 0.01;\n\n/** Ceiling on the last retained Faxén term (a/h)⁵/16 over the series' value. @internal */\nexport const MAX_FAXEN_LAST_TERM = 0.01;\n\n/** Ceiling on √(2 D_⊥ t)/(h − a): the height, and so D_∥ and D_⊥, barely change over t. @internal */\nexport const MAX_WALL_EXCURSION = 0.1;\n\n/** t − τ(1 − e^{−t/τ}) in units of τ, i.e. x − (1 − e^{−x}), without its cancellation at small x. @internal */\nexport function ballisticDeficit(x: number): number {\n return x < 1e-3 ? x * x * (1 / 2 - x / 6 + (x * x) / 24 - (x * x * x) / 120) : x + Math.expm1(-x);\n}\n\n/**\n * MSD/(2Dt) per axis for a sphere with fluid inertia: added mass and the Basset\n * memory force, in an unbounded incompressible fluid, velocities in equilibrium.\n *\n * The velocity autocorrelation has the Laplace transform\n * Ĉ(s) = k_BT/(M s + γ(1 + √(s τ_f))), M = m + m_f/2, from the frequency-dependent\n * Stokes drag γ(1 + √(sτ_f)) + s m_f/2 (Stokes 1851; the Basset 1888 term is its\n * √s part; Hinch 1975, J. Fluid Mech. 72, 499; Clercx & Schram 1992, Phys. Rev.\n * A 46, 1942). Its poles in √s both have negative real part, so Ĉ has none on the\n * principal sheet and C(t) is the branch-cut integral\n * C(t) = (k_BT/πγ) ∫₀^∞ e^{−ut} √(τ_f u)/((1 − τ_p u)² + τ_f u) du, τ_p = M/γ.\n * Then ⟨Δx²⟩ = 2∫₀ᵗ (t − s) C(s) ds, and with v = ut,\n * MSD/(2Dt) = (1/π) ∫₀^∞ √(βv) (v − 1 + e^{−v}) / (v² ((1 − αv)² + βv)) dv, α = τ_p/t, β = τ_f/t,\n * integrated here over ln v by adaptive Simpson, split at v = 1, 1/β and around\n * the near-resonance at v = 1/α (width √(β/α) in ln v; β/α ≤ 9 for any densities).\n *\n * Limits: → 1 − 2√(τ_f/(πt)) + (τ_f − τ_p)/t for t ≫ τ_p, τ_f (expanding Ĉ in √s),\n * whose second derivative is the VACF tail k_BT/(12 ρ_f (πνt)^{3/2}); → t/(2τ_p)\n * for t ≪ τ_p, i.e. ⟨Δx²⟩ → (k_BT/M) t². Requires β > 0: without memory the\n * poles reach the principal sheet and this integral no longer holds them.\n * @internal\n */\nexport function hydrodynamicMsdRatio(alpha: number, beta: number): number {\n const f = (y: number) => {\n const v = Math.exp(y);\n const lag = 1 - alpha * v;\n return (Math.sqrt(beta * v) * (ballisticDeficit(v) / v)) / (lag * lag + beta * v);\n };\n const peak = -Math.log(alpha);\n const w = Math.min(1, Math.sqrt(beta / alpha));\n const points = [0, -Math.log(beta), peak, ...[1, 2, 4].flatMap((k) => [peak - k * w, peak + k * w])].sort((x, y) => x - y);\n // The integrand falls as v^{3/2} below and v^{−3/2} above the breakpoints: e^{−75} at ±50 in ln v.\n const edges = [points[0]! - 50, ...points, points[points.length - 1]! + 50];\n let sum = 0;\n for (let k = 1; k < edges.length; k++) if (edges[k]! > edges[k - 1]!) sum += adaptiveSimpson(f, edges[k - 1]!, edges[k]!, 1e-12);\n return sum / Math.PI;\n}\n\n/**\n * D_∥/D₀ for a sphere translating parallel to a plane wall, centre at h:\n * 1 − (9/16)ξ + (1/8)ξ³ − (45/256)ξ⁴ − (1/16)ξ⁵, ξ = a/h (Faxén 1923, method of\n * reflections, as quoted in Happel & Brenner 1965, Low Reynolds Number\n * Hydrodynamics, ch. 7). A series in a/h, truncated:\n * its error is not bounded here, and near contact it misses the logarithmic\n * lubrication divergence of the drag.\n * @internal\n */\nexport function faxenParallel(aOverH: number): number {\n const x = aOverH;\n return 1 - (9 / 16) * x + (1 / 8) * x ** 3 - (45 / 256) * x ** 4 - (1 / 16) * x ** 5;\n}\n\n/**\n * λ = F/(6πηaU) for a sphere approaching a plane wall head-on, centre at h > a,\n * exact in Stokes flow (Brenner 1961, Chem. Eng. Sci. 16, 242, bispherical coordinates):\n * λ = (4/3) sinh α Σₙ n(n+1)/((2n−1)(2n+3)) · [(2 sinh(2n+1)α + (2n+1) sinh 2α) /\n * (4 sinh²(n+½)α − (2n+1)² sinh²α) − 1], cosh α = h/a. D_⊥ = D₀/λ.\n *\n * The bracket is rewritten over 4 sinh²(n+½)α so that no sinh overflows; its\n * terms fall as e^{−(2n+1)α}, so near contact (α → 0) the sum needs ~40/α terms,\n * and the low-n denominators lose ~α⁻² of relative precision to cancellation.\n * Limits: λ → 1 + (9/8)(a/h) far away (Lorentz 1907); λ → a/δ + (1/5) ln(a/δ) +\n * 0.971 as the gap δ = h − a → 0 (Cox & Brenner 1967, Chem. Eng. Sci. 22, 1753).\n * @throws Error if h/a ≤ 1.\n * @internal\n */\nexport function brennerPerpendicular(hOverA: number): number {\n if (!(hOverA > 1)) throw new Error(`brennerPerpendicular: need h/a > 1 (got ${hOverA})`);\n const al = Math.acosh(hOverA);\n const s = Math.sinh(al);\n const s2a = Math.sinh(2 * al);\n let sum = 0;\n for (let n = 1; ; n++) {\n const x = (n + 0.5) * al;\n const k = 2 * n + 1;\n const inv4Sinh2 = Math.exp(-2 * x) / Math.expm1(-2 * x) ** 2;\n const cothMinus1 = 2 / Math.expm1(2 * x);\n const bracket = (cothMinus1 + k * s2a * inv4Sinh2 + k * k * s * s * inv4Sinh2) / (1 - k * k * s * s * inv4Sinh2);\n const term = ((n * (n + 1)) / ((2 * n - 1) * (2 * n + 3))) * bracket;\n sum += term;\n if (term < 1e-17 * sum) break;\n if (n > 1e7) throw new Error(`brennerPerpendicular: no convergence at h/a = ${hOverA}`);\n }\n return (4 / 3) * s * sum;\n}\n\nexport const BROWNIAN_SPHERE_CASE: AppliedCase = {\n id: ID,\n title: 'Brownian sphere in a fluid (particle geometry, fluid conditions)',\n parameters: [\n { key: 'T_K', quantity: 'temperature', symbol: 'T', unit: 'K', meaning: 'absolute temperature of the fluid, > 0 K', temperature: 'absolute' },\n { key: 'eta_Pa_s', quantity: 'dynamic viscosity', symbol: 'η', unit: 'Pa*s', meaning: 'viscosity of the fluid at T (water at 20 °C ≈ 1.0e-3 Pa·s), > 0' },\n {\n key: 'a_m',\n quantity: 'particle radius',\n symbol: 'a',\n unit: 'm',\n meaning: 'hydrodynamic radius of the sphere, > 0',\n geometry: 'radius',\n alternates: [{ key: 'diameter_m', meaning: 'the diameter 2a of the sphere', toKey: 0.5 }],\n },\n { key: 'rho_p_kg_per_m3', quantity: 'particle density', symbol: 'ρ_p', unit: 'kg/m^3', meaning: 'mass density of the sphere (silica ≈ 2000), > 0' },\n { key: 'rho_f_kg_per_m3', quantity: 'fluid density', symbol: 'ρ_f', unit: 'kg/m^3', meaning: 'mass density of the fluid (water ≈ 998), > 0' },\n { key: 't_s', quantity: 'lag time', symbol: 't', unit: 's', meaning: 'the time over which the displacement is measured, > 0' },\n { key: 'd', quantity: 'tracked dimensions', symbol: 'd', unit: '', meaning: 'number of Cartesian axes tracked: 1, 2 (a microscope image plane, horizontal) or 3' },\n {\n key: 'h_m',\n quantity: 'distance to a wall',\n symbol: 'h',\n unit: 'm',\n meaning: \"distance from the sphere's centre to one plane horizontal wall (a coverslip), > a; leave out when no wall is within many radii\",\n geometry: 'separation',\n optional: true,\n },\n ],\n governing: {\n parent: [\n 'm dv/dt = −γ v + ξ(t), ⟨ξ_i(t) ξ_j(t′)⟩ = 2γ k_BT δ_ij δ(t − t′) (Langevin, a 3-vector equation; model-langevin)',\n 'η ∇²u = ∇p, ∇·u = 0, u = v on the sphere (no slip), u → 0 far away (Stokes creeping flow, a field; model-stokes-drag) ⇒ γ = 6πηa',\n 'm dv/dt = −γ v − (m_f/2) dv/dt − 6a²√(πηρ_f) ∫_{−∞}^t v′(s)/√(t − s) ds + ξ(t), ξ coloured by the same kernel ' +\n '(unsteady Stokes flow: added mass and the Basset memory force; Hinch 1975)',\n ],\n scalar: [\n 'D = k_BT/(6πηa) (Stokes–Einstein; ab-stokes-einstein)',\n '⟨|Δr|²⟩ = 2 d D t over the d tracked axes',\n ],\n distinction:\n 'The parents are a vector stochastic equation for the velocity and a field equation for the flow around the sphere; ' +\n 'the scalar keeps one isotropic number D and a mean-square displacement linear in t. Dropped: the velocity as a ' +\n 'state (the ballistic regime t ≲ τ_p), the flow field (and with it the hydrodynamic memory for t ≲ τ_f), the shape ' +\n 'beyond the radius, and every anisotropy.',\n },\n observable: 'MSD_m2',\n outputs: [\n { key: 'gamma_kg_per_s', symbol: 'γ', unit: 'kg/s', meaning: 'Stokes drag coefficient 6πηa' },\n { key: 'D_m2_per_s', symbol: 'D', unit: 'm^2/s', meaning: 'diffusion coefficient k_BT/(6πηa)' },\n { key: 'MSD_m2', symbol: '⟨|Δr|²⟩', unit: 'm^2', meaning: 'mean-square displacement 2dDt over the tracked axes' },\n { key: 'rms_displacement_m', symbol: '√⟨|Δr|²⟩', unit: 'm', meaning: 'root-mean-square displacement over the tracked axes' },\n { key: 'm_kg', symbol: 'm', unit: 'kg', meaning: 'particle mass (4/3)πa³ρ_p' },\n { key: 'tau_p_s', symbol: 'τ_p', unit: 's', meaning: 'momentum relaxation time (m + m_f/2)/γ, with the displaced-fluid added mass m_f/2' },\n { key: 'tau_f_s', symbol: 'τ_f', unit: 's', meaning: 'vorticity diffusion time ρ_f a²/η over one radius (hydrodynamic memory)' },\n { key: 'v_sed_m_per_s', symbol: 'v_s', unit: 'm/s', meaning: 'Stokes sedimentation speed (2/9)(ρ_p − ρ_f) g a²/η; negative means the sphere rises' },\n { key: 'Re', symbol: 'Re', unit: '', meaning: 'ρ_f a max(√(k_BT/m), |v_s|)/η — radius-based; a diameter-based Re is twice this' },\n { key: 'MSD_langevin_m2', symbol: '⟨|Δr|²⟩_L', unit: 'm^2', meaning: 'the Langevin parent: 2dD[t − τ(1 − e^{−t/τ})], τ = m/γ (bare mass)' },\n { key: 'langevin_deviation', symbol: 'MSD/MSD_L − 1', unit: '', meaning: signedRelativeDifference('diffusive MSD', 'Langevin one') },\n {\n key: 'MSD_hydro_m2',\n symbol: '⟨|Δr|²⟩_H',\n unit: 'm^2',\n meaning: 'the Langevin–Basset parent: added mass and hydrodynamic memory, unbounded incompressible fluid (branch-cut integral of its Laplace-domain VACF)',\n },\n { key: 'hydro_correction_m2', symbol: '⟨|Δr|²⟩_H − ⟨|Δr|²⟩', unit: 'm^2', meaning: 'what inertia and memory change in the MSD at t; ≈ −4dD√(τ_f t/π) at t ≫ τ_f' },\n { key: 'hydro_deviation', symbol: 'MSD/MSD_H − 1', unit: '', meaning: signedRelativeDifference('diffusive MSD', 'Langevin–Basset one') },\n {\n key: 'memory_correction',\n symbol: 'MSD_H/MSD_OU − 1',\n unit: '',\n meaning: \"the memory force's own share: MSD_H against the Ornstein–Uhlenbeck MSD with the same τ_p (added mass, no memory)\",\n },\n { key: 'D_parallel_m2_per_s', symbol: 'D_∥', unit: 'm^2/s', meaning: 'D beside the wall, parallel to it: D·(Faxén series in a/h); not defined without h_m' },\n { key: 'D_perp_m2_per_s', symbol: 'D_⊥', unit: 'm^2/s', meaning: 'D normal to the wall: D/λ, λ from Brenner\\'s exact series; not defined without h_m' },\n { key: 'MSD_wall_m2', symbol: '⟨|Δr|²⟩_w', unit: 'm^2', meaning: '2t(d_∥ D_∥ + d_⊥ D_⊥): the tracked horizontal axes parallel to the wall, a third one normal to it; not defined without h_m' },\n { key: 'wall_deviation', symbol: 'MSD/MSD_w − 1', unit: '', meaning: signedRelativeDifference('unbounded-fluid MSD', 'wall-corrected one', 'not defined without h_m') },\n ],\n comparison: {\n reference: 'the parent Langevin model (bare mass, white noise; it has neither added mass nor hydrodynamic memory)',\n valueKey: 'MSD_m2',\n referenceKey: 'MSD_langevin_m2',\n deviationKey: 'langevin_deviation',\n method: 'closed form of the Ornstein–Uhlenbeck MSD, velocities starting in equilibrium',\n },\n conditions: [\n 'a rigid sphere released at r = 0; its displacement density starts as δ(r) and spreads as a Gaussian of variance 2Dt per axis',\n 'no-slip boundary on the sphere; the fluid is at rest far from it (no imposed flow; no wall within many radii, or with h_m one plane no-slip wall)',\n 'fluid in thermal equilibrium at T; one isolated particle (dilute: no hydrodynamic interaction with others)',\n ],\n notIncluded: [\n 'walls other than one plane: a second wall, a channel or a curved surface; and, with h_m, the spread of heights the sphere samples (D_∥, D_⊥ are taken at h)',\n 'localization error and camera motion blur of the tracking, which offset and bias the measured MSD',\n 'fluid compressibility: the incompressible memory kernel gives ⟨v²⟩ = k_BT/(m + m_f/2) at t = 0; sound restores k_BT/m over a/c_s (Zwanzig & Bixon 1970)',\n 'the memory force near a wall: MSD_hydro is the unbounded-fluid result, and a wall within √(νt) changes the memory tail',\n 'the rotational diffusion of the sphere, and any non-spherical shape',\n ],\n measurement: [\n 'single-particle tracking: fit ⟨|Δr|²⟩(t) over the d tracked axes, slope 2dD; compare D and MSD_m2 at the chosen lag ' +\n '(with N independent displacements the relative scatter of the MSD is ≈ √(2/(dN)))',\n 'subtract the static localization offset 2dσ_loc² (measured on an immobilized particle) before comparing',\n 'dynamic light scattering: the field autocorrelation decays at Γ = D q², an independent route to the same D',\n ],\n links: [\n { id: 'ab-stokes-einstein', role: 'the derivation D = k_BT/(6πηa) with its regime Re ≤ 0.1, m/(γt) ≤ 0.01 (`upt atlas ab-stokes-einstein`)' },\n { id: 'ab-langevin-diffusion', role: 'the overdamped coarse-graining D = k_BT/γ and its ballistic counterexample' },\n { id: 'model-stokes-drag', role: 'the creeping-flow drag γ = 6πηa' },\n { id: 'CE-stokes-einstein', role: 'encoded only up to its dimensionless 6π (scalar-up-to-constant); the 6π here is from Stokes drag' },\n ],\n examples: {\n valid: {\n args: ['T_K=293.15', 'eta_Pa_s=1e-3', 'a_m=1um', 'rho_p_kg_per_m3=2000', 'rho_f_kg_per_m3=998', 't_s=1', 'd=2', 'h_m=100um'],\n note: 'a 1 µm-radius silica sphere in water at 20 °C, 100 µm above the coverslip, tracked in the image plane over 1 s',\n fails: [],\n },\n failures: [\n {\n args: ['T_K=293.15', 'eta_Pa_s=1e-3', 'a_m=1um', 'rho_p_kg_per_m3=2000', 'rho_f_kg_per_m3=998', 't_s=1us', 'd=2'],\n note: 'the same sphere over 1 µs: still ballistic (t ≈ 2τ_p) and inside the hydrodynamic memory time',\n fails: ['overdamped', 'memory'],\n },\n {\n args: ['T_K=293.15', 'eta_Pa_s=1e-3', 'a_m=50um', 'rho_p_kg_per_m3=7800', 'rho_f_kg_per_m3=998', 't_s=100', 'd=3'],\n note: 'a 50 µm-radius steel sphere tracked in 3-D: it sinks at ≈ 3.7 cm/s, Re ≈ 1.9, and the drift swamps diffusion',\n fails: ['creeping-flow', 'drift'],\n },\n {\n args: ['T_K=293.15', 'eta_Pa_s=1e-3', 'a_m=1um', 'rho_p_kg_per_m3=1050', 'rho_f_kg_per_m3=998', 't_s=50ms', 'd=2', 'h_m=3um'],\n note: 'a 1 µm-radius polystyrene sphere 3 µm (centre) above the coverslip: the wall slows D_∥ by ≈ 19%',\n fails: ['wall'],\n },\n {\n args: ['T_K=293.15', 'eta_Pa_s=1e-3', 'a_m=1um', 'rho_p_kg_per_m3=1050', 'rho_f_kg_per_m3=998', 't_s=50ms', 'd=2', 'h_m=1.2um'],\n note: 'the same sphere with a 0.2 µm gap: past the range of the Faxén series, and its height changes by more than the gap allows over t',\n fails: ['faxen-range', 'wall', 'wall-static'],\n },\n ],\n },\n /** Evaluate the Stokes-Einstein MSD and regime checks for the supplied Brownian-sphere inputs. */\n regimeAt(inputs, outputs) {\n const re = outputs.Re;\n const m = outputs.m_kg;\n const gamma = outputs.gamma_kg_per_s;\n const t = inputs.t_s;\n if (re == null || m == null || gamma == null || t == null) return '';\n return `upt regime diffusion --at Re=${re} m=${m} gamma=${gamma} t=${t}`;\n },\n /** Compute the Stokes-Einstein diffusion, MSD and regime checks for one set of Brownian-sphere inputs. */\n run(i) {\n requirePositive(ID, i, ['T_K', 'eta_Pa_s', 'a_m', 'rho_p_kg_per_m3', 'rho_f_kg_per_m3', 't_s']);\n const { T_K: T, eta_Pa_s: eta, a_m: a, rho_p_kg_per_m3: rhoP, rho_f_kg_per_m3: rhoF, t_s: t, d } = i as Record<string, number>;\n if (d !== 1 && d !== 2 && d !== 3) throw new Error(`${ID}: d must be 1, 2 or 3 (got ${d})`);\n const kT = K_B_SI * T;\n const gamma = 6 * Math.PI * eta * a;\n const D = kT / gamma;\n const msd = 2 * d * D * t;\n const volume = (4 / 3) * Math.PI * a ** 3;\n const m = volume * rhoP;\n const tauP = (m + 0.5 * volume * rhoF) / gamma;\n const tauF = (rhoF * a * a) / eta;\n const vSed = ((2 / 9) * (rhoP - rhoF) * G_STANDARD * a * a) / eta;\n const re = (rhoF * a * Math.max(Math.sqrt(kT / m), Math.abs(vSed))) / eta;\n const tauBare = m / gamma;\n const msdLangevin = 2 * d * D * tauBare * ballisticDeficit(t / tauBare);\n const msdHydro = msd * hydrodynamicMsdRatio(tauP / t, tauF / t);\n const msdAddedMass = 2 * d * D * tauP * ballisticDeficit(t / tauP);\n const memory = msdHydro / msdAddedMass - 1;\n const checks = [\n check('creeping-flow', 'creeping flow around the sphere, Re ≪ 1', 'ρ_f a max(√(k_BT/m), |v_s|)/η', re, '<=', MAX_RE,\n \"the threshold ab-stokes-einstein states: a chosen machine form of Re ≪ 1\"),\n check('overdamped', 'overdamped times t ≫ τ_p', '(m + m_f/2)/(γ t)', tauP / t, '<=', MAX_TAU_P_RATIO,\n \"ab-stokes-einstein's m/(γt) ≤ 0.01, with the added mass m_f/2 included (stricter)\"),\n check('memory', 'past the hydrodynamic memory, t ≫ τ_f = ρ_f a²/η', '|MSD_H/MSD_OU − 1|', Math.abs(memory), '<=', MAX_MEMORY_CORRECTION,\n 'chosen threshold: the Basset memory changes the MSD by ≤ 1% at t (computed, not estimated; ≈ 2√(τ_f/(πt)) at t ≫ τ_f)'),\n ];\n const unchecked = ['the particle is a rigid sphere and a is its hydrodynamic radius (a coating or a shell changes it)'];\n let wall: { dPar: number; dPerp: number; msdWall: number } | null = null;\n if (i.h_m !== undefined) {\n const h = i.h_m;\n if (!Number.isFinite(h) || !(h > a)) throw new Error(`${ID}: h_m must be a finite distance > a_m, centre to wall (got ${h})`);\n const faxen = faxenParallel(a / h);\n const lambda = brennerPerpendicular(h / a);\n const dPar = D * faxen;\n const dPerp = D / lambda;\n const msdWall = 2 * t * (Math.min(d, 2) * dPar + (d === 3 ? dPerp : 0));\n wall = { dPar, dPerp, msdWall };\n const excursion = Math.sqrt(2 * dPerp * t) + (Math.abs(vSed) * t) / lambda;\n checks.push(\n check('faxen-range', 'the Faxén series in a/h holds for D_∥', '(a/h)⁵/16 ÷ (D_∥/D)', (a / h) ** 5 / 16 / faxen, '<=', MAX_FAXEN_LAST_TERM,\n 'chosen threshold: the last retained term is ≤ 1% of the series — a size estimate of the truncation, not a bound; D_⊥ (Brenner) is exact at any h > a'),\n check('wall', 'the wall correction to the tracked MSD is negligible', '|MSD/MSD_w − 1|', Math.abs(msd / msdWall - 1), '<=', MAX_WALL_CORRECTION,\n 'chosen threshold: the unbounded-fluid D is then within 1% for the tracked axes; otherwise read MSD_wall_m2'),\n check('wall-static', 'the height barely changes over t', '(√(2 D_⊥ t) + |v_s| t/λ)/(h − a)', excursion / (h - a), '<=', MAX_WALL_EXCURSION,\n 'chosen threshold: diffusion plus wall-slowed sedimentation normal to the wall move the sphere by ≤ 10% of the gap, so D_∥, D_⊥ taken at h hold over t'),\n );\n unchecked.push(\n 'the wall is plane, rigid, no-slip and horizontal, and the gap h − a is many molecular sizes and roughness heights (no surface forces, no lubrication-scale slip)',\n );\n }\n if (d === 3) {\n checks.push(\n check('drift', 'sedimentation drift negligible along gravity over t', '(v_s t)²/(2 D t)', (vSed * t) ** 2 / (2 * D * t), '<=',\n MAX_DRIFT_RATIO, 'chosen threshold: the vertical MSD then carries ≤ 1% from the deterministic drift'),\n );\n } else {\n unchecked.push(\n `the ${d === 1 ? 'tracked axis is' : 'tracked axes are'} horizontal, so sedimentation (${Number(Math.abs(vSed * t).toPrecision(3))} m over t) moves the sphere out of the plane but not along ${d === 1 ? 'it' : 'them'}`,\n );\n }\n return {\n outputs: {\n gamma_kg_per_s: gamma,\n D_m2_per_s: D,\n MSD_m2: msd,\n rms_displacement_m: Math.sqrt(msd),\n m_kg: m,\n tau_p_s: tauP,\n tau_f_s: tauF,\n v_sed_m_per_s: vSed,\n Re: re,\n MSD_langevin_m2: msdLangevin,\n langevin_deviation: msd / msdLangevin - 1,\n MSD_hydro_m2: msdHydro,\n hydro_correction_m2: msdHydro - msd,\n hydro_deviation: msd / msdHydro - 1,\n memory_correction: memory,\n D_parallel_m2_per_s: wall?.dPar ?? null,\n D_perp_m2_per_s: wall?.dPerp ?? null,\n MSD_wall_m2: wall?.msdWall ?? null,\n wall_deviation: wall === null ? null : msd / wall.msdWall - 1,\n },\n checks,\n unchecked,\n };\n },\n};\n"]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { type AppliedCase } from './types.js';
|
|
2
|
-
/** Q floor for the single-Lorentzian (near-resonance) form of the spectrum. @internal */
|
|
3
|
-
export declare const MIN_Q_LORENTZIAN = 10;
|
|
4
|
-
/** (1/t_obs)/linewidth ceiling: the record resolves the line. @internal */
|
|
5
|
-
export declare const MAX_RESOLUTION_RATIO = 0.1;
|
|
6
|
-
/**
|
|
7
|
-
* √(k_BT/k)/A ceiling. Thermal motion of one mode is x = X cos ω_d t + Y sin ω_d t
|
|
8
|
-
* with ⟨X²⟩ = ⟨Y²⟩ = k_BT/k (equipartition), so the envelope of the ring-down
|
|
9
|
-
* plus it is Rician with ⟨A_obs²⟩ = A² + 2k_BT/k (Rice 1944); at the ceiling
|
|
10
|
-
* √(1 + 2·0.01) − 1 ≈ 0.0100.
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
|
-
export declare const MAX_THERMAL_RATIO = 0.1;
|
|
14
|
-
/**
|
|
15
|
-
* FWHM in Hz of |∫₀ᵀ e^{−(α + iΔω)t} dt|², the near-resonance power spectrum of
|
|
16
|
-
* a ring-down x0 e^{−αt} cos(ω_d t) recorded for T. The negative-frequency
|
|
17
|
-
* pole is dropped, which is the Q ≫ 1 approximation. The peak is at Δω = 0:
|
|
18
|
-
* the integrand is positive, so |X(Δω)| ≤ X(0).
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
21
|
-
export declare function windowedLinewidthHz(alpha: number, T: number): number;
|
|
22
|
-
export declare const DAMPED_RESONATOR_CASE: AppliedCase;
|
|
23
|
-
//# sourceMappingURL=damped-resonator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"damped-resonator.d.ts","sourceRoot":"","sources":["../../src/cases/damped-resonator.ts"],"names":[],"mappings":"AAiBA,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAItE,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAoBpE;AAED,eAAO,MAAM,qBAAqB,EAAE,WAqKnC,CAAC"}
|