universal-physics-tensor 9.0.0 → 11.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 +21 -17
- package/bin/upt.mjs +13 -1
- package/data/atlas/atlas.json +79 -68
- package/data/atlas/atlas.jsonld +1 -1
- package/data/atlas/diffusion.json +24 -23
- package/data/atlas/oscillators.json +21 -16
- package/data/atlas/waves.json +36 -31
- package/data/atlas/witness-results.json +11 -11
- package/data/bridge-catalog.json +1192 -1636
- package/data/bridge-catalog.schema.json +390 -135
- package/data/quantities.json +53 -19
- package/data/schemas/atlas-record.v0.json +184 -46
- package/data/units.json +33 -4
- package/dist/atlas/applicability.d.ts.map +1 -1
- package/dist/atlas/applicability.js +35 -18
- package/dist/atlas/applicability.js.map +1 -1
- package/dist/atlas/association.js.map +1 -1
- package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
- package/dist/atlas/benchmark/backend-shapes.js +5 -1
- package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
- package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
- package/dist/atlas/benchmark/baselines.js +8 -0
- package/dist/atlas/benchmark/baselines.js.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts +12 -3
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js +30 -21
- package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
- package/dist/atlas/benchmark/leakage.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/run-atlas.d.ts.map +1 -1
- package/dist/atlas/benchmark/run-atlas.js +14 -2
- package/dist/atlas/benchmark/run-atlas.js.map +1 -1
- package/dist/atlas/benchmark/stats.d.ts +3 -3
- package/dist/atlas/benchmark/stats.d.ts.map +1 -1
- package/dist/atlas/benchmark/stats.js +16 -8
- package/dist/atlas/benchmark/stats.js.map +1 -1
- package/dist/atlas/benchmark/study.js.map +1 -1
- package/dist/atlas/benchmark/types.js.map +1 -1
- package/dist/atlas/bridge-record.d.ts +4 -4
- package/dist/atlas/bridge-record.d.ts.map +1 -1
- package/dist/atlas/bridge-record.js +6 -6
- package/dist/atlas/bridge-record.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 +0 -11
- package/dist/atlas/chain-pipeline.d.ts.map +1 -1
- package/dist/atlas/chain-pipeline.js +12 -24
- package/dist/atlas/chain-pipeline.js.map +1 -1
- package/dist/atlas/composition-table.js.map +1 -1
- package/dist/atlas/conventions.js.map +1 -1
- package/dist/atlas/coverage.d.ts +2 -2
- package/dist/atlas/coverage.js.map +1 -1
- package/dist/atlas/derivation.js.map +1 -1
- package/dist/atlas/derive-evidence.d.ts +6 -4
- package/dist/atlas/derive-evidence.d.ts.map +1 -1
- package/dist/atlas/derive-evidence.js +7 -2
- package/dist/atlas/derive-evidence.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 -17
- 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 -42
- 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/index.d.ts +1 -1
- package/dist/atlas/diffusion/index.d.ts.map +1 -1
- package/dist/atlas/diffusion/index.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/error-algebra.d.ts +6 -0
- package/dist/atlas/error-algebra.d.ts.map +1 -1
- package/dist/atlas/error-algebra.js +26 -0
- package/dist/atlas/error-algebra.js.map +1 -1
- package/dist/atlas/export.d.ts +18 -2
- package/dist/atlas/export.d.ts.map +1 -1
- package/dist/atlas/export.js +9 -3
- package/dist/atlas/export.js.map +1 -1
- package/dist/atlas/families.d.ts +19 -2
- package/dist/atlas/families.d.ts.map +1 -1
- package/dist/atlas/families.js +26 -3
- package/dist/atlas/families.js.map +1 -1
- package/dist/atlas/family.d.ts +27 -0
- package/dist/atlas/family.d.ts.map +1 -0
- package/dist/atlas/family.js +12 -0
- package/dist/atlas/family.js.map +1 -0
- package/dist/atlas/index.d.ts +3 -2
- package/dist/atlas/index.d.ts.map +1 -1
- package/dist/atlas/index.js +2 -1
- package/dist/atlas/index.js.map +1 -1
- package/dist/atlas/link-prediction.d.ts +107 -4
- 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/model.js.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.js +7 -12
- 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 -10
- 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 -36
- 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/index.d.ts +1 -16
- package/dist/atlas/oscillators/index.d.ts.map +1 -1
- package/dist/atlas/oscillators/index.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/norm-transport-witness.js.map +1 -1
- package/dist/atlas/oscillators/norm-transport.js.map +1 -1
- package/dist/atlas/oscillators/norms.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-carriage.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/path-bound.js.map +1 -1
- package/dist/atlas/physjs-entries.generated.d.ts +25 -24
- package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
- package/dist/atlas/physjs-entries.generated.js +25 -24
- package/dist/atlas/physjs-entries.generated.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +107 -70
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +184 -101
- package/dist/atlas/physjs-ref.js.map +1 -1
- package/dist/atlas/physjs-reviewed.d.ts +31 -0
- package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
- package/dist/atlas/physjs-reviewed.js +194 -0
- package/dist/atlas/physjs-reviewed.js.map +1 -0
- package/dist/atlas/poster/associations.js.map +1 -1
- package/dist/atlas/poster/derivations.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/public.d.ts +2 -1
- package/dist/atlas/public.d.ts.map +1 -1
- package/dist/atlas/public.js +2 -1
- package/dist/atlas/public.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/serialize.d.ts +18 -12
- package/dist/atlas/serialize.d.ts.map +1 -1
- package/dist/atlas/serialize.js +28 -18
- package/dist/atlas/serialize.js.map +1 -1
- package/dist/atlas/statement.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/translation-registry.js.map +1 -1
- package/dist/atlas/translation.js.map +1 -1
- package/dist/atlas/types.d.ts +9 -2
- package/dist/atlas/types.d.ts.map +1 -1
- package/dist/atlas/types.js +1 -1
- package/dist/atlas/types.js.map +1 -1
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/waves/bridges-closure.js +2 -9
- 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 -52
- package/dist/atlas/waves/bridges.js.map +1 -1
- package/dist/atlas/waves/index.d.ts +1 -1
- package/dist/atlas/waves/index.d.ts.map +1 -1
- package/dist/atlas/waves/index.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-artifact.js.map +1 -1
- package/dist/atlas/witness-dominance.d.ts +4 -3
- package/dist/atlas/witness-dominance.d.ts.map +1 -1
- package/dist/atlas/witness-dominance.js +15 -5
- package/dist/atlas/witness-dominance.js.map +1 -1
- package/dist/atlas/witness-numeric.d.ts +38 -4
- package/dist/atlas/witness-numeric.d.ts.map +1 -1
- package/dist/atlas/witness-numeric.js +80 -2
- package/dist/atlas/witness-numeric.js.map +1 -1
- package/dist/atlas/witness-result.d.ts +7 -1
- package/dist/atlas/witness-result.d.ts.map +1 -1
- package/dist/atlas/witness-result.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/atlas/witnesses/quantum-support.js.map +1 -1
- package/dist/bridges/caller-table.d.ts +1 -1
- package/dist/bridges/caller-table.d.ts.map +1 -1
- package/dist/bridges/caller-table.js.map +1 -1
- package/dist/bridges/carrier-sign.d.ts.map +1 -1
- package/dist/bridges/carrier-sign.js +8 -3
- package/dist/bridges/carrier-sign.js.map +1 -1
- package/dist/bridges/catalog-adapter.d.ts +12 -3
- package/dist/bridges/catalog-adapter.d.ts.map +1 -1
- package/dist/bridges/catalog-adapter.js +17 -9
- package/dist/bridges/catalog-adapter.js.map +1 -1
- package/dist/bridges/catalog-load.d.ts +12 -2
- package/dist/bridges/catalog-load.d.ts.map +1 -1
- package/dist/bridges/catalog-load.js +181 -13
- package/dist/bridges/catalog-load.js.map +1 -1
- package/dist/bridges/catalog-types.d.ts +74 -26
- 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/coefficient-statement.js +1 -5
- package/dist/bridges/coefficient-statement.js.map +1 -1
- package/dist/bridges/confrontation-coverage.js.map +1 -1
- package/dist/bridges/confrontations.d.ts +1 -1
- package/dist/bridges/confrontations.d.ts.map +1 -1
- package/dist/bridges/confrontations.js +1 -1
- package/dist/bridges/confrontations.js.map +1 -1
- package/dist/bridges/evaluation-errors.d.ts +46 -3
- package/dist/bridges/evaluation-errors.d.ts.map +1 -1
- package/dist/bridges/evaluation-errors.js +40 -4
- 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 +17 -2
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +76 -28
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/expr-parse.d.ts +38 -4
- package/dist/bridges/expr-parse.d.ts.map +1 -1
- package/dist/bridges/expr-parse.js +101 -12
- package/dist/bridges/expr-parse.js.map +1 -1
- package/dist/bridges/holds.d.ts +40 -4
- package/dist/bridges/holds.d.ts.map +1 -1
- package/dist/bridges/holds.js +128 -19
- package/dist/bridges/holds.js.map +1 -1
- package/dist/bridges/index.d.ts +15 -14
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +14 -15
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/input-contract.js.map +1 -1
- package/dist/bridges/membership.d.ts +5 -3
- package/dist/bridges/membership.d.ts.map +1 -1
- package/dist/bridges/membership.js +5 -6
- package/dist/bridges/membership.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/observations/types.js.map +1 -1
- package/dist/bridges/rejected.d.ts +11 -17
- package/dist/bridges/rejected.d.ts.map +1 -1
- package/dist/bridges/rejected.js +13 -68
- package/dist/bridges/rejected.js.map +1 -1
- package/dist/bridges/relation-eval.d.ts +6 -7
- package/dist/bridges/relation-eval.d.ts.map +1 -1
- package/dist/bridges/relation-eval.js +20 -50
- package/dist/bridges/relation-eval.js.map +1 -1
- package/dist/bridges/rhs-registry.js.map +1 -1
- package/dist/bridges/sensitivity.d.ts +11 -3
- package/dist/bridges/sensitivity.d.ts.map +1 -1
- package/dist/bridges/sensitivity.js +27 -13
- package/dist/bridges/sensitivity.js.map +1 -1
- package/dist/bridges/tensor-index.js.map +1 -1
- package/dist/bridges/types.d.ts +1 -7
- package/dist/bridges/types.d.ts.map +1 -1
- package/dist/bridges/types.js +1 -4
- package/dist/bridges/types.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/canonical-equation.js.map +1 -1
- package/dist/canonical/dimensional-fields.js.map +1 -1
- package/dist/canonical/entries/_l1-build.js.map +1 -1
- 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 +8 -9
- 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 +5 -6
- 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 +6 -12
- 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 +38 -39
- 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/statistical-mechanics.js +5 -5
- package/dist/canonical/entries/statistical-mechanics.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 +29 -4
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +47 -64
- package/dist/canonical/linkage.js.map +1 -1
- package/dist/canonical/normal-form.d.ts +0 -8
- package/dist/canonical/normal-form.d.ts.map +1 -1
- package/dist/canonical/normal-form.js +22 -23
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/registry.js.map +1 -1
- package/dist/canonical/residual.js.map +1 -1
- package/dist/canonical/seed-l-layer.d.ts +7 -1
- package/dist/canonical/seed-l-layer.d.ts.map +1 -1
- package/dist/canonical/seed-l-layer.js +7 -1
- package/dist/canonical/seed-l-layer.js.map +1 -1
- package/dist/canonical/structural.d.ts +42 -21
- package/dist/canonical/structural.d.ts.map +1 -1
- package/dist/canonical/structural.js +64 -23
- package/dist/canonical/structural.js.map +1 -1
- package/dist/cases/brownian-sphere.d.ts +3 -3
- package/dist/cases/brownian-sphere.d.ts.map +1 -1
- package/dist/cases/brownian-sphere.js +10 -9
- package/dist/cases/brownian-sphere.js.map +1 -1
- package/dist/cases/damped-resonator.d.ts.map +1 -1
- package/dist/cases/damped-resonator.js +8 -11
- package/dist/cases/damped-resonator.js.map +1 -1
- package/dist/cases/index.js.map +1 -1
- package/dist/cases/kepler-rv.d.ts +1 -1
- package/dist/cases/kepler-rv.d.ts.map +1 -1
- package/dist/cases/kepler-rv.js +3 -2
- package/dist/cases/kepler-rv.js.map +1 -1
- package/dist/cases/lumped-cooling.d.ts +8 -3
- package/dist/cases/lumped-cooling.d.ts.map +1 -1
- package/dist/cases/lumped-cooling.js +22 -24
- package/dist/cases/lumped-cooling.js.map +1 -1
- 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/resistor-noise.js +7 -7
- package/dist/cases/resistor-noise.js.map +1 -1
- package/dist/cases/skin-depth.d.ts +0 -4
- package/dist/cases/skin-depth.d.ts.map +1 -1
- package/dist/cases/skin-depth.js +3 -7
- package/dist/cases/skin-depth.js.map +1 -1
- package/dist/cases/types.js.map +1 -1
- package/dist/cli/args.d.ts +30 -3
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +47 -9
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/bindings.d.ts +13 -0
- package/dist/cli/bindings.d.ts.map +1 -0
- package/dist/cli/bindings.js +33 -0
- package/dist/cli/bindings.js.map +1 -0
- package/dist/cli/closed-form-range.js.map +1 -1
- package/dist/cli/command.d.ts +8 -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 +2 -11
- package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-map.js +50 -35
- 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.map +1 -1
- package/dist/cli/commands/_discovery-opts.js +48 -14
- 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 +9 -8
- 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 +20 -20
- 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/candidates.d.ts.map +1 -1
- package/dist/cli/commands/candidates.js +16 -8
- package/dist/cli/commands/candidates.js.map +1 -1
- package/dist/cli/commands/canonical.js.map +1 -1
- package/dist/cli/commands/chain.js +1 -1
- package/dist/cli/commands/chain.js.map +1 -1
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +22 -20
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/connectors.js.map +1 -1
- package/dist/cli/commands/coverage.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +60 -35
- 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 +20 -10
- 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 +14 -10
- 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 +108 -58
- 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 +16 -8
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/frontier.js.map +1 -1
- package/dist/cli/commands/ground.d.ts.map +1 -1
- package/dist/cli/commands/ground.js +41 -10
- package/dist/cli/commands/ground.js.map +1 -1
- 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 +155 -92
- 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 +58 -20
- 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 +29 -7
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/predict.js.map +1 -1
- package/dist/cli/commands/priority.js.map +1 -1
- package/dist/cli/commands/probe.d.ts.map +1 -1
- package/dist/cli/commands/probe.js +105 -38
- package/dist/cli/commands/probe.js.map +1 -1
- package/dist/cli/commands/recover.js +1 -1
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/regime.d.ts +5 -4
- package/dist/cli/commands/regime.d.ts.map +1 -1
- package/dist/cli/commands/regime.js +25 -26
- 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 +23 -14
- 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 +9 -4
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/symbolic.js +31 -36
- 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 +5 -3
- package/dist/cli/commands/testplan.js.map +1 -1
- package/dist/cli/conventions.js.map +1 -1
- package/dist/cli/determination.js.map +1 -1
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/euler-guard.js.map +1 -1
- package/dist/cli/eval-numbers.js.map +1 -1
- package/dist/cli/expr-print.d.ts +28 -3
- package/dist/cli/expr-print.d.ts.map +1 -1
- package/dist/cli/expr-print.js +42 -22
- package/dist/cli/expr-print.js.map +1 -1
- package/dist/cli/flag-help.js.map +1 -1
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/library-defaults.d.ts +19 -0
- package/dist/cli/library-defaults.d.ts.map +1 -0
- package/dist/cli/library-defaults.js +22 -0
- package/dist/cli/library-defaults.js.map +1 -0
- package/dist/cli/main.d.ts +7 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +25 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/map-evidence.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 +23 -6
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +15 -0
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/published-url.js.map +1 -1
- package/dist/cli/record-reach.d.ts +6 -0
- package/dist/cli/record-reach.d.ts.map +1 -1
- package/dist/cli/record-reach.js +17 -11
- 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 +7 -6
- 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 +40 -20
- package/dist/cli/record.js.map +1 -1
- package/dist/cli/search-index.d.ts +5 -0
- package/dist/cli/search-index.d.ts.map +1 -1
- package/dist/cli/search-index.js +19 -7
- 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 +0 -7
- 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/top-level-help.js.map +1 -1
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +7 -5
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +49 -14
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +42 -17
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/adjudication.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/aliases.js.map +1 -1
- package/dist/composition/audit-coverage.d.ts +2 -0
- package/dist/composition/audit-coverage.d.ts.map +1 -1
- package/dist/composition/audit-coverage.js.map +1 -1
- package/dist/composition/axes.d.ts +6 -0
- package/dist/composition/axes.d.ts.map +1 -1
- package/dist/composition/axes.js +18 -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 +14 -15
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +148 -91
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/bridge-prediction.d.ts +5 -1
- package/dist/composition/bridge-prediction.d.ts.map +1 -1
- package/dist/composition/bridge-prediction.js +12 -16
- package/dist/composition/bridge-prediction.js.map +1 -1
- package/dist/composition/buckingham-filter.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 +134 -26
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +9 -10
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +33 -102
- 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/canonical-prefactors.js.map +1 -1
- package/dist/composition/catalog-graph.d.ts.map +1 -1
- package/dist/composition/catalog-graph.js +8 -25
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/chain-candidate.d.ts +10 -0
- package/dist/composition/chain-candidate.d.ts.map +1 -1
- package/dist/composition/chain-candidate.js +11 -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-regime.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-surface.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 +166 -41
- 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.map +1 -1
- package/dist/composition/consequence.js +15 -6
- package/dist/composition/consequence.js.map +1 -1
- package/dist/composition/consistency.js.map +1 -1
- package/dist/composition/descriptor.d.ts +1 -1
- package/dist/composition/descriptor.d.ts.map +1 -1
- package/dist/composition/descriptor.js.map +1 -1
- package/dist/composition/dimension-adjacency.js.map +1 -1
- package/dist/composition/discovery.d.ts +77 -11
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +194 -80
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +40 -10
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +47 -12
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/enumerate.d.ts +2 -2
- 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 +5 -9
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +38 -18
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js +2 -11
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts +16 -0
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +24 -59
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/expr-subst.js.map +1 -1
- package/dist/composition/formula-shape.d.ts +28 -0
- package/dist/composition/formula-shape.d.ts.map +1 -1
- package/dist/composition/formula-shape.js +96 -2
- package/dist/composition/formula-shape.js.map +1 -1
- package/dist/composition/frontier-account.d.ts +3 -2
- package/dist/composition/frontier-account.d.ts.map +1 -1
- package/dist/composition/frontier-account.js +7 -3
- package/dist/composition/frontier-account.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.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 +14 -8
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +7 -5
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/mathts-quiet.d.ts +29 -0
- package/dist/composition/mathts-quiet.d.ts.map +1 -0
- package/dist/composition/mathts-quiet.js +57 -0
- package/dist/composition/mathts-quiet.js.map +1 -0
- package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
- package/dist/composition/mathts-scalar-symbols.js +20 -35
- package/dist/composition/mathts-scalar-symbols.js.map +1 -1
- package/dist/composition/not-composable-seeds.d.ts +3 -1
- package/dist/composition/not-composable-seeds.d.ts.map +1 -1
- package/dist/composition/not-composable-seeds.js +2 -0
- package/dist/composition/not-composable-seeds.js.map +1 -1
- package/dist/composition/probe/backend-protocol.js.map +1 -1
- package/dist/composition/probe/candidate-store.js.map +1 -1
- package/dist/composition/probe/corpus.d.ts +4 -2
- package/dist/composition/probe/corpus.d.ts.map +1 -1
- package/dist/composition/probe/corpus.js +20 -9
- package/dist/composition/probe/corpus.js.map +1 -1
- package/dist/composition/probe/dataset.d.ts +17 -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 +5 -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/expression-gaps.js.map +1 -1
- package/dist/composition/probe/falsify.d.ts +14 -3
- package/dist/composition/probe/falsify.d.ts.map +1 -1
- package/dist/composition/probe/falsify.js +16 -27
- package/dist/composition/probe/falsify.js.map +1 -1
- package/dist/composition/probe/fingerprint.js.map +1 -1
- package/dist/composition/probe/fit.d.ts +7 -1
- package/dist/composition/probe/fit.d.ts.map +1 -1
- package/dist/composition/probe/fit.js +48 -23
- 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 +27 -1
- package/dist/composition/probe/generator.d.ts.map +1 -1
- package/dist/composition/probe/generator.js +53 -30
- package/dist/composition/probe/generator.js.map +1 -1
- package/dist/composition/probe/index.d.ts +18 -2
- package/dist/composition/probe/index.d.ts.map +1 -1
- package/dist/composition/probe/index.js +10 -2
- package/dist/composition/probe/index.js.map +1 -1
- package/dist/composition/probe/limits.d.ts +24 -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/metadata.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 +22 -9
- 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 +255 -0
- package/dist/composition/probe/power-law.js.map +1 -0
- package/dist/composition/probe/problem.d.ts +12 -1
- package/dist/composition/probe/problem.d.ts.map +1 -1
- package/dist/composition/probe/problem.js +242 -48
- 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 +6 -1
- package/dist/composition/probe/residual.d.ts.map +1 -1
- package/dist/composition/probe/residual.js +9 -7
- package/dist/composition/probe/residual.js.map +1 -1
- package/dist/composition/probe/run-manifest.js +2 -2
- package/dist/composition/probe/run-manifest.js.map +1 -1
- package/dist/composition/probe/scoring.d.ts +2 -1
- package/dist/composition/probe/scoring.d.ts.map +1 -1
- package/dist/composition/probe/scoring.js +21 -7
- package/dist/composition/probe/scoring.js.map +1 -1
- package/dist/composition/probe/search-budget.js.map +1 -1
- package/dist/composition/probe/serialize.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 +35 -12
- package/dist/composition/probe/study.d.ts.map +1 -1
- package/dist/composition/probe/study.js +241 -184
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/probe/t-tail.d.ts +17 -0
- package/dist/composition/probe/t-tail.d.ts.map +1 -0
- package/dist/composition/probe/t-tail.js +32 -0
- package/dist/composition/probe/t-tail.js.map +1 -0
- package/dist/composition/probe/types.d.ts +6 -1
- package/dist/composition/probe/types.d.ts.map +1 -1
- package/dist/composition/probe/types.js +2 -0
- package/dist/composition/probe/types.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +51 -13
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +110 -58
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/quantities.d.ts +0 -4
- package/dist/composition/quantities.d.ts.map +1 -1
- package/dist/composition/quantities.js +5 -5
- package/dist/composition/quantities.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/quantity.d.ts +18 -2
- package/dist/composition/quantity.d.ts.map +1 -1
- package/dist/composition/quantity.js +35 -6
- package/dist/composition/quantity.js.map +1 -1
- 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 +23 -0
- package/dist/composition/representative-values.js.map +1 -1
- package/dist/composition/retrodiction.d.ts +16 -6
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +36 -10
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/composition/user-equation.js +2 -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/axes-registry.d.ts +8 -5
- package/dist/core/axes-registry.d.ts.map +1 -1
- package/dist/core/axes-registry.js.map +1 -1
- package/dist/core/cell.js.map +1 -1
- 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 +35 -35
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +52 -37
- 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/flux-rules.js +1 -1
- package/dist/core/flux-rules.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 +3 -1
- package/dist/core/json-schema.d.ts.map +1 -1
- package/dist/core/json-schema.js +41 -16
- package/dist/core/json-schema.js.map +1 -1
- package/dist/core/labeled-tensor.d.ts +6 -1
- package/dist/core/labeled-tensor.d.ts.map +1 -1
- package/dist/core/labeled-tensor.js +18 -16
- 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/regime-registry.d.ts +6 -2
- package/dist/core/regime-registry.d.ts.map +1 -1
- package/dist/core/regime-registry.js.map +1 -1
- package/dist/core/regime-rule-install.js.map +1 -1
- package/dist/core/regimes-builtins.js.map +1 -1
- package/dist/core/tensor.d.ts +7 -4
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +64 -8
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts +5 -5
- package/dist/core/types.js.map +1 -1
- package/dist/core/universal-index.js.map +1 -1
- package/dist/diff/bridge-ast-gradient.d.ts +4 -5
- package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js +10 -6
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts +43 -86
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +40 -109
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/diff/bridge-specs.d.ts +16 -5
- package/dist/diff/bridge-specs.d.ts.map +1 -1
- package/dist/diff/bridge-specs.js +19 -4
- 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 +12 -4
- package/dist/dimensional/ast-builders.d.ts.map +1 -1
- package/dist/dimensional/ast-builders.js +17 -5
- 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.js.map +1 -1
- package/dist/dimensional/bridge-check.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/connection-validators.d.ts +2 -1
- package/dist/dimensional/connection-validators.d.ts.map +1 -1
- package/dist/dimensional/connection-validators.js.map +1 -1
- package/dist/dimensional/connection.js.map +1 -1
- package/dist/dimensional/constant-rows.d.ts.map +1 -1
- package/dist/dimensional/constant-rows.js +17 -13
- package/dist/dimensional/constant-rows.js.map +1 -1
- package/dist/dimensional/constants.d.ts +5 -6
- package/dist/dimensional/constants.d.ts.map +1 -1
- package/dist/dimensional/constants.js +5 -6
- package/dist/dimensional/constants.js.map +1 -1
- package/dist/dimensional/curvature-composite.js.map +1 -1
- package/dist/dimensional/curvature-invariants.js.map +1 -1
- package/dist/dimensional/curvature.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/dimension-spec.d.ts +13 -7
- package/dist/dimensional/dimension-spec.d.ts.map +1 -1
- package/dist/dimensional/dimension-spec.js +49 -23
- package/dist/dimensional/dimension-spec.js.map +1 -1
- package/dist/dimensional/einstein-equation.js.map +1 -1
- package/dist/dimensional/errors.d.ts +4 -2
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/errors.js +3 -17
- package/dist/dimensional/errors.js.map +1 -1
- package/dist/dimensional/exact-scale.d.ts +0 -17
- package/dist/dimensional/exact-scale.d.ts.map +1 -1
- package/dist/dimensional/exact-scale.js +8 -8
- package/dist/dimensional/exact-scale.js.map +1 -1
- package/dist/dimensional/field-equation-helpers.js.map +1 -1
- package/dist/dimensional/formula-names.js.map +1 -1
- package/dist/dimensional/fresh-label.js.map +1 -1
- package/dist/dimensional/friedmann-equation.d.ts +3 -3
- package/dist/dimensional/friedmann-equation.js +3 -3
- package/dist/dimensional/friedmann-equation.js.map +1 -1
- package/dist/dimensional/gauge-field.d.ts +2 -3
- package/dist/dimensional/gauge-field.d.ts.map +1 -1
- package/dist/dimensional/gauge-field.js +2 -3
- 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 +45 -12
- package/dist/dimensional/hyphen-names.js.map +1 -1
- package/dist/dimensional/killing-validators.js.map +1 -1
- package/dist/dimensional/klein-gordon-equation.js.map +1 -1
- package/dist/dimensional/metric-validators.d.ts +2 -1
- package/dist/dimensional/metric-validators.d.ts.map +1 -1
- package/dist/dimensional/metric-validators.js.map +1 -1
- 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/natural-units.js.map +1 -1
- package/dist/dimensional/quantity-registry.d.ts +13 -0
- package/dist/dimensional/quantity-registry.d.ts.map +1 -1
- package/dist/dimensional/quantity-registry.js +14 -6
- package/dist/dimensional/quantity-registry.js.map +1 -1
- package/dist/dimensional/rg-flow.js.map +1 -1
- package/dist/dimensional/stress-energy-validators.js.map +1 -1
- 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 +20 -3
- package/dist/dimensional/symbolic-constants.js.map +1 -1
- package/dist/dimensional/tensor-trace.js.map +1 -1
- package/dist/dimensional/tensor.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-convention.d.ts +0 -2
- package/dist/dimensional/unit-convention.d.ts.map +1 -1
- package/dist/dimensional/unit-convention.js +2 -2
- package/dist/dimensional/unit-convention.js.map +1 -1
- package/dist/dimensional/unit-data.d.ts.map +1 -1
- package/dist/dimensional/unit-data.js +11 -7
- package/dist/dimensional/unit-data.js.map +1 -1
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +38 -20
- package/dist/dimensional/units.js.map +1 -1
- package/dist/dimensional/validator-registry.js.map +1 -1
- package/dist/dimensional/validator.d.ts +0 -16
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +65 -29
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/dimensional/weyl-validators.js.map +1 -1
- package/dist/index.d.ts +59 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -24
- package/dist/index.js.map +1 -1
- package/dist/numerical/bianchi-residual.js.map +1 -1
- package/dist/numerical/binding-value.d.ts +11 -6
- package/dist/numerical/binding-value.d.ts.map +1 -1
- package/dist/numerical/binding-value.js +126 -122
- package/dist/numerical/binding-value.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.js.map +1 -1
- package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/covariant-eikonal.js +36 -13
- package/dist/numerical/covariant-eikonal.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +9 -5
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/derivative-lowering.js.map +1 -1
- package/dist/numerical/einstein-equation.js.map +1 -1
- package/dist/numerical/engine-registry.js.map +1 -1
- package/dist/numerical/errors.d.ts +7 -3
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js +5 -8
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -1
- package/dist/numerical/evaluator-uncertainty.js +19 -2
- package/dist/numerical/evaluator-uncertainty.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/formula-contract.d.ts +63 -7
- package/dist/numerical/formula-contract.d.ts.map +1 -1
- package/dist/numerical/formula-contract.js +61 -42
- package/dist/numerical/formula-contract.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts +8 -7
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +58 -36
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula-mathts.d.ts.map +1 -1
- package/dist/numerical/formula-mathts.js +5 -2
- package/dist/numerical/formula-mathts.js.map +1 -1
- package/dist/numerical/formula-registry.d.ts +13 -3
- package/dist/numerical/formula-registry.d.ts.map +1 -1
- package/dist/numerical/formula-registry.js +7 -2
- package/dist/numerical/formula-registry.js.map +1 -1
- 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/gl4-integrator.d.ts +28 -27
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +41 -42
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/grid-field.js.map +1 -1
- package/dist/numerical/index.js.map +1 -1
- package/dist/numerical/input-validation.d.ts +3 -6
- package/dist/numerical/input-validation.d.ts.map +1 -1
- package/dist/numerical/input-validation.js +4 -8
- package/dist/numerical/input-validation.js.map +1 -1
- package/dist/numerical/killing.d.ts +8 -5
- package/dist/numerical/killing.d.ts.map +1 -1
- package/dist/numerical/killing.js.map +1 -1
- package/dist/numerical/klein-gordon.js.map +1 -1
- package/dist/numerical/kretschmann.js.map +1 -1
- package/dist/numerical/lowering-utils.js.map +1 -1
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +7 -17
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js +16 -25
- 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-ic.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 +9 -2
- 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 +5 -2
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +19 -4
- 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 +25 -19
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js +180 -286
- 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.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +30 -5
- 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/numerical/types.js.map +1 -1
- package/dist/numerical/weyl-lowering.js.map +1 -1
- package/dist/relations/category.js.map +1 -1
- package/dist/relations/composition-table.d.ts +4 -4
- package/dist/relations/composition-table.js +4 -4
- package/dist/relations/composition-table.js.map +1 -1
- package/dist/relations/conventions.js.map +1 -1
- package/dist/relations/domain-regimes.js.map +1 -1
- package/dist/relations/regime-registration.js.map +1 -1
- package/dist/relations/regime-vocabularies.js.map +1 -1
- package/dist/relations/regime.d.ts +28 -8
- package/dist/relations/regime.d.ts.map +1 -1
- package/dist/relations/regime.js +44 -15
- package/dist/relations/regime.js.map +1 -1
- package/dist/relations/types.d.ts +18 -5
- package/dist/relations/types.d.ts.map +1 -1
- package/dist/relations/types.js +5 -3
- package/dist/relations/types.js.map +1 -1
- package/package.json +16 -20
- package/dist/bridges/registry.d.ts +0 -60
- package/dist/bridges/registry.d.ts.map +0 -1
- package/dist/bridges/registry.js +0 -87
- package/dist/bridges/registry.js.map +0 -1
- package/dist/cli/poster-source.d.ts +0 -154
- package/dist/cli/poster-source.d.ts.map +0 -1
- package/dist/cli/poster-source.js +0 -184
- package/dist/cli/poster-source.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lumped-cooling.js","sourceRoot":"","sources":["../../src/cases/lumped-cooling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAoB,MAAM,YAAY,CAAC;AAEhG,MAAM,EAAE,GAAG,qBAAqB,CAAC;AAEjC,qGAAqG;AACrG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;AAE3F,4EAA4E;AAC5E,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE5B,iEAAiE;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAevC;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,CAAkB;IAC3D,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1B,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5C,CAAC,IAAI,EAAE,CAAC;IACV,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,CAAS;IAC3D,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QACrB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACrE,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE;gBAAE,MAAM;YACpC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,EAAE,GAAG,GAAG,CAAC;;gBACpB,EAAE,GAAG,GAAG,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,EAAU;IACvD,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,KAAK,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,uCAAuC,KAAK,SAAS,CAAC,CAAC;IACzG,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACpC,MAAM,IAAI,EAAE,GAAG,KAAK,CAAC;QACrB,OAAO,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC9C,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,2EAA2E;IAClF,UAAU,EAAE;QACV;YACE,GAAG,EAAE,KAAK;YACV,QAAQ,EAAE,eAAe;YACzB,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,iCAAiC;YAC1C,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;SAC1F;QACD,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gDAAgD,EAAE;QACrI,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,yDAAyD,EAAE;QACrJ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,uDAAuD,EAAE;QACxJ,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gHAAgH,EAAE;QACzN,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,wFAAwF,EAAE;QAC/K,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,mDAAmD,EAAE,WAAW,EAAE,UAAU,EAAE;QAChK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,wFAAwF,EAAE,WAAW,EAAE,UAAU,EAAE;QACtM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,2BAA2B,EAAE;KACvG;IACD,SAAS,EAAE;QACT,MAAM,EAAE;YACN,yGAAyG;YACzG,kEAAkE;YAClE,wKAAwK;SACzK;QACD,MAAM,EAAE;YACN,uFAAuF;YACvF,uFAAuF;YACvF,gCAAgC;SACjC;QACD,WAAW,EACT,oHAAoH;YACpH,iHAAiH;YACjH,oHAAoH;YACpH,6BAA6B;KAChC;IACD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE;QACP,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,0CAA0C,EAAE;QAC7F,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,yEAAyE,EAAE;QACzH,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,mEAAmE,EAAE;QAC5H,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE;QAC5F,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE;QACtE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,0CAA0C,EAAE;QAC/F,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,2EAA2E,EAAE;QAC/H,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,kFAAkF,EAAE;QACnI,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,+EAA+E,EAAE;QACjJ,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,wBAAwB,CAAC,cAAc,EAAE,sBAAsB,CAAC,EAAE;QACpI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,oDAAoD,EAAE;QAClH,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,qDAAqD,EAAE;QACpH,EAAE,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mHAAmH,EAAE;QACjM,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,kFAAkF,EAAE;QAC9I,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,6JAA6J,EAAE;KAC9N;IACD,UAAU,EAAE;QACV,6FAA6F;QAC7F,qIAAqI;QACrI,8GAA8G;KAC/G;IACD,UAAU,EAAE;QACV,SAAS,EAAE,0GAA0G;QACrH,QAAQ,EAAE,OAAO;QACjB,YAAY,EAAE,mBAAmB;QACjC,YAAY,EAAE,kBAAkB;QAChC,MAAM,EAAE,gGAAgG;KACzG;IACD,WAAW,EAAE;QACX,uHAAuH;QACvH,sFAAsF;QACtF,6FAA6F;QAC7F,+FAA+F;KAChG;IACD,WAAW,EAAE;QACX,2HAA2H;YACzH,oGAAoG;QACtG,sIAAsI;QACtI,wGAAwG;KACzG;IACD,KAAK,EAAE;QACL,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,iFAAiF,EAAE;QAC7G,EAAE,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,qDAAqD,EAAE;QAC7F,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,iDAAiD,EAAE;QACnF,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,0DAA0D,EAAE;KAChG;IACD,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,CAAC;YACjK,IAAI,EAAE,6FAA6F;YACnG,KAAK,EAAE,EAAE;SACV;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,CAAC;gBAChK,IAAI,EAAE,mIAAmI;gBACzI,KAAK,EAAE,CAAC,QAAQ,CAAC;aAClB;YACD;gBACE,IAAI,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC;gBAC1J,IAAI,EAAE,iIAAiI;gBACvI,KAAK,EAAE,CAAC,aAAa,CAAC;aACvB;SACF;KACF;IACD,yHAAyH;IACzH,GAAG,CAAC,CAAC;QACH,eAAe,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACnH,MAAM,EACJ,GAAG,EAAE,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAC5E,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GACjD,GAAG,CAA2B,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,uCAAuC,GAAG,GAAG,CAAC,CAAC;QACrH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,0CAA0C,CAAC,GAAG,CAAC,CAAC;QACvG,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,GAAG,GAAG,WAAW,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnH,OAAO;YACL,OAAO,EAAE;gBACP,KAAK,EAAE,GAAG;gBACV,EAAE,EAAE,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,cAAc,EAAE,KAAK;gBACrB,EAAE,EAAE,EAAE;gBACN,KAAK;gBACL,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,KAAK;gBACvB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACnD,iBAAiB,EAAE,MAAM,CAAC,IAAI;gBAC9B,gBAAgB,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC;gBACzC,UAAU,EAAE,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM;gBACtC,WAAW,EAAE,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO;gBACxC,oBAAoB,EAAE,IAAI;gBAC1B,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,UAAU;aAC1B;YACD,MAAM,EAAE;gBACN,KAAK,CAAC,QAAQ,EAAE,sFAAsF,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EACrI,sHAAsH,CAAC;gBACzH,KAAK,CAAC,aAAa,EAAE,iEAAiE,EAAE,mCAAmC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAC9J,uIAAuI,CAAC;aAC3I;YACD,SAAS,EAAE;gBACT,gHAAgH;gBAChH,yDAAyD;aAC1D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"lumped-cooling.js","sourceRoot":"","sources":["../../src/cases/lumped-cooling.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Applied case: a solid sphere cooling (or warming) in a fluid — its\n * temperature after a time t by Newton's law of cooling, with the Biot-number\n * check that makes one uniform temperature a fair stand-in for the field\n * inside it.\n *\n * The parent is the heat equation in the sphere (`model-heat` in radial\n * form, diffusivity `CE-thermal-diffusivity`) with a convective boundary. The\n * lumped-capacitance simplification T(t) = T∞ + (T0 − T∞) e^{−t/τ},\n * τ = ρcV/(hA), holds for Bi = h L_c/k ≤ 0.1 with L_c = V/A (Incropera,\n * DeWitt, Bergman & Lavine, Fundamentals of Heat and Mass Transfer, 6th ed.,\n * §5.1–5.2). The parent's exact series (Carslaw & Jaeger, Conduction of Heat\n * in Solids, 2nd ed., §9.4; Incropera §5.6.2) is summed here for the volume\n * mean, the centre and the surface. A second check keeps radiation, which is\n * not linear in T − T∞, small beside convection. Where it is not small, the\n * lumped equation is also integrated with the T⁴ loss kept (Incropera §5.3,\n * general lumped capacitance analysis), provided the Biot number with the\n * radiative conductance added still allows one temperature.\n *\n * @module cases/lumped-cooling\n */\nimport { findRoot } from '@danielsimonjr/mathts-functions';\nimport { SIGMA_SB_SI } from '../core/constants.js';\nimport { integrateRK4 } from '../numerical/null-ray-integrator.js';\nimport { check, requirePositive, signedRelativeDifference, type AppliedCase } from './types.js';\n\nconst ID = 'case-lumped-cooling';\n\n/** The Stefan–Boltzmann constant (W m⁻² K⁻⁴) is `core/constants`'s; re-exported so the record's module-export table keeps its row. @internal */\nexport { SIGMA_SB_SI } from '../core/constants.js';\n\n/** Bi = h L_c/k ceiling, L_c = V/A (Incropera §5.2, eq. 5.10). @internal */\nexport const MAX_BIOT = 0.1;\n\n/** h_rad,max/h ceiling for a loss linear in T − T∞. @internal */\nexport const MAX_RADIATION_RATIO = 0.1;\n\n/** Parameters of the lumped equation with the radiative loss kept, in SI units. @internal */\nexport interface LumpedRadiating {\n readonly a: number;\n readonly rho: number;\n readonly c: number;\n /** ≥ 0; 0 is pure radiation. */\n readonly h: number;\n readonly eps: number;\n readonly T0: number;\n readonly Tinf: number;\n readonly t: number;\n}\n\n/**\n * T(t) of ρcV dT/dt = −A[h(T − T∞) + εσ_SB(T⁴ − T∞⁴)] for a sphere (V/A =\n * a/3), by classical RK4 (`integrateRK4`, MathTS `solveODESystem` with `dt`,\n * one call per step) with each step 1/100 of the local relaxation time\n * ρca/(3(h + 4εσ_SB T³)). Stops early once |T − T∞| is below 1e-15 |T0 − T∞|.\n * @internal\n */\nexport function lumpedRadiatingTemperature(p: LumpedRadiating): number {\n const k = 3 / (p.rho * p.c * p.a);\n const f = (_t: number, y: readonly number[]): number[] => {\n const T = y[0]!;\n return [-k * (p.h * (T - p.Tinf) + p.eps * SIGMA_SB_SI * (T ** 4 - p.Tinf ** 4))];\n };\n const floor = 1e-15 * Math.abs(p.T0 - p.Tinf);\n let T = p.T0;\n let s = 0;\n while (s < p.t && Math.abs(T - p.Tinf) > floor) {\n const rate = k * (p.h + 4 * p.eps * SIGMA_SB_SI * Math.max(T, p.Tinf) ** 3);\n const dt = Math.min(p.t - s, 0.01 / rate);\n T = integrateRK4(f, [T], s, s + dt, 1)[0] ?? Number.NaN;\n s += dt;\n }\n return T;\n}\n\n/**\n * The first n roots of 1 − ζ cot ζ = Bi (Bi = h a/k, radius-based): the n-th\n * lies in ((n−1)π, nπ), where the left side runs from −∞ (0 for n = 1) to +∞.\n * Each is MathTS `findRoot` (Brent) on that interval, pulled in from the\n * poles by a few ulps of kπ, since the solver evaluates both ends: at 0 the\n * function is 0/0, and at an exact multiple of π `Math.tan` has no sign to\n * trust. The tolerance is the bracket's own floating-point resolution.\n * @internal\n */\nexport function sphereEigenvalues(biRadius: number, n: number): number[] {\n const f = (z: number) => 1 - z / Math.tan(z) - biRadius;\n const roots: number[] = [];\n for (let k = 1; k <= n; k++) {\n const hi = k * Math.PI;\n const inset = 8 * Number.EPSILON * hi;\n const lo = k === 1 ? Number.MIN_VALUE : (k - 1) * Math.PI + inset;\n roots.push(findRoot(f, lo, hi - inset, { tol: 4 * Number.EPSILON * hi, maxIter: 200 }));\n }\n return roots;\n}\n\n/**\n * θ/θ0 = (T − T∞)/(T0 − T∞) from the series solution of the sphere with a\n * convective surface, at Fourier number Fo = αt/a², for the volume mean, the\n * centre and the surface. Terms are summed until e^{−ζ²Fo} < 1e-18.\n * @throws Error when Fo is so small that the series would need over 1e5 terms.\n * @internal\n */\nexport function sphereSeries(biRadius: number, fo: number): { mean: number; centre: number; surface: number } {\n if (fo === 0) return { mean: 1, centre: 1, surface: 1 };\n const terms = Math.ceil(Math.sqrt(42 / fo) / Math.PI) + 2;\n if (terms > 1e5) throw new Error(`${ID}: Fo = ${fo} is too small for the series (needs ${terms} terms)`);\n let mean = 0;\n let centre = 0;\n let surface = 0;\n for (const z of sphereEigenvalues(biRadius, terms)) {\n const s = Math.sin(z);\n const c = Math.cos(z);\n const cn = (4 * (s - z * c)) / (2 * z - Math.sin(2 * z));\n const decay = Math.exp(-z * z * fo);\n centre += cn * decay;\n surface += (cn * decay * s) / z;\n mean += (cn * decay * 3 * (s - z * c)) / z ** 3;\n }\n return { mean, centre, surface };\n}\n\nexport const LUMPED_COOLING_CASE: AppliedCase = {\n id: ID,\n title: 'Lumped-capacitance cooling of a sphere (Biot number, radiation linearity)',\n parameters: [\n {\n key: 'a_m',\n quantity: 'sphere radius',\n symbol: 'a',\n unit: 'm',\n meaning: 'radius of the solid sphere, > 0',\n geometry: 'radius',\n alternates: [{ key: 'diameter_m', meaning: 'the diameter 2a of the sphere', toKey: 0.5 }],\n },\n { key: 'rho_kg_per_m3', quantity: 'density', symbol: 'ρ', unit: 'kg/m^3', meaning: 'mass density of the solid (copper ≈ 8933), > 0' },\n { key: 'c_J_per_kg_K', quantity: 'specific heat', symbol: 'c', unit: 'J/(kg*K)', meaning: 'specific heat capacity of the solid (copper ≈ 385), > 0' },\n { key: 'k_W_per_m_K', quantity: 'thermal conductivity', symbol: 'k', unit: 'W/(m*K)', meaning: 'thermal conductivity of the solid (copper ≈ 401), > 0' },\n { key: 'h_W_per_m2_K', quantity: 'heat-transfer coefficient', symbol: 'h', unit: 'W/(m^2*K)', meaning: 'convective coefficient at the surface, uniform and constant (still air ≈ 5–25, stirred water ≈ 500–10000), > 0' },\n { key: 'emissivity', quantity: 'surface emissivity', symbol: 'ε', unit: '', meaning: 'total hemispherical emissivity of the surface, 0 ≤ ε ≤ 1 (polished copper ≈ 0.03–0.05)' },\n { key: 'T0_K', quantity: 'initial temperature', symbol: 'T0', unit: 'K', meaning: 'uniform temperature of the sphere at t = 0, > 0 K', temperature: 'absolute' },\n { key: 'T_inf_K', quantity: 'fluid temperature', symbol: 'T∞', unit: 'K', meaning: 'temperature of the fluid far from the sphere, and of the radiating surroundings, > 0 K', temperature: 'absolute' },\n { key: 't_s', quantity: 'elapsed time', symbol: 't', unit: 's', meaning: 'time since immersion, ≥ 0' },\n ],\n governing: {\n parent: [\n 'ρc ∂T/∂t = k (1/r²) ∂/∂r (r² ∂T/∂r), 0 ≤ r < a (the heat equation of model-heat, radially symmetric)',\n '−k ∂T/∂r = h (T − T∞) + εσ_SB (T⁴ − T∞⁴) at r = a; T(r, 0) = T0',\n 'without the radiation term: θ/θ0 = Σ C_n e^{−ζ_n² Fo} sin(ζ_n r/a)/(ζ_n r/a), 1 − ζ_n cot ζ_n = h a/k, C_n = 4(sin ζ_n − ζ_n cos ζ_n)/(2ζ_n − sin 2ζ_n), Fo = αt/a²',\n ],\n scalar: [\n 'ρcV dT/dt = −hA (T − T∞) (lumped capacitance: one temperature for the whole sphere)',\n 'T(t) = T∞ + (T0 − T∞) e^{−t/τ}, τ = ρcV/(hA) = ρca/(3h) (Newton\\'s law of cooling)',\n 'Bi = h L_c/k, L_c = V/A = a/3',\n ],\n distinction:\n 'The parent is a temperature field T(r, t) with a boundary condition that is nonlinear once radiation is kept; the ' +\n 'scalar replaces the field by one number and the surface loss by a linear conductance hA. Dropped: the internal ' +\n 'gradient (of relative size ~Bi), every eigenmode but the slowest (and that one\\'s rate shifted by O(Bi)), and the ' +\n 'T⁴ dependence of radiation.',\n },\n observable: 'T_K',\n outputs: [\n { key: 'tau_s', symbol: 'τ', unit: 's', meaning: 'lumped time constant ρcV/(hA) = ρca/(3h)' },\n { key: 'Bi', symbol: 'Bi', unit: '', meaning: 'Biot number h L_c/k with L_c = V/A = a/3 (the lumped criterion\\'s form)' },\n { key: 'Bi_radius', symbol: 'Bi_a', unit: '', meaning: 'h a/k: the radius-based Biot number of the series solution (3 Bi)' },\n { key: 'alpha_m2_per_s', symbol: 'α', unit: 'm^2/s', meaning: 'thermal diffusivity k/(ρc)' },\n { key: 'Fo', symbol: 'Fo', unit: '', meaning: 'Fourier number αt/a²' },\n { key: 'theta', symbol: 'θ/θ0', unit: '', meaning: 'lumped excess-temperature ratio e^{−t/τ}' },\n { key: 'T_K', symbol: 'T(t)', unit: 'K', meaning: 'the lumped temperature at t: what a thermometer in or on the sphere reads' },\n { key: 'Q_J', symbol: 'Q', unit: 'J', meaning: 'heat released to the fluid by t, ρcV(T0 − T(t)) (negative when the sphere warms)' },\n { key: 'theta_parent_mean', symbol: 'θ̄/θ0', unit: '', meaning: 'volume-mean excess-temperature ratio of the series solution (convection only)' },\n { key: 'parent_deviation', symbol: 'θ/θ̄ − 1', unit: '', meaning: signedRelativeDifference('lumped ratio', \"parent's volume mean\") },\n { key: 'T_centre_K', symbol: 'T(0, t)', unit: 'K', meaning: 'temperature at the centre from the series solution' },\n { key: 'T_surface_K', symbol: 'T(a, t)', unit: 'K', meaning: 'temperature at the surface from the series solution' },\n { key: 'h_rad_max_W_per_m2_K', symbol: 'h_rad', unit: 'W/(m^2*K)', meaning: 'εσ_SB(T_s + T∞)(T_s² + T∞²) at the hotter of T0 and T∞: the largest linearized radiative coefficient over the run' },\n { key: 'Bi_radiating', symbol: 'Bi_r', unit: '', meaning: '(h + h_rad)(a/3)/k: the Biot number with the largest radiative conductance added' },\n { key: 'T_radiating_K', symbol: 'T_r(t)', unit: 'K', meaning: 'the lumped temperature with the T⁴ loss kept (RK4). The linear-loss check does not apply to it; its premise is Bi_radiating ≤ 0.1, and it is not defined otherwise' },\n ],\n conditions: [\n 'initial condition: the sphere is at the uniform temperature T0 when it is immersed at t = 0',\n 'boundary: a uniform, constant coefficient h over the whole surface into fluid at T∞; the surroundings it radiates to are also at T∞',\n 'constant ρ, c and k over the temperature range; no internal heat source; the sphere is solid and homogeneous',\n ],\n comparison: {\n reference: 'the parent: the series solution of the sphere\\'s heat equation with the convective boundary, volume mean',\n valueKey: 'theta',\n referenceKey: 'theta_parent_mean',\n deviationKey: 'parent_deviation',\n method: 'eigenfunction series, roots of 1 − ζ cot ζ = Bi_a by MathTS findRoot (Brent) on each interval ((n−1)π, nπ), summed until e^{−ζ²Fo} < 1e-18',\n },\n notIncluded: [\n 'radiation in T_K and in the series: the linear-loss check bounds it; T_radiating_K keeps it, in the lumped model only',\n 'the temperature dependence of h (natural convection has h ∝ ΔT^{1/4}) and of ρ, c, k',\n 'the thermometer\\'s own heat capacity and contact resistance, and conduction along its leads',\n 'phase change at the surface (boiling in a quench), which makes h neither uniform nor constant',\n ],\n measurement: [\n 'record T(t) with a thermocouple embedded at the centre; plot ln((T − T∞)/(T0 − T∞)) against t — a straight line of slope ' +\n '−1/τ tests the lumped premise directly, and T_centre_K is the parent\\'s prediction for that sensor',\n 'compare the measured τ with tau_s; the difference between T_centre_K and T_surface_K is the internal gradient the lumped model drops',\n 'to use this as a calorimetric measurement of h, invert τ = ρca/(3h), valid only where both checks hold',\n ],\n links: [\n { id: 'model-heat', role: 'ρc_p ∂T/∂t = κ ∂²T/∂x², the heat equation; here in its radial form for a sphere' },\n { id: 'CE-thermal-diffusivity', role: 'α = k/(ρc_p), the diffusivity in the Fourier number' },\n { id: 'CE-heat-capacity', role: 'Q = mcΔT, the heat released as the sphere cools' },\n { id: 'CE-stefan-boltzmann', role: 'j = σT⁴, the radiative loss the linear-loss check bounds' },\n ],\n examples: {\n valid: {\n args: ['a_m=5mm', 'rho_kg_per_m3=8933', 'c_J_per_kg_K=385', 'k_W_per_m_K=401', 'h_W_per_m2_K=20', 'emissivity=0.05', 'T0_K=100degC', 'T_inf_K=20degC', 't_s=300'],\n note: 'a 1 cm polished copper ball cooling from 100 °C in still air at 20 °C, read after 5 minutes',\n fails: [],\n },\n failures: [\n {\n args: ['a_m=5cm', 'rho_kg_per_m3=7854', 'c_J_per_kg_K=434', 'k_W_per_m_K=60.5', 'h_W_per_m2_K=1000', 'emissivity=0', 'T0_K=90degC', 'T_inf_K=20degC', 't_s=600'],\n note: 'a 10 cm steel ball from 90 °C into stirred water: Bi ≈ 0.28, the centre lags the surface and one temperature does not describe it',\n fails: ['lumped'],\n },\n {\n args: ['a_m=5mm', 'rho_kg_per_m3=7854', 'c_J_per_kg_K=434', 'k_W_per_m_K=60.5', 'h_W_per_m2_K=10', 'emissivity=0.8', 'T0_K=1000', 'T_inf_K=300', 't_s=60'],\n note: 'a 1 cm oxidized steel ball at 1000 K in still air: radiation (h_rad ≈ 64 W/m²K) outweighs convection and the loss is not linear',\n fails: ['linear-loss'],\n },\n ],\n },\n /** Evaluate the lumped sphere temperature, parent-series comparison and heat-transfer checks for the supplied inputs. */\n run(i) {\n requirePositive(ID, i, ['a_m', 'rho_kg_per_m3', 'c_J_per_kg_K', 'k_W_per_m_K', 'h_W_per_m2_K', 'T0_K', 'T_inf_K']);\n const {\n a_m: a, rho_kg_per_m3: rho, c_J_per_kg_K: c, k_W_per_m_K: k, h_W_per_m2_K: h,\n emissivity: eps, T0_K: T0, T_inf_K: Tinf, t_s: t,\n } = i as Record<string, number>;\n if (!Number.isFinite(eps) || eps < 0 || eps > 1) throw new Error(`${ID}: emissivity must be in [0, 1] (got ${eps})`);\n if (!Number.isFinite(t) || t < 0) throw new Error(`${ID}: t_s must be a finite number ≥ 0 (got ${t})`);\n const tau = (rho * c * a) / (3 * h);\n const bi = (h * (a / 3)) / k;\n const biRadius = (h * a) / k;\n const alpha = k / (rho * c);\n const fo = (alpha * t) / (a * a);\n const theta = Math.exp(-t / tau);\n const series = sphereSeries(biRadius, fo);\n const dT0 = T0 - Tinf;\n const Tmax = Math.max(T0, Tinf);\n const hRad = eps * SIGMA_SB_SI * (Tmax + Tinf) * (Tmax * Tmax + Tinf * Tinf);\n const volume = (4 / 3) * Math.PI * a ** 3;\n const biRadiating = ((h + hRad) * (a / 3)) / k;\n const tRadiating = biRadiating <= MAX_BIOT ? lumpedRadiatingTemperature({ a, rho, c, h, eps, T0, Tinf, t }) : null;\n return {\n outputs: {\n tau_s: tau,\n Bi: bi,\n Bi_radius: biRadius,\n alpha_m2_per_s: alpha,\n Fo: fo,\n theta,\n T_K: Tinf + dT0 * theta,\n Q_J: rho * c * volume * dT0 * -Math.expm1(-t / tau),\n theta_parent_mean: series.mean,\n parent_deviation: theta / series.mean - 1,\n T_centre_K: Tinf + dT0 * series.centre,\n T_surface_K: Tinf + dT0 * series.surface,\n h_rad_max_W_per_m2_K: hRad,\n Bi_radiating: biRadiating,\n T_radiating_K: tRadiating,\n },\n checks: [\n check('lumped', 'one temperature for the sphere: internal conduction fast beside surface loss, Bi ≪ 1', 'h (a/3)/k', bi, '<=', MAX_BIOT,\n 'the conventional criterion Bi ≤ 0.1 with L_c = V/A (Incropera §5.2); parent_deviation shows the error it leaves at t'),\n check('linear-loss', 'the loss is linear in T − T∞: radiation small beside convection', 'εσ_SB(T_max + T∞)(T_max² + T∞²)/h', hRad / h, '<=', MAX_RADIATION_RATIO,\n 'chosen threshold: the neglected radiative conductance is ≤ 10% of h at the hottest point of the run (Incropera eq. 1.9 linearization)'),\n ],\n unchecked: [\n 'h is uniform over the sphere and constant in time; for natural convection it falls as the sphere approaches T∞',\n 'ρ, c and k are constant over [min(T0, T∞), max(T0, T∞)]',\n ],\n };\n },\n};\n"]}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* cases. The integrands there are smooth and monotone over bands that can span
|
|
4
|
-
* many decades, which a fixed grid resolves badly at the low end.
|
|
2
|
+
* ∫ₐᵇ f by MathTS `quad`, to `relTol` of the integral, for a one-signed `f`.
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* Each panel is accepted at an error estimate below `relTol` of its own value,
|
|
5
|
+
* so for a one-signed integrand the summed estimate is below `relTol` of the
|
|
6
|
+
* integral; a sign-changing integrand can exceed that and is refused.
|
|
7
|
+
* @throws Error when the result is not finite, or the summed error estimate is above twice
|
|
8
|
+
* `relTol` of the integral (the quadrature ran out of depth), with the interval in the message.
|
|
11
9
|
* @internal
|
|
12
10
|
*/
|
|
13
|
-
export declare function
|
|
11
|
+
export declare function adaptiveQuadrature(f: (x: number) => number, a: number, b: number, relTol?: number, maxDepth?: number): number;
|
|
14
12
|
//# sourceMappingURL=quadrature.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quadrature.d.ts","sourceRoot":"","sources":["../../src/cases/quadrature.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quadrature.d.ts","sourceRoot":"","sources":["../../src/cases/quadrature.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,SAAQ,EAAE,QAAQ,SAAK,GAAG,MAAM,CAOxH"}
|
package/dist/cases/quadrature.js
CHANGED
|
@@ -1,41 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Adaptive
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Adaptive quadrature for the parent-model comparisons of the applied cases:
|
|
3
|
+
* MathTS `quad`, adaptive Gauss–Kronrod (G7–K15), whose embedded error
|
|
4
|
+
* estimate refines each panel until it is below the relative tolerance. The
|
|
5
|
+
* integrands here are smooth, one-signed and monotone over bands that can
|
|
6
|
+
* span many decades, which a fixed grid resolves badly at the low end.
|
|
7
|
+
*
|
|
8
|
+
* `quad` is called with `atol: 0` (`@danielsimonjr/mathts-functions` ≥
|
|
9
|
+
* 0.68.3): its default accepts a panel whose error estimate is below an
|
|
10
|
+
* ABSOLUTE 1e-14, which would accept an SI-scaled integral (a noise power of
|
|
11
|
+
* 1e-13 V²) at a relative error of order one. `quad` also does not throw when
|
|
12
|
+
* the depth cap is reached; its error estimate is read here, so a
|
|
13
|
+
* non-convergence is still an error rather than a number.
|
|
5
14
|
*
|
|
6
15
|
* @module cases/quadrature
|
|
7
16
|
*/
|
|
17
|
+
import { quad } from '@danielsimonjr/mathts-functions';
|
|
8
18
|
/**
|
|
9
|
-
* ∫ₐᵇ f by
|
|
10
|
-
*
|
|
19
|
+
* ∫ₐᵇ f by MathTS `quad`, to `relTol` of the integral, for a one-signed `f`.
|
|
20
|
+
*
|
|
21
|
+
* Each panel is accepted at an error estimate below `relTol` of its own value,
|
|
22
|
+
* so for a one-signed integrand the summed estimate is below `relTol` of the
|
|
23
|
+
* integral; a sign-changing integrand can exceed that and is refused.
|
|
24
|
+
* @throws Error when the result is not finite, or the summed error estimate is above twice
|
|
25
|
+
* `relTol` of the integral (the quadrature ran out of depth), with the interval in the message.
|
|
11
26
|
* @internal
|
|
12
27
|
*/
|
|
13
|
-
export function
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
for (let i = 1; i < 64; i++)
|
|
22
|
-
scale = Math.max(scale, Math.abs(f(a + ((b - a) * i) / 64)) * (b - a));
|
|
23
|
-
const eps = relTol * (scale > 0 ? scale : 1);
|
|
24
|
-
const step = (lo, hi, flo, fmid, fhi, s, tol, depth) => {
|
|
25
|
-
const mid = (lo + hi) / 2;
|
|
26
|
-
const lm = (lo + mid) / 2;
|
|
27
|
-
const rm = (mid + hi) / 2;
|
|
28
|
-
const flm = f(lm);
|
|
29
|
-
const frm = f(rm);
|
|
30
|
-
const left = ((mid - lo) / 6) * (flo + 4 * flm + fmid);
|
|
31
|
-
const right = ((hi - mid) / 6) * (fmid + 4 * frm + fhi);
|
|
32
|
-
const diff = left + right - s;
|
|
33
|
-
if (Math.abs(diff) <= 15 * tol)
|
|
34
|
-
return left + right + diff / 15;
|
|
35
|
-
if (depth >= maxDepth)
|
|
36
|
-
throw new Error(`adaptiveSimpson: no convergence on [${lo}, ${hi}] at depth ${depth}`);
|
|
37
|
-
return step(lo, mid, flo, flm, fmid, left, tol / 2, depth + 1) + step(mid, hi, fmid, frm, fhi, right, tol / 2, depth + 1);
|
|
38
|
-
};
|
|
39
|
-
return step(a, b, fa, fm, fb, whole, eps, 0);
|
|
28
|
+
export function adaptiveQuadrature(f, a, b, relTol = 1e-10, maxDepth = 60) {
|
|
29
|
+
const { value, error } = quad(f, a, b, { tol: relTol, atol: 0, maxDepth });
|
|
30
|
+
if (!Number.isFinite(value))
|
|
31
|
+
throw new Error(`adaptiveQuadrature: non-finite integral ${value} on [${a}, ${b}]`);
|
|
32
|
+
if (error > 2 * relTol * Math.abs(value)) {
|
|
33
|
+
throw new Error(`adaptiveQuadrature: no convergence on [${a}, ${b}] (error estimate ${error} at relTol ${relTol})`);
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
40
36
|
}
|
|
41
37
|
//# sourceMappingURL=quadrature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quadrature.js","sourceRoot":"","sources":["../../src/cases/quadrature.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"quadrature.js","sourceRoot":"","sources":["../../src/cases/quadrature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAwB,EAAE,CAAS,EAAE,CAAS,EAAE,MAAM,GAAG,KAAK,EAAE,QAAQ,GAAG,EAAE;IAC9G,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjH,IAAI,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,KAAK,CAAC,qBAAqB,KAAK,cAAc,MAAM,GAAG,CAAC,CAAC;IACtH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * Adaptive quadrature for the parent-model comparisons of the applied cases:\n * MathTS `quad`, adaptive Gauss–Kronrod (G7–K15), whose embedded error\n * estimate refines each panel until it is below the relative tolerance. The\n * integrands here are smooth, one-signed and monotone over bands that can\n * span many decades, which a fixed grid resolves badly at the low end.\n *\n * `quad` is called with `atol: 0` (`@danielsimonjr/mathts-functions` ≥\n * 0.68.3): its default accepts a panel whose error estimate is below an\n * ABSOLUTE 1e-14, which would accept an SI-scaled integral (a noise power of\n * 1e-13 V²) at a relative error of order one. `quad` also does not throw when\n * the depth cap is reached; its error estimate is read here, so a\n * non-convergence is still an error rather than a number.\n *\n * @module cases/quadrature\n */\nimport { quad } from '@danielsimonjr/mathts-functions';\n\n/**\n * ∫ₐᵇ f by MathTS `quad`, to `relTol` of the integral, for a one-signed `f`.\n *\n * Each panel is accepted at an error estimate below `relTol` of its own value,\n * so for a one-signed integrand the summed estimate is below `relTol` of the\n * integral; a sign-changing integrand can exceed that and is refused.\n * @throws Error when the result is not finite, or the summed error estimate is above twice\n * `relTol` of the integral (the quadrature ran out of depth), with the interval in the message.\n * @internal\n */\nexport function adaptiveQuadrature(f: (x: number) => number, a: number, b: number, relTol = 1e-10, maxDepth = 60): number {\n const { value, error } = quad(f, a, b, { tol: relTol, atol: 0, maxDepth });\n if (!Number.isFinite(value)) throw new Error(`adaptiveQuadrature: non-finite integral ${value} on [${a}, ${b}]`);\n if (error > 2 * relTol * Math.abs(value)) {\n throw new Error(`adaptiveQuadrature: no convergence on [${a}, ${b}] (error estimate ${error} at relTol ${relTol})`);\n }\n return value;\n}\n"]}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { H_SI, K_B_SI } from '../core/constants.js';
|
|
17
17
|
import { catalogRelations } from '../bridges/catalog-load.js';
|
|
18
18
|
import { evaluateCatalogRelation } from '../bridges/relation-eval.js';
|
|
19
|
-
import {
|
|
19
|
+
import { adaptiveQuadrature } from './quadrature.js';
|
|
20
20
|
import { check, requirePositive, signedRelativeDifference } from './types.js';
|
|
21
21
|
const ID = 'case-resistor-noise';
|
|
22
22
|
/** h f_hi/(k_B T) ceiling: the Planck factor x/(eˣ−1) is then within x/2 ≤ 0.5% of 1. @internal */
|
|
@@ -88,12 +88,12 @@ export const RESISTOR_NOISE_CASE = {
|
|
|
88
88
|
{ key: 'V_rms_unloaded_V', symbol: 'V_rms,0', unit: 'V', meaning: 'open-circuit value √(4k_BTRB), with no instrument attached' },
|
|
89
89
|
{ key: 'V_rms_V', symbol: 'V_rms', unit: 'V', meaning: 'the RMS noise voltage the instrument reads (scalar model)' },
|
|
90
90
|
{ key: 'loading_ratio', symbol: 'V_rms/V_rms,0', unit: '', meaning: '√(R_in/(R + R_in)): what the input resistance removes' },
|
|
91
|
-
{ key: 'V_rms_parent_V', symbol: 'V_rms,parent', unit: 'V', meaning: 'the parent spectrum integrated over the band (adaptive
|
|
91
|
+
{ key: 'V_rms_parent_V', symbol: 'V_rms,parent', unit: 'V', meaning: 'the parent spectrum integrated over the band (MathTS quad, adaptive Gauss–Kronrod)' },
|
|
92
92
|
{ key: 'parent_deviation', symbol: 'V_rms/V_rms,parent − 1', unit: '', meaning: signedRelativeDifference('scalar result', 'parent') },
|
|
93
93
|
{ key: 'V_rms_rel_sigma', symbol: 'σ(V_rms)/V_rms', unit: '', meaning: 'statistical scatter of an RMS averaged over t_avg: 1/(2√(B t_avg)) (Dicke radiometer relation)' },
|
|
94
|
-
{ key: 'V_rms_total_V', symbol: 'V_rms,total', unit: 'V', meaning: 'what the instrument reads with its amplifier noise added in quadrature;
|
|
95
|
-
{ key: 'resistor_fraction', symbol: 'φ', unit: '', meaning: "the thermal share of the read noise power, 4k_BTR_eff/(4k_BTR_eff + e_n² + i_n²R_eff²);
|
|
96
|
-
{ key: 'T_n_K', symbol: 'T_n', unit: 'K', meaning: "the amplifier's noise temperature for the source R_eff, (e_n² + i_n²R_eff²)/(4k_B R_eff);
|
|
94
|
+
{ key: 'V_rms_total_V', symbol: 'V_rms,total', unit: 'V', meaning: 'what the instrument reads with its amplifier noise added in quadrature; not defined without e_n2/i_n2' },
|
|
95
|
+
{ key: 'resistor_fraction', symbol: 'φ', unit: '', meaning: "the thermal share of the read noise power, 4k_BTR_eff/(4k_BTR_eff + e_n² + i_n²R_eff²); not defined without e_n2/i_n2" },
|
|
96
|
+
{ key: 'T_n_K', symbol: 'T_n', unit: 'K', meaning: "the amplifier's noise temperature for the source R_eff, (e_n² + i_n²R_eff²)/(4k_B R_eff); not defined without e_n2/i_n2" },
|
|
97
97
|
],
|
|
98
98
|
conditions: [
|
|
99
99
|
'thermal equilibrium: R and the instrument input at one temperature T, no DC current through R',
|
|
@@ -105,7 +105,7 @@ export const RESISTOR_NOISE_CASE = {
|
|
|
105
105
|
valueKey: 'V_rms_V',
|
|
106
106
|
referenceKey: 'V_rms_parent_V',
|
|
107
107
|
deviationKey: 'parent_deviation',
|
|
108
|
-
method: 'adaptive
|
|
108
|
+
method: 'MathTS quad, adaptive Gauss–Kronrod (G7–K15) quadrature, relative tolerance 1e-10',
|
|
109
109
|
},
|
|
110
110
|
notIncluded: [
|
|
111
111
|
"the amplifier's noise when e_n2 and i_n2 are left out; when given, their 1/f corners and their correlation (taken white and uncorrelated)",
|
|
@@ -164,7 +164,7 @@ export const RESISTOR_NOISE_CASE = {
|
|
|
164
164
|
const S = spectral(T, rEff);
|
|
165
165
|
const S0 = spectral(T, R);
|
|
166
166
|
const vRms = Math.sqrt(S * B);
|
|
167
|
-
const vParent = Math.sqrt(
|
|
167
|
+
const vParent = Math.sqrt(adaptiveQuadrature((f) => parentDensity(f, T, rEff, C), fLo, fHi));
|
|
168
168
|
const x = (H_SI * fHi) / (K_B_SI * T);
|
|
169
169
|
const wrc = 2 * Math.PI * fHi * rEff * C;
|
|
170
170
|
const checks = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resistor-noise.js","sourceRoot":"","sources":["../../src/cases/resistor-noise.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resistor-noise.js","sourceRoot":"","sources":["../../src/cases/resistor-noise.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Applied case: the thermal (Johnson–Nyquist) noise voltage of a resistor as an\n * instrument reads it — over a finite band, loaded by the instrument's input\n * resistance and capacitance.\n *\n * The catalog's BE-58 gives the flat spectral density S_V = 4 k_B T R. A\n * measurement reads an RMS voltage over a band, through an input network, so\n * this case adds the band, the loading, and the two premises that make the\n * spectrum flat (hf ≪ k_BT, and the input RC pole above the band), and checks\n * both. The parent spectrum is integrated numerically for comparison. Given\n * the amplifier's e_n and i_n, it adds them to the reading and checks that the\n * resistor's share can still be resolved in the averaging time.\n *\n * @module cases/resistor-noise\n */\nimport { H_SI, K_B_SI } from '../core/constants.js';\nimport { catalogRelations } from '../bridges/catalog-load.js';\nimport { evaluateCatalogRelation } from '../bridges/relation-eval.js';\nimport { adaptiveQuadrature } from './quadrature.js';\nimport { check, requirePositive, signedRelativeDifference, type AppliedCase } from './types.js';\n\nconst ID = 'case-resistor-noise';\n\n/** h f_hi/(k_B T) ceiling: the Planck factor x/(eˣ−1) is then within x/2 ≤ 0.5% of 1. @internal */\nexport const CLASSICAL_MAX_X = 0.01;\n\n/** 2π f_hi R_eff C_in ceiling: the input RC pole then passes 1/(1+w²) ≥ 99% at f_hi. @internal */\nexport const FLAT_BAND_MAX_WRC = 0.1;\n\n/**\n * Ceiling on σ(S_R)/S_R = 1/(φ√(B t_avg)): the resistor's noise power, left after\n * subtracting an exactly known amplifier power, scatters by ≤ 1%. The total\n * power scatters by 1/√(B t_avg) (Dicke 1946); φ is the resistor's share of it.\n * @internal\n */\nexport const AMPLIFIER_MAX_REL_SIGMA = 0.01;\n\n/** Nyquist's thermal spectral density at f, shaped by the input RC; `x/expm1(x)` → 1 as x → 0. */\nfunction parentDensity(f: number, T: number, rEff: number, c: number): number {\n const x = (H_SI * f) / (K_B_SI * T);\n const planck = x === 0 ? 1 : x / Math.expm1(x);\n const w = 2 * Math.PI * f * rEff * c;\n return (4 * K_B_SI * T * rEff * planck) / (1 + w * w);\n}\n\nexport const RESISTOR_NOISE_CASE: AppliedCase = {\n id: ID,\n title: 'Resistor thermal-noise measurement (bandwidth, instrument loading)',\n parameters: [\n { key: 'T_K', quantity: 'temperature', symbol: 'T', unit: 'K', meaning: 'absolute temperature of the resistor and of the instrument input, > 0 K', temperature: 'absolute' },\n { key: 'R_ohm', quantity: 'resistance under test', symbol: 'R', unit: 'ohm', meaning: 'the resistor whose noise is measured, > 0' },\n { key: 'R_in_ohm', quantity: 'instrument input resistance', symbol: 'R_in', unit: 'ohm', meaning: 'the input resistance in parallel with R, > 0 (a physical resistor at T)' },\n { key: 'C_in_F', quantity: 'input capacitance', symbol: 'C_in', unit: 'F', meaning: 'instrument input plus cable capacitance in parallel with R, ≥ 0' },\n { key: 'f_lo_Hz', quantity: 'lower band edge', symbol: 'f_lo', unit: 'Hz', meaning: 'lower edge of the ideal (brick-wall) measurement band, ≥ 0' },\n { key: 'f_hi_Hz', quantity: 'upper band edge', symbol: 'f_hi', unit: 'Hz', meaning: 'upper edge of the band, > f_lo; B = f_hi − f_lo is the noise-equivalent bandwidth' },\n { key: 't_avg_s', quantity: 'averaging time', symbol: 't_avg', unit: 's', meaning: 'how long the RMS is averaged, > 0' },\n {\n key: 'e_n2_V2_per_Hz',\n quantity: 'amplifier voltage-noise power density',\n symbol: 'e_n²',\n unit: 'V^2/Hz',\n meaning: \"the square of the amplifier's input voltage noise e_n, white over the band (4 nV/√Hz → 1.6e-17), ≥ 0\",\n optional: true,\n },\n {\n key: 'i_n2_A2_per_Hz',\n quantity: 'amplifier current-noise power density',\n symbol: 'i_n²',\n unit: 'A^2/Hz',\n meaning: \"the square of the amplifier's input current noise i_n, white over the band (1 pA/√Hz → 1e-24), ≥ 0\",\n optional: true,\n },\n ],\n governing: {\n parent: [\n 'S_V(f) = 4 R_eff · hf/(e^{hf/k_BT} − 1) · 1/(1 + (2πf R_eff C_in)²) (Nyquist 1928, thermal part; seen through the input RC)',\n 'V_rms² = ∫_{f_lo}^{f_hi} S_V(f) df',\n ],\n scalar: [\n 'S_V = 4 k_B T R_eff, R_eff = R R_in/(R + R_in) (BE-58 with the loaded resistance)',\n 'V_rms = √(4 k_B T R_eff B), B = f_hi − f_lo',\n 'through an amplifier: V_rms,total² = (4 k_B T R_eff + e_n² + i_n² R_eff²) B, e_n and i_n uncorrelated (the e_n–i_n model; Motchenbacher & Connelly 1993)',\n ],\n distinction:\n 'S_V(f) is a spectral density — a function of frequency fixed by the fluctuation–dissipation theorem and shaped by ' +\n 'the input network; 4k_BTR_eff is its flat, classical value, and √(4k_BT R_eff B) integrates that constant over an ' +\n 'ideal band. Nyquist derived it from the thermal modes of a transmission line (a 1-D field); the lumped circuit keeps ' +\n 'only the port voltage.',\n },\n observable: 'V_rms_V',\n outputs: [\n { key: 'B_Hz', symbol: 'B', unit: 'Hz', meaning: 'noise-equivalent bandwidth f_hi − f_lo' },\n { key: 'R_eff_ohm', symbol: 'R_eff', unit: 'ohm', meaning: 'R in parallel with R_in: the resistance the instrument sees' },\n { key: 'S_V_V2_per_Hz', symbol: 'S_V', unit: 'V^2/Hz', meaning: 'flat one-sided spectral density 4k_BT R_eff' },\n { key: 'V_rms_unloaded_V', symbol: 'V_rms,0', unit: 'V', meaning: 'open-circuit value √(4k_BTRB), with no instrument attached' },\n { key: 'V_rms_V', symbol: 'V_rms', unit: 'V', meaning: 'the RMS noise voltage the instrument reads (scalar model)' },\n { key: 'loading_ratio', symbol: 'V_rms/V_rms,0', unit: '', meaning: '√(R_in/(R + R_in)): what the input resistance removes' },\n { key: 'V_rms_parent_V', symbol: 'V_rms,parent', unit: 'V', meaning: 'the parent spectrum integrated over the band (MathTS quad, adaptive Gauss–Kronrod)' },\n { key: 'parent_deviation', symbol: 'V_rms/V_rms,parent − 1', unit: '', meaning: signedRelativeDifference('scalar result', 'parent') },\n { key: 'V_rms_rel_sigma', symbol: 'σ(V_rms)/V_rms', unit: '', meaning: 'statistical scatter of an RMS averaged over t_avg: 1/(2√(B t_avg)) (Dicke radiometer relation)' },\n { key: 'V_rms_total_V', symbol: 'V_rms,total', unit: 'V', meaning: 'what the instrument reads with its amplifier noise added in quadrature; not defined without e_n2/i_n2' },\n { key: 'resistor_fraction', symbol: 'φ', unit: '', meaning: \"the thermal share of the read noise power, 4k_BTR_eff/(4k_BTR_eff + e_n² + i_n²R_eff²); not defined without e_n2/i_n2\" },\n { key: 'T_n_K', symbol: 'T_n', unit: 'K', meaning: \"the amplifier's noise temperature for the source R_eff, (e_n² + i_n²R_eff²)/(4k_B R_eff); not defined without e_n2/i_n2\" },\n ],\n conditions: [\n 'thermal equilibrium: R and the instrument input at one temperature T, no DC current through R',\n 'the instrument reads the voltage across R ∥ R_in ∥ C_in (open-circuit source, no other load)',\n 'stationary Gaussian noise; the band is an ideal brick wall of width B (the real filter enters only through its noise-equivalent bandwidth)',\n ],\n comparison: {\n reference: \"the parent: Nyquist's thermal spectrum through the input RC, integrated over [f_lo, f_hi]\",\n valueKey: 'V_rms_V',\n referenceKey: 'V_rms_parent_V',\n deviationKey: 'parent_deviation',\n method: 'MathTS quad, adaptive Gauss–Kronrod (G7–K15) quadrature, relative tolerance 1e-10',\n },\n notIncluded: [\n \"the amplifier's noise when e_n2 and i_n2 are left out; when given, their 1/f corners and their correlation (taken white and uncorrelated)\",\n '1/f (excess) noise, which needs a current through R',\n 'the zero-point term hf/2 of the quantum fluctuation–dissipation theorem (the parent here is the thermal part)',\n 'frequency dependence of R and R_in over the band',\n ],\n measurement: [\n 'digitize the voltage across R through a band-pass of noise-equivalent bandwidth B and average the RMS over t_avg; ' +\n 'compare with V_rms_V ± V_rms_rel_sigma·V_rms_V (statistical scatter only)',\n \"measure the amplifier's own noise with its input shorted and subtract it in quadrature before comparing\",\n '`upt confront --bridge=be-58`: the NIST Johnson-noise-thermometry k_B, which tests S_V = 4k_BTR with R traceable to the quantum Hall effect',\n ],\n links: [\n { id: `be-${58}`, role: 'the flat spectral density S_V = 4k_BTR (catalog evaluator: `upt evaluate be-58`)' },\n { id: `be-${55}`, role: 'quantum Hall resistance standard to which R is traceable in the JNT comparison' },\n ],\n examples: {\n valid: {\n args: ['T_K=300', 'R_ohm=1kohm', 'R_in_ohm=1Mohm', 'C_in_F=20pF', 'f_lo_Hz=0', 'f_hi_Hz=10kHz', 't_avg_s=10', 'e_n2_V2_per_Hz=1e-18', 'i_n2_A2_per_Hz=1e-24'],\n note: 'a 1 kΩ resistor at 300 K, a 1 MΩ ∥ 20 pF input with 1 nV/√Hz and 1 pA/√Hz of amplifier noise, a 10 kHz band, 10 s of averaging',\n fails: [],\n },\n failures: [\n {\n args: ['T_K=20mK', 'R_ohm=50', 'R_in_ohm=1Mohm', 'C_in_F=0', 'f_lo_Hz=1GHz', 'f_hi_Hz=2GHz', 't_avg_s=1'],\n note: 'a 50 Ω load at 20 mK read at 1–2 GHz: hf/k_BT ≈ 4.8, the spectrum is not flat and 4k_BTR overstates it',\n fails: ['classical'],\n },\n {\n args: ['T_K=300', 'R_ohm=1Mohm', 'R_in_ohm=10Mohm', 'C_in_F=100pF', 'f_lo_Hz=0', 'f_hi_Hz=100kHz', 't_avg_s=1'],\n note: 'a 1 MΩ resistor through 100 pF: the RC pole sits near 1.7 Hz, far below the 100 kHz band edge',\n fails: ['flat-band'],\n },\n {\n args: ['T_K=300', 'R_ohm=10', 'R_in_ohm=1Mohm', 'C_in_F=20pF', 'f_lo_Hz=0', 'f_hi_Hz=10kHz', 't_avg_s=10', 'e_n2_V2_per_Hz=1.6e-17', 'i_n2_A2_per_Hz=1e-24'],\n note: 'a 10 Ω resistor through a 4 nV/√Hz amplifier: the amplifier adds ~100× the resistor\\'s noise power, which 10 s cannot resolve to 1%',\n fails: ['amplifier'],\n },\n ],\n },\n /** Evaluate the measured Johnson-Nyquist RMS voltage and instrument-regime checks for the supplied inputs. */\n run(i) {\n requirePositive(ID, i, ['T_K', 'R_ohm', 'R_in_ohm', 'f_hi_Hz', 't_avg_s']);\n const { T_K: T, R_ohm: R, R_in_ohm: Rin, C_in_F: C, f_lo_Hz: fLo, f_hi_Hz: fHi, t_avg_s: tAvg } = i as Record<string, number>;\n if (!Number.isFinite(C) || C < 0) throw new Error(`${ID}: C_in_F must be a finite number ≥ 0 (got ${C})`);\n if (!Number.isFinite(fLo) || fLo < 0 || fLo >= fHi) throw new Error(`${ID}: need 0 ≤ f_lo_Hz < f_hi_Hz (got ${fLo}, ${fHi})`);\n const B = fHi - fLo;\n const rEff = (R * Rin) / (R + Rin);\n const noise = catalogRelations().find((row) => row.target === 'voltage-noise-density');\n if (noise === undefined) throw new Error(`${ID}: the resistor-noise relation is not in the catalog`);\n const spectral = (temperature: number, ohms: number): number =>\n evaluateCatalogRelation(noise, { 'johnson-temperature': temperature, resistance: ohms });\n const S = spectral(T, rEff);\n const S0 = spectral(T, R);\n const vRms = Math.sqrt(S * B);\n const vParent = Math.sqrt(adaptiveQuadrature((f) => parentDensity(f, T, rEff, C), fLo, fHi));\n const x = (H_SI * fHi) / (K_B_SI * T);\n const wrc = 2 * Math.PI * fHi * rEff * C;\n const checks = [\n check('classical', 'flat, classical spectrum: hf ≪ k_BT across the band', 'h f_hi/(k_B T)', x, '<=', CLASSICAL_MAX_X,\n 'chosen threshold for ≪ 1: the Planck factor at f_hi is then within x/2 ≤ 0.5% of 1'),\n check('flat-band', 'the input RC pole lies above the band', '2π f_hi R_eff C_in', wrc, '<=', FLAT_BAND_MAX_WRC,\n 'chosen threshold for ≪ 1: the RC low-pass then passes ≥ 99% of the density at f_hi'),\n ];\n const unchecked = [\n 'R_in is a physical resistance at T; an actively synthesized or cold input adds less noise than its resistance would, ' +\n 'down to the resistor alone divided by the input: V_rms,0 · R_in/(R + R_in)',\n 'no DC current through R, so no 1/f excess noise',\n ];\n const withAmplifier = i.e_n2_V2_per_Hz !== undefined || i.i_n2_A2_per_Hz !== undefined;\n let amp: { total: number; fraction: number; tN: number } | null = null;\n if (withAmplifier) {\n const en2 = i.e_n2_V2_per_Hz ?? 0;\n const in2 = i.i_n2_A2_per_Hz ?? 0;\n for (const [k, v] of [['e_n2_V2_per_Hz', en2], ['i_n2_A2_per_Hz', in2]] as const) {\n if (!Number.isFinite(v) || v < 0) throw new Error(`${ID}: ${k} must be a finite number ≥ 0 (got ${v})`);\n }\n const excess = en2 + in2 * rEff * rEff;\n const fraction = S / (S + excess);\n amp = { total: Math.sqrt((S + excess) * B), fraction, tN: excess / (4 * K_B_SI * rEff) };\n checks.push(\n check('amplifier', \"the resistor's noise is resolved above the amplifier's in t_avg\", '1/(φ √(B t_avg))', 1 / (fraction * Math.sqrt(B * tAvg)), '<=',\n AMPLIFIER_MAX_REL_SIGMA,\n \"chosen threshold: after subtracting the amplifier's power (known exactly, e.g. from a long shorted-input run) the resistor's power scatters by ≤ 1%\"),\n );\n unchecked.push(\n `e_n and i_n are white over the band and uncorrelated${i.e_n2_V2_per_Hz === undefined ? '; e_n was not given and is taken as 0' : ''}` +\n `${i.i_n2_A2_per_Hz === undefined ? '; i_n was not given and is taken as 0' : ''}`,\n );\n }\n return {\n outputs: {\n B_Hz: B,\n R_eff_ohm: rEff,\n S_V_V2_per_Hz: S,\n V_rms_unloaded_V: Math.sqrt(S0 * B),\n V_rms_V: vRms,\n loading_ratio: Math.sqrt(S / S0),\n V_rms_parent_V: vParent,\n parent_deviation: vRms / vParent - 1,\n V_rms_rel_sigma: 1 / (2 * Math.sqrt(B * tAvg)),\n V_rms_total_V: amp?.total ?? null,\n resistor_fraction: amp?.fraction ?? null,\n T_n_K: amp?.tN ?? null,\n },\n checks,\n unchecked,\n };\n },\n};\n"]}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { type AppliedCase } from './types.js';
|
|
2
|
-
/** Vacuum permeability μ0, CODATA 2018 (N/A²). @internal */
|
|
3
|
-
export declare const MU_0_SI = 0.00000125663706212;
|
|
4
|
-
/** Vacuum permittivity ε0 = 1/(μ0 c²) (F/m). @internal */
|
|
5
|
-
export declare const EPS_0_SI: number;
|
|
6
2
|
/** ωε/σ ceiling: the displacement current then moves the penetration depth by ≈ ωε/(2σ) ≤ 0.5%. @internal */
|
|
7
3
|
export declare const MAX_DISPLACEMENT_RATIO = 0.01;
|
|
8
4
|
/** l/δ ceiling for a local (classical) conductivity. @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-depth.d.ts","sourceRoot":"","sources":["../../src/cases/skin-depth.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAoD,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAIhG,
|
|
1
|
+
{"version":3,"file":"skin-depth.d.ts","sourceRoot":"","sources":["../../src/cases/skin-depth.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAoD,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAIhG,6GAA6G;AAC7G,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,kEAAkE;AAClE,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,gGAAgG;AAChG,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,0GAA0G;AAC1G,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,eAAO,MAAM,eAAe,EAAE,WAwI7B,CAAC"}
|
package/dist/cases/skin-depth.js
CHANGED
|
@@ -16,13 +16,9 @@
|
|
|
16
16
|
*
|
|
17
17
|
* @module cases/skin-depth
|
|
18
18
|
*/
|
|
19
|
-
import {
|
|
19
|
+
import { EPS0_SI, MU0_SI } from '../core/constants.js';
|
|
20
20
|
import { check, requirePositive, signedRelativeDifference } from './types.js';
|
|
21
21
|
const ID = 'case-skin-depth';
|
|
22
|
-
/** Vacuum permeability μ0, CODATA 2018 (N/A²). @internal */
|
|
23
|
-
export const MU_0_SI = 1.25663706212e-6;
|
|
24
|
-
/** Vacuum permittivity ε0 = 1/(μ0 c²) (F/m). @internal */
|
|
25
|
-
export const EPS_0_SI = 1 / (MU_0_SI * C_SI * C_SI);
|
|
26
22
|
/** ωε/σ ceiling: the displacement current then moves the penetration depth by ≈ ωε/(2σ) ≤ 0.5%. @internal */
|
|
27
23
|
export const MAX_DISPLACEMENT_RATIO = 0.01;
|
|
28
24
|
/** l/δ ceiling for a local (classical) conductivity. @internal */
|
|
@@ -140,9 +136,9 @@ export const SKIN_DEPTH_CASE = {
|
|
|
140
136
|
requirePositive(ID, i, ['rho_ohm_m', 'f_Hz', 'mu_r', 'eps_r', 'l_mfp_m', 'v_carrier_m_per_s', 'thickness_m']);
|
|
141
137
|
const { rho_ohm_m: rho, f_Hz: f, mu_r: muR, eps_r: epsR, l_mfp_m: l, v_carrier_m_per_s: v, thickness_m: d } = i;
|
|
142
138
|
const omega = 2 * Math.PI * f;
|
|
143
|
-
const mu = muR *
|
|
139
|
+
const mu = muR * MU0_SI;
|
|
144
140
|
const delta = Math.sqrt((2 * rho) / (omega * mu));
|
|
145
|
-
const r = omega * epsR *
|
|
141
|
+
const r = omega * epsR * EPS0_SI * rho;
|
|
146
142
|
const deltaMaxwell = delta * maxwellDepthFactor(r);
|
|
147
143
|
const omegaTau = (omega * l) / v;
|
|
148
144
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-depth.js","sourceRoot":"","sources":["../../src/cases/skin-depth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skin-depth.js","sourceRoot":"","sources":["../../src/cases/skin-depth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAoB,MAAM,YAAY,CAAC;AAEhG,MAAM,EAAE,GAAG,iBAAiB,CAAC;AAE7B,6GAA6G;AAC7G,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C,kEAAkE;AAClE,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,gGAAgG;AAChG,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,0GAA0G;AAC1G,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,sFAAsF;IAC7F,UAAU,EAAE;QACV,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qFAAqF,EAAE;QACzK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,EAAE;QACrG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,sEAAsE,EAAE;QAC5J,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,mGAAmG,EAAE;QAC1L,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,yGAAyG,EAAE;QAClM,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,mIAAmI,EAAE;QAC/N,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,8DAA8D,EAAE;KACzJ;IACD,SAAS,EAAE;QACT,MAAM,EAAE;YACN,2FAA2F;YAC3F,uHAAuH;YACvH,+FAA+F;SAChG;QACD,MAAM,EAAE;YACN,uGAAuG;YACvG,mEAAmE;YACnE,0FAA0F;SAC3F;QACD,WAAW,EACT,uHAAuH;YACvH,iHAAiH;YACjH,iHAAiH;YACjH,sDAAsD;KACzD;IACD,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE;QACP,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE;QACnF,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,0EAA0E,EAAE;QAC/H,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,6EAA6E,EAAE;QACtI,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,oFAAoF,EAAE;QACnJ,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,wBAAwB,CAAC,aAAa,EAAE,0BAA0B,CAAC,EAAE;QACzI,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,8CAA8C,EAAE;QAChH,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,gCAAgC,EAAE;QACxF,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,6DAA6D,EAAE;QACpH,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE;QAClG,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,kFAAkF,EAAE;KACvJ;IACD,UAAU,EAAE;QACV,2HAA2H;QAC3H,4GAA4G;QAC5G,qIAAqI;KACtI;IACD,UAAU,EAAE;QACV,SAAS,EAAE,oGAAoG;QAC/G,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,iBAAiB;QAC/B,YAAY,EAAE,mBAAmB;QACjC,MAAM,EAAE,mDAAmD;KAC5D;IACD,WAAW,EAAE;QACX,wFAAwF;QACxF,uGAAuG;QACvG,iIAAiI;QACjI,2EAA2E;QAC3E,kHAAkH;KACnH;IACD,WAAW,EAAE;QACX,0HAA0H;YACxH,8CAA8C;QAChD,8GAA8G;QAC9G,6KAA6K;KAC9K;IACD,KAAK,EAAE;QACL,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,qGAAqG,EAAE;QACtI,EAAE,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,0HAA0H,EAAE;QAClK,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,4GAA4G,EAAE;QACxI,EAAE,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,mGAAmG,EAAE;KAC1I;IACD,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,mBAAmB,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,0BAA0B,EAAE,iBAAiB,CAAC;YAC5H,IAAI,EAAE,oEAAoE;YAC1E,KAAK,EAAE,EAAE;SACV;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,CAAC,oBAAoB,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,0BAA0B,EAAE,iBAAiB,CAAC;gBAC/H,IAAI,EAAE,0HAA0H;gBAChI,KAAK,EAAE,CAAC,OAAO,CAAC;aACjB;YACD;gBACE,IAAI,EAAE,CAAC,mBAAmB,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,0BAA0B,EAAE,kBAAkB,CAAC;gBAC/H,IAAI,EAAE,8HAA8H;gBACpI,KAAK,EAAE,CAAC,OAAO,CAAC;aACjB;YACD;gBACE,IAAI,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,yBAAyB,EAAE,kBAAkB,CAAC;gBAC5H,IAAI,EAAE,yGAAyG;gBAC/G,KAAK,EAAE,CAAC,gBAAgB,CAAC;aAC1B;SACF;KACF;IACD,6FAA6F;IAC7F,GAAG,CAAC,CAAC;QACH,eAAe,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC;QAC9G,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,CAA2B,CAAC;QAC1I,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC;QACvC,MAAM,YAAY,GAAG,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO;YACL,OAAO,EAAE;gBACP,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,GAAG,GAAG,KAAK;gBACpB,eAAe,EAAE,YAAY;gBAC7B,iBAAiB,EAAE,KAAK,GAAG,YAAY,GAAG,CAAC;gBAC3C,kBAAkB,EAAE,CAAC;gBACrB,SAAS,EAAE,CAAC,GAAG,KAAK;gBACpB,SAAS,EAAE,QAAQ;gBACnB,eAAe,EAAE,CAAC,GAAG,KAAK;gBAC1B,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aACvC;YACD,MAAM,EAAE;gBACN,KAAK,CAAC,gBAAgB,EAAE,2DAA2D,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAC1H,gGAAgG,CAAC;gBACnG,KAAK,CAAC,OAAO,EAAE,qFAAqF,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,aAAa,EACzI,8KAA8K,CAAC;gBACjL,KAAK,CAAC,iBAAiB,EAAE,0EAA0E,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EACzI,8FAA8F,CAAC;gBACjG,KAAK,CAAC,OAAO,EAAE,oDAAoD,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAC9G,sGAAsG,CAAC;aAC1G;YACD,SAAS,EAAE;gBACT,4HAA4H;gBAC5H,8FAA8F;aAC/F;SACF,CAAC;IACJ,CAAC;CACF,CAAC","sourcesContent":["/**\n * Applied case: the skin depth of a planar conductor driven at one frequency —\n * how far an AC field (and its current) penetrates, and the surface\n * resistance that sets the conductor's AC loss.\n *\n * In one dimension the Maxwell equations with a local Ohm law in a conductor\n * are the telegraph equation of `model-telegraph`, with relaxation time ε/σ\n * and diffusivity 1/(μσ). Dropping the displacement current is\n * `ab-telegraph-diffusion`, which leaves magnetic diffusion and the classical\n * δ = √(2ρ/(ωμ)) (Jackson, Classical Electrodynamics, 3rd ed., §5.18 and\n * §8.1). This case evaluates δ, checks the three premises the classical\n * result needs — a good conductor, a local conductivity (the mean free path\n * well inside δ; otherwise the anomalous skin effect, Pippard 1947), a DC\n * conductivity (ωτ ≪ 1, Drude) — and the half-space boundary condition, and\n * compares δ with the penetration depth of the full plane-wave solution.\n *\n * @module cases/skin-depth\n */\nimport { EPS0_SI, MU0_SI } from '../core/constants.js';\nimport { check, requirePositive, signedRelativeDifference, type AppliedCase } from './types.js';\n\nconst ID = 'case-skin-depth';\n\n/** ωε/σ ceiling: the displacement current then moves the penetration depth by ≈ ωε/(2σ) ≤ 0.5%. @internal */\nexport const MAX_DISPLACEMENT_RATIO = 0.01;\n\n/** l/δ ceiling for a local (classical) conductivity. @internal */\nexport const MAX_MFP_RATIO = 0.1;\n\n/** ωτ ceiling: the Drude σ(ω) = σ0/(1 − iωτ) is then within 0.5% of σ0 in modulus. @internal */\nexport const MAX_OMEGA_TAU = 0.1;\n\n/** d/δ floor: the field reaching the back face is then ≤ e^{−5} ≈ 0.7% of the surface field. @internal */\nexport const MIN_THICKNESS_RATIO = 5;\n\n/**\n * δ_Maxwell/δ for the plane wave k² = ω²με + iωμσ, as a function of r = ωε/σ:\n * 1/Im k = δ √(√(1 + r²) + r), written without the cancellation of |z| − Re z.\n * @internal\n */\nexport function maxwellDepthFactor(r: number): number {\n return Math.sqrt(Math.hypot(1, r) + r);\n}\n\nexport const SKIN_DEPTH_CASE: AppliedCase = {\n id: ID,\n title: 'Skin depth of a planar conductor (good-conductor, local and DC-conductivity regimes)',\n parameters: [\n { key: 'rho_ohm_m', quantity: 'resistivity', symbol: 'ρ', unit: 'ohm*m', meaning: 'DC resistivity 1/σ at the conductor\\'s temperature (copper at 20 °C ≈ 1.68e-8), > 0' },\n { key: 'f_Hz', quantity: 'frequency', symbol: 'f', unit: 'Hz', meaning: 'drive frequency ω/2π, > 0' },\n { key: 'mu_r', quantity: 'relative permeability', symbol: 'μ_r', unit: '', meaning: 'μ/μ0 of the conductor, taken constant and linear (1 for copper), > 0' },\n { key: 'eps_r', quantity: 'relative permittivity', symbol: 'ε_r', unit: '', meaning: 'ε/ε0 of the bound charges, beside the conduction current (1 for a metal, ≈ 11.7 for silicon), > 0' },\n { key: 'l_mfp_m', quantity: 'carrier mean free path', symbol: 'l', unit: 'm', meaning: 'the conduction carriers\\' mean free path at the conductor\\'s temperature (copper at 293 K ≈ 39 nm), > 0' },\n { key: 'v_carrier_m_per_s', quantity: 'carrier speed', symbol: 'v', unit: 'm/s', meaning: 'speed setting τ = l/v: the Fermi velocity in a metal (copper 1.57e6), the thermal velocity in a non-degenerate semiconductor, > 0' },\n { key: 'thickness_m', quantity: 'conductor thickness', symbol: 'd', unit: 'm', meaning: 'thickness of the planar conductor, driven from one face, > 0' },\n ],\n governing: {\n parent: [\n '∇×E = −∂B/∂t, ∇×H = σE + ∂D/∂t, B = μH, D = εE (Maxwell with a local Ohm law J = σE)',\n 'one dimension, H = H_y(x, t): (ε/σ) ∂²H/∂t² + ∂H/∂t = (1/(μσ)) ∂²H/∂x² (the telegraph equation of model-telegraph)',\n 'driven at ω on a half-space: H ∝ e^{i(kx − ωt)}, k² = ω²με + iωμσ, penetration depth 1/Im k',\n ],\n scalar: [\n '∂H/∂t = (1/(μσ)) ∂²H/∂x² (displacement current dropped: magnetic diffusion; ab-telegraph-diffusion)',\n 'H(x, t) = H0 e^{−x/δ} cos(ωt − x/δ), δ = √(2ρ/(ωμ)), μ = μ_r μ0',\n 'surface resistance R_s = ρ/δ (per square: the DC resistance of a sheet of thickness δ)',\n ],\n distinction:\n 'The parent is a vector field obeying a wave equation with loss, whose conductivity is a local, frequency-independent ' +\n 'constant; the scalar keeps one decay length for one field component in a half-space. Dropped: the displacement ' +\n 'current (the wave part, O(ωε/σ)), any non-local or frequency-dependent conductivity, the back face of a finite ' +\n 'conductor, and the conductor\\'s curvature and edges.',\n },\n observable: 'delta_m',\n outputs: [\n { key: 'omega_per_s', symbol: 'ω', unit: 's^-1', meaning: 'angular frequency 2πf' },\n { key: 'delta_m', symbol: 'δ', unit: 'm', meaning: 'classical skin depth √(2ρ/(ωμ)): the field and current fall by 1/e per δ' },\n { key: 'R_s_ohm', symbol: 'R_s', unit: 'ohm', meaning: 'surface resistance ρ/δ, per square (the real part of the surface impedance)' },\n { key: 'delta_maxwell_m', symbol: 'δ_M', unit: 'm', meaning: '1/Im k with the displacement current kept: the parent plane-wave penetration depth' },\n { key: 'maxwell_deviation', symbol: 'δ/δ_M − 1', unit: '', meaning: signedRelativeDifference('classical δ', 'parent penetration depth') },\n { key: 'displacement_ratio', symbol: 'ωε/σ', unit: '', meaning: 'displacement current over conduction current' },\n { key: 'mfp_ratio', symbol: 'l/δ', unit: '', meaning: 'mean free path over skin depth' },\n { key: 'omega_tau', symbol: 'ωτ', unit: '', meaning: 'ω l/v: the drive period against the carrier relaxation time' },\n { key: 'thickness_ratio', symbol: 'd/δ', unit: '', meaning: 'conductor thickness in skin depths' },\n { key: 'back_field_ratio', symbol: 'e^{−d/δ}', unit: '', meaning: 'field amplitude at the back face over the surface amplitude (half-space profile)' },\n ],\n conditions: [\n 'a planar, homogeneous, isotropic conductor filling 0 ≤ x ≤ d, driven at x = 0 by a tangential field H_y(0, t) = H0 cos ωt',\n 'periodic steady state: the start-up transient has decayed (it does so over a few periods near the surface)',\n 'half-space profile: the field vanishes deep in the conductor (checked through d/δ); the medium outside x = 0 enters only through H0',\n ],\n comparison: {\n reference: 'the parent plane wave in a local ohmic medium, displacement current kept: 1/Im k, k² = ω²με + iωμσ',\n valueKey: 'delta_m',\n referenceKey: 'delta_maxwell_m',\n deviationKey: 'maxwell_deviation',\n method: 'closed form 1/Im k = δ √(√(1 + r²) + r), r = ωε/σ',\n },\n notIncluded: [\n 'the temperature dependence of ρ (a conductor heated by its own AC loss has a larger δ)',\n 'surface roughness, which raises the AC loss once the rms roughness approaches δ (Hammerstad–Bekkadal)',\n 'curvature: for a round wire of radius a the Bessel-function solution replaces the planar profile, with corrections of order δ/a',\n 'ferromagnetic hysteresis and saturation: μ_r is taken constant and linear',\n 'the anomalous-regime surface impedance itself (Reuter–Sondheimer), which this case refuses rather than evaluates',\n ],\n measurement: [\n 'surface resistance: the unloaded Q of a cavity walled with the conductor is Q = G/R_s, G the cavity\\'s geometry factor; ' +\n 'compare the R_s inferred from Q with R_s_ohm',\n 'AC resistance: per square of the driven face it is R_s = ρ/δ against ρ/d at DC, so R_ac/R_dc = d/δ for d ≫ δ',\n 'eddy-current probing: the phase lag x/δ of the field at depth x, or the transmission e^{−d/δ} through a foil when d/δ is not large (a thin foil is where this case refuses)',\n ],\n links: [\n { id: 'model-telegraph', role: 'τ u_tt + u_t = D u_xx: the 1-D Maxwell equations in an ohmic conductor, with τ = ε/σ and D = 1/(μσ)' },\n { id: 'ab-telegraph-diffusion', role: 'dropping τ u_tt (here the displacement current) to reach diffusion; its small parameter τDq² is of order ωε/σ at q ~ 1/δ' },\n { id: 'model-fick', role: 'the diffusion equation u_t = D u_xx that the magnetic field obeys once the displacement current is dropped' },\n { id: 'CE-drude-resistivity', role: 'ρ = m/(nq²τ): the DC resistivity whose τ the DC-conductivity check compares with the drive period' },\n ],\n examples: {\n valid: {\n args: ['rho_ohm_m=1.68e-8', 'f_Hz=1MHz', 'mu_r=1', 'eps_r=1', 'l_mfp_m=39nm', 'v_carrier_m_per_s=1.57e6', 'thickness_m=1mm'],\n note: 'a 1 mm copper plate at room temperature driven at 1 MHz: δ ≈ 65 µm',\n fails: [],\n },\n failures: [\n {\n args: ['rho_ohm_m=1.68e-11', 'f_Hz=100MHz', 'mu_r=1', 'eps_r=1', 'l_mfp_m=39um', 'v_carrier_m_per_s=1.57e6', 'thickness_m=1mm'],\n note: 'high-purity copper at 4 K (residual-resistance ratio ≈ 1000) at 100 MHz: l ≈ 39 µm is ~190 δ — the anomalous skin effect',\n fails: ['local'],\n },\n {\n args: ['rho_ohm_m=1.68e-8', 'f_Hz=100kHz', 'mu_r=1', 'eps_r=1', 'l_mfp_m=39nm', 'v_carrier_m_per_s=1.57e6', 'thickness_m=35um'],\n note: 'a 35 µm copper foil at 100 kHz: δ ≈ 206 µm, so the foil is a sixth of a skin depth and the half-space profile does not apply',\n fails: ['thick'],\n },\n {\n args: ['rho_ohm_m=0.1', 'f_Hz=10GHz', 'mu_r=1', 'eps_r=11.7', 'l_mfp_m=28nm', 'v_carrier_m_per_s=2.3e5', 'thickness_m=10mm'],\n note: 'lightly doped silicon (10 Ω·cm) at 10 GHz: ωε/σ ≈ 0.65, a lossy dielectric rather than a good conductor',\n fails: ['good-conductor'],\n },\n ],\n },\n /** Evaluate the classical skin depth and conductor-regime checks for the supplied inputs. */\n run(i) {\n requirePositive(ID, i, ['rho_ohm_m', 'f_Hz', 'mu_r', 'eps_r', 'l_mfp_m', 'v_carrier_m_per_s', 'thickness_m']);\n const { rho_ohm_m: rho, f_Hz: f, mu_r: muR, eps_r: epsR, l_mfp_m: l, v_carrier_m_per_s: v, thickness_m: d } = i as Record<string, number>;\n const omega = 2 * Math.PI * f;\n const mu = muR * MU0_SI;\n const delta = Math.sqrt((2 * rho) / (omega * mu));\n const r = omega * epsR * EPS0_SI * rho;\n const deltaMaxwell = delta * maxwellDepthFactor(r);\n const omegaTau = (omega * l) / v;\n return {\n outputs: {\n omega_per_s: omega,\n delta_m: delta,\n R_s_ohm: rho / delta,\n delta_maxwell_m: deltaMaxwell,\n maxwell_deviation: delta / deltaMaxwell - 1,\n displacement_ratio: r,\n mfp_ratio: l / delta,\n omega_tau: omegaTau,\n thickness_ratio: d / delta,\n back_field_ratio: Math.exp(-d / delta),\n },\n checks: [\n check('good-conductor', 'good conductor: conduction current ≫ displacement current', 'ωε/σ', r, '<=', MAX_DISPLACEMENT_RATIO,\n 'chosen threshold for ≪ 1: the parent penetration depth then differs from δ by ≈ ωε/(2σ) ≤ 0.5%'),\n check('local', 'local conductivity: the carriers\\' mean free path well inside the skin depth, l ≪ δ', 'l/δ', l / delta, '<=', MAX_MFP_RATIO,\n 'chosen threshold for ≪ 1; beyond it the current at a point depends on the field over a path l and the anomalous skin effect sets in (Pippard 1947; Reuter & Sondheimer 1948)'),\n check('dc-conductivity', 'DC conductivity: the drive is slow beside the carrier relaxation, ωτ ≪ 1', 'ω l/v', omegaTau, '<=', MAX_OMEGA_TAU,\n 'chosen threshold for ≪ 1: the Drude σ(ω) = σ0/(1 − iωτ) is then within 0.5% of σ0 in modulus'),\n check('thick', 'the conductor is a half-space for the field: d ≫ δ', 'd/δ', d / delta, '>=', MIN_THICKNESS_RATIO,\n 'chosen threshold: the half-space field at the back face is then ≤ e^{−5} ≈ 0.7% of the surface field'),\n ],\n unchecked: [\n 'ρ, μ_r and ε_r are the values at the conductor\\'s temperature and at f; τ = l/v assumes one carrier species with one speed',\n 'the conductor is planar on the scale of δ (a wire of radius a needs a ≫ δ, not checked here)',\n ],\n };\n },\n};\n"]}
|
package/dist/cases/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cases/types.ts"],"names":[],"mappings":"AAmEA;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,SAAiB,EAAE,IAAa;IACtF,MAAM,IAAI,GAAG,qCAAqC,KAAK,oBAAoB,SAAS,EAAE,CAAC;IACvF,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC;AACxD,CAAC;AAkDD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,EAAU,EACV,OAAe,EACf,QAAgB,EAChB,KAAa,EACb,EAAmB,EACnB,KAAa,EACb,SAAiB,EACN,EAAE,CAAC,CAAC;IACf,EAAE;IACF,OAAO;IACP,QAAQ;IACR,KAAK;IACL,EAAE;IACF,KAAK;IACL,SAAS;IACT,KAAK,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK;CACnF,CAAC,CAAC;AAEH,kGAAkG;AAClG,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAwC,EAAE,IAAuB;IAC/G,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,qCAAqC,CAAC,GAAG,CAAC,CAAC;IACpI,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cases/types.ts"],"names":[],"mappings":"AAmEA;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,SAAiB,EAAE,IAAa;IACtF,MAAM,IAAI,GAAG,qCAAqC,KAAK,oBAAoB,SAAS,EAAE,CAAC;IACvF,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC;AACxD,CAAC;AAkDD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,EAAU,EACV,OAAe,EACf,QAAgB,EAChB,KAAa,EACb,EAAmB,EACnB,KAAa,EACb,SAAiB,EACN,EAAE,CAAC,CAAC;IACf,EAAE;IACF,OAAO;IACP,QAAQ;IACR,KAAK;IACL,EAAE;IACF,KAAK;IACL,SAAS;IACT,KAAK,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK;CACnF,CAAC,CAAC;AAEH,kGAAkG;AAClG,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAwC,EAAE,IAAuB;IAC/G,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,qCAAqC,CAAC,GAAG,CAAC,CAAC;IACpI,CAAC;AACH,CAAC","sourcesContent":["/**\n * An applied case: one complete measurement problem, qualified end to end.\n *\n * A bridge evaluator answers \"what does this formula give\"; a case answers\n * \"what should this experiment read, under which premises, and how would I\n * know the premises fail\". Each case states the parent (field, vector or\n * frequency-resolved) equation beside the scalar simplification it evaluates,\n * the observable with its unit, the boundary and initial conditions, the\n * regime checks with their thresholds, what the uncertainty treatment does not\n * cover, and the route to a measurement comparison.\n *\n * A case carries no evidence tag. Where it rests on a catalog bridge or an\n * atlas bridge it names the record, and the evidence stays that record's.\n *\n * @module cases/types\n */\nimport type { EvaluatorParameter } from '../bridges/evaluators.js';\n\n/** One derived number a case reports. @internal */\nexport interface CaseOutput {\n readonly key: string;\n readonly symbol: string;\n /** A unit expression; `''` for dimensionless. */\n readonly unit: string;\n readonly meaning: string;\n}\n\n/**\n * One regime inequality, evaluated at the given inputs. The bound is a chosen\n * numerical reading of a \"≪\" and says so in `threshold`.\n * @internal\n */\nexport interface CaseCheck {\n readonly id: string;\n /** The physical premise the inequality stands for. */\n readonly premise: string;\n /** The checked quantity, written out. */\n readonly quantity: string;\n readonly value: number;\n readonly op: '<=' | '>=' | '>';\n readonly bound: number;\n /** Why this bound: what it guarantees, or that it is a chosen threshold. */\n readonly threshold: string;\n readonly holds: boolean;\n}\n\n/**\n * A comparison of one output with a reference — the parent model evaluated\n * numerically, or the ideal a finite measurement approaches. Reported beside\n * the checks, never merged into them: a small deviation at one point does not\n * establish the premises.\n * @internal\n */\nexport interface CaseComparison {\n /** What the reference is. */\n readonly reference: string;\n readonly valueKey: string;\n readonly referenceKey: string;\n /**\n * Output holding value/reference − 1. The glossary for that output is\n * `signedRelativeDifference`: the residual is negative when the value is\n * smaller than the reference.\n */\n readonly deviationKey: string;\n readonly method: string;\n}\n\n/**\n * Glossary for a comparison residual value/reference − 1.\n * \"Excess\" would name a surplus. This residual is negative when `value` is smaller than `reference`.\n * @internal\n */\nexport function signedRelativeDifference(value: string, reference: string, note?: string): string {\n const base = `signed relative difference of the ${value} relative to the ${reference}`;\n return note === undefined ? base : `${base}; ${note}`;\n}\n\n/** A worked invocation. `fails` lists exactly the checks it violates. @internal */\nexport interface CaseExample {\n readonly args: readonly string[];\n readonly note: string;\n readonly fails: readonly string[];\n}\n\n/** What a case evaluates to. A `null` output is undefined outside its premise. @internal */\nexport interface CaseResult {\n readonly outputs: Readonly<Record<string, number | null>>;\n readonly checks: readonly CaseCheck[];\n /** Premises stated but not checked at these inputs. */\n readonly unchecked: readonly string[];\n}\n\n/** An applied case. @internal */\nexport interface AppliedCase {\n readonly id: string;\n readonly title: string;\n readonly parameters: readonly EvaluatorParameter[];\n readonly governing: {\n /** The parent equations, which this case does NOT evaluate as its answer. */\n readonly parent: readonly string[];\n /** The scalar simplification it evaluates. */\n readonly scalar: readonly string[];\n /** What the simplification keeps and what it drops. */\n readonly distinction: string;\n };\n /** Key of the output a measurement reads. */\n readonly observable: string;\n readonly outputs: readonly CaseOutput[];\n readonly conditions: readonly string[];\n readonly comparison?: CaseComparison;\n /** Left out of the model and of any --sigma propagation. */\n readonly notIncluded: readonly string[];\n readonly measurement: readonly string[];\n /** Catalog bridges (`be-58`), atlas records (`ab-…`, `model-…`) and canonical entries it rests on. */\n readonly links: readonly { readonly id: string; readonly role: string }[];\n readonly examples: { readonly valid: CaseExample; readonly failures: readonly CaseExample[] };\n /**\n * The `upt regime --at` line implied by a result, when the case's outputs\n * are not the regime's coordinate names.\n */\n regimeAt?(inputs: Readonly<Record<string, number>>, outputs: Readonly<Record<string, number | null>>): string;\n /** @throws Error on an input outside the model's domain (a negative radius, f_lo ≥ f_hi). */\n run(inputs: Readonly<Record<string, number>>): CaseResult;\n}\n\n/** Build a CaseCheck from one evaluated inequality and mark whether it holds. @internal */\nexport const check = (\n id: string,\n premise: string,\n quantity: string,\n value: number,\n op: CaseCheck['op'],\n bound: number,\n threshold: string,\n): CaseCheck => ({\n id,\n premise,\n quantity,\n value,\n op,\n bound,\n threshold,\n holds: op === '<=' ? value <= bound : op === '>=' ? value >= bound : value > bound,\n});\n\n/** Reject missing, non-finite or non-positive inputs for the listed case parameters. @internal */\nexport function requirePositive(caseId: string, inputs: Readonly<Record<string, number>>, keys: readonly string[]): void {\n for (const k of keys) {\n const v = inputs[k];\n if (v === undefined || !Number.isFinite(v) || !(v > 0)) throw new Error(`${caseId}: ${k} must be a finite number > 0 (got ${v})`);\n }\n}\n"]}
|
package/dist/cli/args.d.ts
CHANGED
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Only tokens starting with `--` are treated as flags; everything else
|
|
5
5
|
* (including `name=value` and `name:dim` positionals) passes through to
|
|
6
|
-
* `positionals` untouched and in original order.
|
|
7
|
-
*
|
|
6
|
+
* `positionals` untouched and in original order. A bare `--` ends the
|
|
7
|
+
* options: every later token is a positional, whatever it starts with.
|
|
8
|
+
* Single left-to-right scan, zero dependencies.
|
|
8
9
|
*/
|
|
9
10
|
export interface FlagSpec {
|
|
10
11
|
name: string;
|
|
11
12
|
valueStyle: 'attached' | 'next' | 'either' | 'none';
|
|
13
|
+
/** The flag may be given more than once; the values are kept in order. */
|
|
12
14
|
repeatable?: boolean;
|
|
13
15
|
/** For 'either'/'next' styles: a missing value stores '' instead of throwing —
|
|
14
16
|
* exists for old-CLI fidelity (--equation's empty-value diagnostic belongs to
|
|
@@ -22,9 +24,34 @@ export interface FlagSpec {
|
|
|
22
24
|
/** Printed default, when the command has one. Omit when there is no default. */
|
|
23
25
|
defaultValue?: string;
|
|
24
26
|
}
|
|
27
|
+
/** The token that ends option parsing. */
|
|
28
|
+
export declare const END_OF_OPTIONS = "--";
|
|
29
|
+
/** The tokens before a bare `--`: the ones the dispatcher may read as options. */
|
|
30
|
+
export declare function optionTokens(argv: readonly string[]): readonly string[];
|
|
25
31
|
export interface ParsedArgs {
|
|
26
32
|
flags: Map<string, string[]>;
|
|
27
33
|
positionals: string[];
|
|
28
34
|
}
|
|
29
|
-
|
|
35
|
+
/**
|
|
36
|
+
* How many positional arguments a command reads. A command declares it on its registration;
|
|
37
|
+
* absent means none, and every positional is then a stray token (cli/README.md §Hardening:
|
|
38
|
+
* nothing typed is silently dropped).
|
|
39
|
+
*/
|
|
40
|
+
export interface PositionalArity {
|
|
41
|
+
/** The most positionals the command reads; `Infinity` for a list. The token past it is refused. */
|
|
42
|
+
readonly max: number;
|
|
43
|
+
}
|
|
44
|
+
/** No positional is read. The parser's default when a command declares nothing. */
|
|
45
|
+
export declare const NO_POSITIONALS: PositionalArity;
|
|
46
|
+
/**
|
|
47
|
+
* Refuse the positional past `max` as a usage error naming the token and the command:
|
|
48
|
+
* `upt audit: unexpected argument 'junk' (audit takes no positional arguments; see upt help audit)`.
|
|
49
|
+
* `command` may carry a subverb (`probe scan`), whose first word is the help target.
|
|
50
|
+
*/
|
|
51
|
+
export declare function refuseExtraPositionals(command: string, positionals: readonly string[], max: number): void;
|
|
52
|
+
/**
|
|
53
|
+
* Parse `argv` against the command's flag specs. `positionals` is the command's declared arity
|
|
54
|
+
* (`Command.positionals`); a token past it, or any token when none is declared, is a `UsageError`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function parseArgs(command: string, argv: string[], specs: FlagSpec[], arity?: PositionalArity): ParsedArgs;
|
|
30
57
|
//# sourceMappingURL=args.d.ts.map
|
package/dist/cli/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;uCAEmC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,0CAA0C;AAC1C,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAGvE;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,mGAAmG;IACnG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,mFAAmF;AACnF,eAAO,MAAM,cAAc,EAAE,eAA4B,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CASzG;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,QAAQ,EAAE,EACjB,KAAK,GAAE,eAAgC,GACtC,UAAU,CA+EZ"}
|