universal-physics-tensor 3.1.0 → 5.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 +6 -6
- package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
- package/dist/atlas/catalog-formal-ref.js +2 -0
- package/dist/atlas/catalog-formal-ref.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +10 -4
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +270 -4
- package/dist/atlas/physjs-ref.js.map +1 -1
- package/dist/bridges/be100-lyddane-sachs-teller.d.ts +41 -0
- package/dist/bridges/be100-lyddane-sachs-teller.d.ts.map +1 -0
- package/dist/bridges/be100-lyddane-sachs-teller.js +30 -0
- package/dist/bridges/be100-lyddane-sachs-teller.js.map +1 -0
- package/dist/bridges/be101-bkt-jump.d.ts +24 -0
- package/dist/bridges/be101-bkt-jump.d.ts.map +1 -0
- package/dist/bridges/be101-bkt-jump.js +29 -0
- package/dist/bridges/be101-bkt-jump.js.map +1 -0
- package/dist/bridges/be102-landauer-conductance.d.ts +24 -0
- package/dist/bridges/be102-landauer-conductance.d.ts.map +1 -0
- package/dist/bridges/be102-landauer-conductance.js +28 -0
- package/dist/bridges/be102-landauer-conductance.js.map +1 -0
- package/dist/bridges/be70-einstein-relation.d.ts +1 -1
- package/dist/bridges/be70-einstein-relation.d.ts.map +1 -1
- package/dist/bridges/be70-einstein-relation.js +4 -1
- package/dist/bridges/be70-einstein-relation.js.map +1 -1
- package/dist/bridges/be77-hagen-poiseuille.d.ts +50 -0
- package/dist/bridges/be77-hagen-poiseuille.d.ts.map +1 -0
- package/dist/bridges/be77-hagen-poiseuille.js +39 -0
- package/dist/bridges/be77-hagen-poiseuille.js.map +1 -0
- package/dist/bridges/be78-euler-buckling.d.ts +44 -0
- package/dist/bridges/be78-euler-buckling.d.ts.map +1 -0
- package/dist/bridges/be78-euler-buckling.js +33 -0
- package/dist/bridges/be78-euler-buckling.js.map +1 -0
- package/dist/bridges/be79-pull-in.d.ts +33 -0
- package/dist/bridges/be79-pull-in.d.ts.map +1 -0
- package/dist/bridges/be79-pull-in.js +35 -0
- package/dist/bridges/be79-pull-in.js.map +1 -0
- package/dist/bridges/be80-mott-gurney.d.ts +52 -0
- package/dist/bridges/be80-mott-gurney.d.ts.map +1 -0
- package/dist/bridges/be80-mott-gurney.js +38 -0
- package/dist/bridges/be80-mott-gurney.js.map +1 -0
- package/dist/bridges/be81-child-langmuir.d.ts +33 -0
- package/dist/bridges/be81-child-langmuir.d.ts.map +1 -0
- package/dist/bridges/be81-child-langmuir.js +38 -0
- package/dist/bridges/be81-child-langmuir.js.map +1 -0
- package/dist/bridges/be82-shockley-diode.d.ts +32 -0
- package/dist/bridges/be82-shockley-diode.d.ts.map +1 -0
- package/dist/bridges/be82-shockley-diode.js +37 -0
- package/dist/bridges/be82-shockley-diode.js.map +1 -0
- package/dist/bridges/be83-thomson.d.ts +46 -0
- package/dist/bridges/be83-thomson.d.ts.map +1 -0
- package/dist/bridges/be83-thomson.js +32 -0
- package/dist/bridges/be83-thomson.js.map +1 -0
- package/dist/bridges/be84-four-point.d.ts +45 -0
- package/dist/bridges/be84-four-point.d.ts.map +1 -0
- package/dist/bridges/be84-four-point.js +34 -0
- package/dist/bridges/be84-four-point.js.map +1 -0
- package/dist/bridges/be85-shot-noise.d.ts +30 -0
- package/dist/bridges/be85-shot-noise.d.ts.map +1 -0
- package/dist/bridges/be85-shot-noise.js +32 -0
- package/dist/bridges/be85-shot-noise.js.map +1 -0
- package/dist/bridges/be86-reynolds-analogy.d.ts +45 -0
- package/dist/bridges/be86-reynolds-analogy.d.ts.map +1 -0
- package/dist/bridges/be86-reynolds-analogy.js +30 -0
- package/dist/bridges/be86-reynolds-analogy.js.map +1 -0
- package/dist/bridges/be87-capacitor-noise.d.ts +27 -0
- package/dist/bridges/be87-capacitor-noise.d.ts.map +1 -0
- package/dist/bridges/be87-capacitor-noise.js +32 -0
- package/dist/bridges/be87-capacitor-noise.js.map +1 -0
- package/dist/bridges/be88-fermi-sea.d.ts +31 -0
- package/dist/bridges/be88-fermi-sea.d.ts.map +1 -0
- package/dist/bridges/be88-fermi-sea.js +35 -0
- package/dist/bridges/be88-fermi-sea.js.map +1 -0
- package/dist/bridges/be89-debye-cutoff.d.ts +39 -0
- package/dist/bridges/be89-debye-cutoff.d.ts.map +1 -0
- package/dist/bridges/be89-debye-cutoff.js +28 -0
- package/dist/bridges/be89-debye-cutoff.js.map +1 -0
- package/dist/bridges/be90-debye-heat.d.ts +30 -0
- package/dist/bridges/be90-debye-heat.d.ts.map +1 -0
- package/dist/bridges/be90-debye-heat.js +35 -0
- package/dist/bridges/be90-debye-heat.js.map +1 -0
- package/dist/bridges/be91-einstein-solid.d.ts +30 -0
- package/dist/bridges/be91-einstein-solid.d.ts.map +1 -0
- package/dist/bridges/be91-einstein-solid.js +37 -0
- package/dist/bridges/be91-einstein-solid.js.map +1 -0
- package/dist/bridges/be92-sommerfeld-heat.d.ts +30 -0
- package/dist/bridges/be92-sommerfeld-heat.d.ts.map +1 -0
- package/dist/bridges/be92-sommerfeld-heat.js +34 -0
- package/dist/bridges/be92-sommerfeld-heat.js.map +1 -0
- package/dist/bridges/be93-curie-weiss.d.ts +41 -0
- package/dist/bridges/be93-curie-weiss.d.ts.map +1 -0
- package/dist/bridges/be93-curie-weiss.js +45 -0
- package/dist/bridges/be93-curie-weiss.js.map +1 -0
- package/dist/bridges/be94-pauli-paramagnetism.d.ts +30 -0
- package/dist/bridges/be94-pauli-paramagnetism.d.ts.map +1 -0
- package/dist/bridges/be94-pauli-paramagnetism.js +33 -0
- package/dist/bridges/be94-pauli-paramagnetism.js.map +1 -0
- package/dist/bridges/be95-ginzburg-landau.d.ts +46 -0
- package/dist/bridges/be95-ginzburg-landau.d.ts.map +1 -0
- package/dist/bridges/be95-ginzburg-landau.js +32 -0
- package/dist/bridges/be95-ginzburg-landau.js.map +1 -0
- package/dist/bridges/be96-upper-critical.d.ts +24 -0
- package/dist/bridges/be96-upper-critical.d.ts.map +1 -0
- package/dist/bridges/be96-upper-critical.js +27 -0
- package/dist/bridges/be96-upper-critical.js.map +1 -0
- package/dist/bridges/be97-ambegaokar-baratoff.d.ts +24 -0
- package/dist/bridges/be97-ambegaokar-baratoff.d.ts.map +1 -0
- package/dist/bridges/be97-ambegaokar-baratoff.js +30 -0
- package/dist/bridges/be97-ambegaokar-baratoff.js.map +1 -0
- package/dist/bridges/be98-bcs-jump.d.ts +40 -0
- package/dist/bridges/be98-bcs-jump.d.ts.map +1 -0
- package/dist/bridges/be98-bcs-jump.js +29 -0
- package/dist/bridges/be98-bcs-jump.js.map +1 -0
- package/dist/bridges/be99-mass-action.d.ts +33 -0
- package/dist/bridges/be99-mass-action.d.ts.map +1 -0
- package/dist/bridges/be99-mass-action.js +37 -0
- package/dist/bridges/be99-mass-action.js.map +1 -0
- package/dist/bridges/bridge-equations.d.ts +52 -0
- package/dist/bridges/bridge-equations.d.ts.map +1 -1
- package/dist/bridges/bridge-equations.js +52 -0
- package/dist/bridges/bridge-equations.js.map +1 -1
- package/dist/bridges/carrier-sign.d.ts +33 -0
- package/dist/bridges/carrier-sign.d.ts.map +1 -0
- package/dist/bridges/carrier-sign.js +57 -0
- package/dist/bridges/carrier-sign.js.map +1 -0
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +138 -2
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/index.d.ts +57 -3
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +577 -3
- package/dist/bridges/index.js.map +1 -1
- package/dist/canonical/entries/condensed-matter.d.ts +5 -5
- package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
- package/dist/canonical/entries/condensed-matter.js +6 -2
- package/dist/canonical/entries/condensed-matter.js.map +1 -1
- package/dist/cases/brownian-sphere.d.ts.map +1 -1
- package/dist/cases/brownian-sphere.js +4 -4
- package/dist/cases/brownian-sphere.js.map +1 -1
- package/dist/cases/lumped-cooling.d.ts.map +1 -1
- package/dist/cases/lumped-cooling.js +2 -2
- package/dist/cases/lumped-cooling.js.map +1 -1
- package/dist/cases/resistor-noise.d.ts.map +1 -1
- package/dist/cases/resistor-noise.js +2 -2
- package/dist/cases/resistor-noise.js.map +1 -1
- package/dist/cases/skin-depth.d.ts.map +1 -1
- package/dist/cases/skin-depth.js +2 -2
- package/dist/cases/skin-depth.js.map +1 -1
- package/dist/cases/types.d.ts +11 -1
- package/dist/cases/types.d.ts.map +1 -1
- package/dist/cases/types.js +9 -0
- package/dist/cases/types.js.map +1 -1
- package/dist/cli/closed-form-range.d.ts +1 -1
- package/dist/cli/closed-form-range.js +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +24 -5
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +28 -7
- package/dist/cli/commands/derive.js.map +1 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +10 -1
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +10 -4
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/search-index.d.ts +8 -1
- package/dist/cli/search-index.d.ts.map +1 -1
- package/dist/cli/search-index.js +75 -14
- package/dist/cli/search-index.js.map +1 -1
- package/dist/cli/statuses.d.ts.map +1 -1
- package/dist/cli/statuses.js +7 -0
- package/dist/cli/statuses.js.map +1 -1
- package/dist/composition/aliases.d.ts +9 -0
- package/dist/composition/aliases.d.ts.map +1 -1
- package/dist/composition/aliases.js +30 -0
- package/dist/composition/aliases.js.map +1 -1
- package/dist/composition/bridge-analysis.d.ts +9 -1
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +39 -6
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +7 -6
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +18 -9
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/canonical-prefactors.d.ts +4 -2
- package/dist/composition/canonical-prefactors.d.ts.map +1 -1
- package/dist/composition/canonical-prefactors.js +46 -2
- package/dist/composition/canonical-prefactors.js.map +1 -1
- package/dist/composition/catalog-graph.d.ts +6 -4
- package/dist/composition/catalog-graph.d.ts.map +1 -1
- package/dist/composition/catalog-graph.js +8 -4
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/edge.d.ts +17 -2
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +62 -2
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/edges/applied-physicist.d.ts +73 -1
- package/dist/composition/edges/applied-physicist.d.ts.map +1 -1
- package/dist/composition/edges/applied-physicist.js +427 -25
- package/dist/composition/edges/applied-physicist.js.map +1 -1
- package/dist/composition/edges/condensed-r5.d.ts +105 -0
- package/dist/composition/edges/condensed-r5.d.ts.map +1 -0
- package/dist/composition/edges/condensed-r5.js +505 -0
- package/dist/composition/edges/condensed-r5.js.map +1 -0
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +30 -3
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/index.d.ts +3 -1
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +3 -1
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/quantities/applied-physicist.d.ts +78 -0
- package/dist/composition/quantities/applied-physicist.d.ts.map +1 -1
- package/dist/composition/quantities/applied-physicist.js +303 -0
- package/dist/composition/quantities/applied-physicist.js.map +1 -1
- package/dist/composition/quantities/condensed-r5.d.ts +110 -0
- package/dist/composition/quantities/condensed-r5.d.ts.map +1 -0
- package/dist/composition/quantities/condensed-r5.js +359 -0
- package/dist/composition/quantities/condensed-r5.js.map +1 -0
- package/dist/composition/quantities.d.ts +1 -0
- package/dist/composition/quantities.d.ts.map +1 -1
- package/dist/composition/quantities.js +1 -0
- package/dist/composition/quantities.js.map +1 -1
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +6 -1
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/dimensional/bridge-check.d.ts +1 -1
- package/dist/dimensional/bridge-check.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.js +27 -1
- package/dist/dimensional/bridge-check.js.map +1 -1
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +39 -7
- package/dist/dimensional/units.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -21,9 +21,22 @@ import { evaluateKelvinPeltier } from '../../bridges/be73-kelvin-peltier.js';
|
|
|
21
21
|
import { evaluateMagneticPressure } from '../../bridges/be74-magnetic-pressure.js';
|
|
22
22
|
import { evaluateLondonPenetration } from '../../bridges/be75-london-penetration.js';
|
|
23
23
|
import { evaluatePlasmaBeta } from '../../bridges/be76-plasma-beta.js';
|
|
24
|
+
import { evaluateHagenPoiseuille } from '../../bridges/be77-hagen-poiseuille.js';
|
|
25
|
+
import { evaluateEulerBuckling } from '../../bridges/be78-euler-buckling.js';
|
|
26
|
+
import { evaluatePullIn } from '../../bridges/be79-pull-in.js';
|
|
27
|
+
import { evaluateMottGurney } from '../../bridges/be80-mott-gurney.js';
|
|
28
|
+
import { evaluateChildLangmuir } from '../../bridges/be81-child-langmuir.js';
|
|
29
|
+
import { evaluateShockleyDiode } from '../../bridges/be82-shockley-diode.js';
|
|
30
|
+
import { sameCarrierSign } from '../../bridges/carrier-sign.js';
|
|
31
|
+
import { evaluateThomsonCoefficient } from '../../bridges/be83-thomson.js';
|
|
32
|
+
import { evaluateFourPointSheet } from '../../bridges/be84-four-point.js';
|
|
33
|
+
import { evaluateShotNoise } from '../../bridges/be85-shot-noise.js';
|
|
34
|
+
import { evaluateReynoldsAnalogy } from '../../bridges/be86-reynolds-analogy.js';
|
|
35
|
+
import { evaluateCapacitorNoise } from '../../bridges/be87-capacitor-noise.js';
|
|
24
36
|
import { DIMENSIONLESS } from '../../dimensional/types.js';
|
|
25
37
|
import { CONSTANTS } from '../../dimensional/symbolic-constants.js';
|
|
26
|
-
import {
|
|
38
|
+
import { withBoundAliases } from '../edge.js';
|
|
39
|
+
import { alfvenSpeedQ, incidenceAngleQ, magneticFluxDensityQ, metricG00Q, plasmaMassDensityQ, poyntingFluxQ, properTemperatureQ, radiationPressureQ, reflectanceQ, tolmanInvariantQ, soundSpeedQ, fastMagnetosonicSpeedQ, electricalMobilityQ, einsteinTemperatureQ, carrierChargeQ, diffusivityQ, latentHeatQ, clapeyronTemperatureQ, specificVolumeChangeQ, clapeyronSlopeQ, redshiftMetricG00OneQ, redshiftMetricG00TwoQ, gravitationalFrequencyRatioQ, seebeckCoefficientQ, peltierTemperatureQ, peltierCoefficientQ, magneticPressureQ, londonPenetrationDepthQ, plasmaBetaQ, carrierDensityQ, effectiveMassQ, temperatureQ, pipeRadiusQ, pipePressureDropQ, dynamicViscosityQ, pipeLengthQ, poiseuilleFlowQ, youngsModulusQ, areaMomentQ, columnLengthQ, bucklingLoadQ, pullInStiffnessQ, pullInGapQ, pullInAreaQ, pullInVoltageQ, mottPermittivityQ, mottMobilityQ, mottVoltageQ, mottThicknessQ, mottGurneyCurrentQ, childCarrierMassQ, childVoltageQ, childGapQ, childLangmuirCurrentQ, shockleySaturationQ, shockleyVoltageQ, shockleyTemperatureQ, shockleyCurrentQ, thomsonTemperatureQ, seebeckSlopeQ, thomsonCoefficientQ, fourPointVoltageQ, fourPointCurrentQ, sheetResistanceQ, shotCurrentQ, shotNoiseQ, skinFrictionQ, stantonNumberQ, capacitorTemperatureQ, capacitanceQ, capacitorVoltageVarianceQ, } from '../quantities.js';
|
|
27
40
|
const finite = Number.isFinite;
|
|
28
41
|
const qsym = (q) => ({ kind: 'symbol', name: q.name, dim: q.dim });
|
|
29
42
|
const csym = (name) => ({ kind: 'symbol', name, dim: CONSTANTS[name].dim });
|
|
@@ -34,6 +47,9 @@ const ratio = (num, den) => ({ kind: 'op', op: '/', args: [num, den] });
|
|
|
34
47
|
const pow = (base, exp) => ({ kind: 'op', op: '^', args: [base, exp] });
|
|
35
48
|
/** μ0 = 1/(ε0 c²). The same product the Alfvén and magnetosonic formulas use. */
|
|
36
49
|
const mu0 = ratio(lit(1), prod(csym('epsilon_0'), pow(csym('c'), lit(2))));
|
|
50
|
+
/** π as a dimensionless leaf. `piMultipleValue` resolves the name. */
|
|
51
|
+
const pi = { kind: 'symbol', name: 'pi', dim: DIMENSIONLESS };
|
|
52
|
+
const expOf = (arg) => ({ kind: 'transcendental', fn: 'exp', arg });
|
|
37
53
|
/** P_n = (I/c) (1+R) cos²θ. */
|
|
38
54
|
const BE66_SYMBOLIC = prod(ratio(qsym(poyntingFluxQ), csym('c')), plus(lit(1), qsym(reflectanceQ)), pow({ kind: 'transcendental', fn: 'cos', arg: qsym(incidenceAngleQ) }, lit(2)));
|
|
39
55
|
/** μ0 = 1/(ε0 c²). v_A = B / √(μ0 ρ). */
|
|
@@ -48,7 +64,7 @@ const BE68_SYMBOLIC = prod(qsym(properTemperatureQ), pow(prod(lit(-1), qsym(metr
|
|
|
48
64
|
*
|
|
49
65
|
* @public
|
|
50
66
|
*/
|
|
51
|
-
export const be66Edge = {
|
|
67
|
+
export const be66Edge = withBoundAliases({
|
|
52
68
|
id: 'be-66',
|
|
53
69
|
beId: 66,
|
|
54
70
|
kind: 'law',
|
|
@@ -77,7 +93,7 @@ export const be66Edge = {
|
|
|
77
93
|
}).P_Pa,
|
|
78
94
|
symbolic: BE66_SYMBOLIC,
|
|
79
95
|
citation: 'OpenStax University Physics Volume 2, https://openstax.org/books/university-physics-volume-2/pages/16-4-momentum-and-radiation-pressure (absorber I/c, reflector 2I/c). The (1+R) cos²θ factor is this catalog\'s assembly.',
|
|
80
|
-
};
|
|
96
|
+
});
|
|
81
97
|
/**
|
|
82
98
|
* BE-67 Alfvén speed: (magnetic-flux-density, plasma-mass-density) →
|
|
83
99
|
* alfven-speed, `v_A = B / √(μ0 ρ)`. `ρ` is the total mass density.
|
|
@@ -86,7 +102,7 @@ export const be66Edge = {
|
|
|
86
102
|
*
|
|
87
103
|
* @public
|
|
88
104
|
*/
|
|
89
|
-
export const be67Edge = {
|
|
105
|
+
export const be67Edge = withBoundAliases({
|
|
90
106
|
id: 'be-67',
|
|
91
107
|
beId: 67,
|
|
92
108
|
kind: 'law',
|
|
@@ -111,7 +127,7 @@ export const be67Edge = {
|
|
|
111
127
|
}).v_m_per_s,
|
|
112
128
|
symbolic: BE67_SYMBOLIC,
|
|
113
129
|
citation: 'Alfvén 1942 Nature 150:405. SI form B/√(μ0 ρ); ρ is the total mass density.',
|
|
114
|
-
};
|
|
130
|
+
});
|
|
115
131
|
/**
|
|
116
132
|
* BE-68 Tolman–Ehrenfest: (proper-temperature, metric-g00) →
|
|
117
133
|
* tolman-invariant, `T √(−g_00)`. Endpoints share the classical
|
|
@@ -120,7 +136,7 @@ export const be67Edge = {
|
|
|
120
136
|
*
|
|
121
137
|
* @public
|
|
122
138
|
*/
|
|
123
|
-
export const be68Edge = {
|
|
139
|
+
export const be68Edge = withBoundAliases({
|
|
124
140
|
id: 'be-68',
|
|
125
141
|
beId: 68,
|
|
126
142
|
kind: 'law',
|
|
@@ -145,7 +161,7 @@ export const be68Edge = {
|
|
|
145
161
|
}).invariant_K,
|
|
146
162
|
symbolic: BE68_SYMBOLIC,
|
|
147
163
|
citation: 'Tolman & Ehrenfest 1930 Phys. Rev. 36:1791 (T0 √g_44). Catalog form T √(−g_00).',
|
|
148
|
-
};
|
|
164
|
+
});
|
|
149
165
|
/** |ω/k| = √(c_s² + B²/(μ0 ρ)), with μ0 = 1/(ε0 c²). */
|
|
150
166
|
const BE69_SYMBOLIC = pow(plus(pow(qsym(soundSpeedQ), lit(2)), ratio(pow(qsym(magneticFluxDensityQ), lit(2)), prod(ratio(lit(1), prod(csym('epsilon_0'), pow(csym('c'), lit(2)))), qsym(plasmaMassDensityQ)))), lit(0.5));
|
|
151
167
|
/** D = μ k_B T / q. */
|
|
@@ -164,7 +180,7 @@ const BE73_SYMBOLIC = prod(qsym(seebeckCoefficientQ), qsym(peltierTemperatureQ))
|
|
|
164
180
|
*
|
|
165
181
|
* @public
|
|
166
182
|
*/
|
|
167
|
-
export const be69Edge = {
|
|
183
|
+
export const be69Edge = withBoundAliases({
|
|
168
184
|
id: 'be-69',
|
|
169
185
|
beId: 69,
|
|
170
186
|
kind: 'law',
|
|
@@ -192,14 +208,14 @@ export const be69Edge = {
|
|
|
192
208
|
}).v_m_per_s,
|
|
193
209
|
symbolic: BE69_SYMBOLIC,
|
|
194
210
|
citation: 'PhysJS.FastMagnetosonic.speed_eq. Perpendicular compressional phase speed. c_s = 0 is the Alfvén number of a different polarization.',
|
|
195
|
-
};
|
|
211
|
+
});
|
|
196
212
|
/**
|
|
197
213
|
* BE-70 Einstein relation: (electrical-mobility, einstein-temperature,
|
|
198
214
|
* carrier-charge) → diffusivity, `D = μ k_B T / q`.
|
|
199
215
|
*
|
|
200
216
|
* @public
|
|
201
217
|
*/
|
|
202
|
-
export const be70Edge = {
|
|
218
|
+
export const be70Edge = withBoundAliases({
|
|
203
219
|
id: 'be-70',
|
|
204
220
|
beId: 70,
|
|
205
221
|
kind: 'law',
|
|
@@ -213,12 +229,13 @@ export const be70Edge = {
|
|
|
213
229
|
target: diffusivityQ,
|
|
214
230
|
confidence: 'established',
|
|
215
231
|
domain: {
|
|
216
|
-
description: 'μ finite, T ≠ 0, q ≠ 0',
|
|
232
|
+
description: 'μ finite, T ≠ 0, q ≠ 0, and μ and q have the same sign',
|
|
217
233
|
predicate: (i) => finite(i['electrical-mobility']) &&
|
|
218
234
|
finite(i['einstein-temperature']) &&
|
|
219
235
|
i['einstein-temperature'] !== 0 &&
|
|
220
236
|
finite(i['carrier-charge']) &&
|
|
221
|
-
i['carrier-charge'] !== 0
|
|
237
|
+
i['carrier-charge'] !== 0 &&
|
|
238
|
+
sameCarrierSign(i['electrical-mobility'], i['carrier-charge']),
|
|
222
239
|
},
|
|
223
240
|
evaluate: (i) => evaluateEinsteinRelation({
|
|
224
241
|
mu_m2_per_Vs: i['electrical-mobility'],
|
|
@@ -227,14 +244,14 @@ export const be70Edge = {
|
|
|
227
244
|
}).D_m2_per_s,
|
|
228
245
|
symbolic: BE70_SYMBOLIC,
|
|
229
246
|
citation: 'PhysJS.EinsteinRelation.diffusion_eq. Drift cancels diffusion on a Boltzmann profile.',
|
|
230
|
-
};
|
|
247
|
+
});
|
|
231
248
|
/**
|
|
232
249
|
* BE-71 Clapeyron slope: (specific-latent-heat, clapeyron-temperature,
|
|
233
250
|
* specific-volume-change) → clapeyron-slope, `dP/dT = L/(T Δv)`.
|
|
234
251
|
*
|
|
235
252
|
* @public
|
|
236
253
|
*/
|
|
237
|
-
export const be71Edge = {
|
|
254
|
+
export const be71Edge = withBoundAliases({
|
|
238
255
|
id: 'be-71',
|
|
239
256
|
beId: 71,
|
|
240
257
|
kind: 'law',
|
|
@@ -262,7 +279,7 @@ export const be71Edge = {
|
|
|
262
279
|
}).slope_Pa_per_K,
|
|
263
280
|
symbolic: BE71_SYMBOLIC,
|
|
264
281
|
citation: 'PhysJS.Clapeyron.slope_eq. L = T (s2−s1) is already substituted. The entropy slope is not a second edge.',
|
|
265
|
-
};
|
|
282
|
+
});
|
|
266
283
|
/**
|
|
267
284
|
* BE-72 gravitational redshift: (redshift-metric-g00-1,
|
|
268
285
|
* redshift-metric-g00-2) → gravitational-frequency-ratio,
|
|
@@ -271,7 +288,7 @@ export const be71Edge = {
|
|
|
271
288
|
*
|
|
272
289
|
* @public
|
|
273
290
|
*/
|
|
274
|
-
export const be72Edge = {
|
|
291
|
+
export const be72Edge = withBoundAliases({
|
|
275
292
|
id: 'be-72',
|
|
276
293
|
beId: 72,
|
|
277
294
|
kind: 'law',
|
|
@@ -296,7 +313,7 @@ export const be72Edge = {
|
|
|
296
313
|
}).frequency_ratio,
|
|
297
314
|
symbolic: BE72_SYMBOLIC,
|
|
298
315
|
citation: 'PhysJS.GravitationalRedshift.frequency_ratio. Not PhysJS.TolmanEhrenfest.hydrostatic_constant. tolman_same_ratio is nested and is not this edge.',
|
|
299
|
-
};
|
|
316
|
+
});
|
|
300
317
|
/**
|
|
301
318
|
* BE-73 Kelvin relation: (seebeck-coefficient, peltier-temperature) →
|
|
302
319
|
* peltier-coefficient, `Π = S T`. Onsager reciprocity is the structure
|
|
@@ -304,7 +321,7 @@ export const be72Edge = {
|
|
|
304
321
|
*
|
|
305
322
|
* @public
|
|
306
323
|
*/
|
|
307
|
-
export const be73Edge = {
|
|
324
|
+
export const be73Edge = withBoundAliases({
|
|
308
325
|
id: 'be-73',
|
|
309
326
|
beId: 73,
|
|
310
327
|
kind: 'law',
|
|
@@ -326,7 +343,7 @@ export const be73Edge = {
|
|
|
326
343
|
}).Pi_V,
|
|
327
344
|
symbolic: BE73_SYMBOLIC,
|
|
328
345
|
citation: 'PhysJS.KelvinRelation.peltier_eq. L12 = L21 is ThermoelectricOnsager.onsager, a structure field, not an axiom and not an input.',
|
|
329
|
-
};
|
|
346
|
+
});
|
|
330
347
|
/** p_B = B² / (2 μ0). The 2 is the inductor integral, not a Buckingham constant. */
|
|
331
348
|
const BE74_SYMBOLIC = ratio(pow(qsym(magneticFluxDensityQ), lit(2)), prod(lit(2), mu0));
|
|
332
349
|
/** λ_L = √(m / (μ0 n e²)). `e` is the elementary charge. */
|
|
@@ -340,7 +357,7 @@ const BE76_SYMBOLIC = ratio(prod(qsym(carrierDensityQ), csym('k_B'), qsym(temper
|
|
|
340
357
|
*
|
|
341
358
|
* @public
|
|
342
359
|
*/
|
|
343
|
-
export const be74Edge = {
|
|
360
|
+
export const be74Edge = withBoundAliases({
|
|
344
361
|
id: 'be-74',
|
|
345
362
|
beId: 74,
|
|
346
363
|
kind: 'law',
|
|
@@ -358,7 +375,7 @@ export const be74Edge = {
|
|
|
358
375
|
evaluate: (i) => evaluateMagneticPressure({ B_T: i['magnetic-flux-density'] }).p_Pa,
|
|
359
376
|
symbolic: BE74_SYMBOLIC,
|
|
360
377
|
citation: 'PhysJS.MagneticPressure.pressure_eq. U = (L/2) I². C = 1 is the battery work per volume, not this pressure.',
|
|
361
|
-
};
|
|
378
|
+
});
|
|
362
379
|
/**
|
|
363
380
|
* BE-75 London penetration depth: (effective-mass, carrier-density) →
|
|
364
381
|
* london-penetration-depth, `λ_L = √(m/(μ0 n e²))`. `e` and `μ0` are
|
|
@@ -366,7 +383,7 @@ export const be74Edge = {
|
|
|
366
383
|
*
|
|
367
384
|
* @public
|
|
368
385
|
*/
|
|
369
|
-
export const be75Edge = {
|
|
386
|
+
export const be75Edge = withBoundAliases({
|
|
370
387
|
id: 'be-75',
|
|
371
388
|
beId: 75,
|
|
372
389
|
kind: 'law',
|
|
@@ -388,7 +405,7 @@ export const be75Edge = {
|
|
|
388
405
|
}).lambda_m,
|
|
389
406
|
symbolic: BE75_SYMBOLIC,
|
|
390
407
|
citation: 'PhysJS.LondonPenetration.depth_eq. Units also admit μ0 e²/m. Not the classical skin depth.',
|
|
391
|
-
};
|
|
408
|
+
});
|
|
392
409
|
/**
|
|
393
410
|
* BE-76 plasma beta: (carrier-density, temperature, magnetic-pressure) →
|
|
394
411
|
* plasma-beta, `β = n k_B T / p_B`. The magnetic-pressure source is
|
|
@@ -398,7 +415,7 @@ export const be75Edge = {
|
|
|
398
415
|
*
|
|
399
416
|
* @public
|
|
400
417
|
*/
|
|
401
|
-
export const be76Edge = {
|
|
418
|
+
export const be76Edge = withBoundAliases({
|
|
402
419
|
id: 'be-76',
|
|
403
420
|
beId: 76,
|
|
404
421
|
kind: 'bridge',
|
|
@@ -425,7 +442,381 @@ export const be76Edge = {
|
|
|
425
442
|
}).beta,
|
|
426
443
|
symbolic: BE76_SYMBOLIC,
|
|
427
444
|
citation: 'PhysJS.PlasmaBeta.beta_eq. p_B is PhysJS.MagneticPressure.pressure_eq. Using B²/μ0 is half of this beta. Not a plasma-β inequality.',
|
|
428
|
-
};
|
|
445
|
+
});
|
|
446
|
+
/** Q = π R⁴ ΔP / (8 μ L). The 8 is the no-slip integral. */
|
|
447
|
+
const BE77_SYMBOLIC = ratio(prod(pi, pow(qsym(pipeRadiusQ), lit(4)), qsym(pipePressureDropQ)), prod(lit(8), qsym(dynamicViscosityQ), qsym(pipeLengthQ)));
|
|
448
|
+
/** P_cr = π² E I / L². Pinned ends. Not the cantilever load. */
|
|
449
|
+
const BE78_SYMBOLIC = ratio(prod(pow(pi, lit(2)), qsym(youngsModulusQ), qsym(areaMomentQ)), pow(qsym(columnLengthQ), lit(2)));
|
|
450
|
+
/** V_pi = √(8 k g0³ / (27 ε0 A)). The fold is g = 2 g0/3. */
|
|
451
|
+
const BE79_SYMBOLIC = pow(ratio(prod(lit(8), qsym(pullInStiffnessQ), pow(qsym(pullInGapQ), lit(3))), prod(lit(27), csym('epsilon_0'), qsym(pullInAreaQ))), lit(0.5));
|
|
452
|
+
/** J = (9/8) ε μ V² / d³. Not Child–Langmuir. */
|
|
453
|
+
const BE80_SYMBOLIC = ratio(prod(lit(9), qsym(mottPermittivityQ), qsym(mottMobilityQ), pow(qsym(mottVoltageQ), lit(2))), prod(lit(8), pow(qsym(mottThicknessQ), lit(3))));
|
|
454
|
+
/** J = (4 ε0 / 9) √(2 e / m) V^{3/2} / d². `e` is the elementary charge. */
|
|
455
|
+
const BE81_SYMBOLIC = ratio(prod(lit(4), csym('epsilon_0'), pow(ratio(prod(lit(2), csym('e')), qsym(childCarrierMassQ)), lit(0.5)), pow(qsym(childVoltageQ), lit(1.5))), prod(lit(9), pow(qsym(childGapQ), lit(2))));
|
|
456
|
+
/** I = I_s (exp(e V / (k_B T)) − 1). Ideality is 1. The minus is the literal −1. */
|
|
457
|
+
const BE82_SYMBOLIC = prod(qsym(shockleySaturationQ), plus(expOf(ratio(prod(csym('e'), qsym(shockleyVoltageQ)), prod(csym('k_B'), qsym(shockleyTemperatureQ)))), lit(-1)));
|
|
458
|
+
/** μ_T = T dS/dT. Not Π = S T. */
|
|
459
|
+
const BE83_SYMBOLIC = prod(qsym(thomsonTemperatureQ), qsym(seebeckSlopeQ));
|
|
460
|
+
/** R_s = (π / ln 2) (V / I). The radial 1/r field is a hypothesis. */
|
|
461
|
+
const BE84_SYMBOLIC = prod(ratio(pi, csym('ln2')), ratio(qsym(fourPointVoltageQ), qsym(fourPointCurrentQ)));
|
|
462
|
+
/** S_I = 2 e I. One-sided. `e` is the elementary charge. */
|
|
463
|
+
const BE85_SYMBOLIC = prod(lit(2), csym('e'), qsym(shotCurrentQ));
|
|
464
|
+
/** St = C_f / 2 at Pr = 1 with matched wall slopes. */
|
|
465
|
+
const BE86_SYMBOLIC = ratio(qsym(skinFrictionQ), lit(2));
|
|
466
|
+
/** ⟨v²⟩ = k_B T / C. One quadratic term. */
|
|
467
|
+
const BE87_SYMBOLIC = ratio(prod(csym('k_B'), qsym(capacitorTemperatureQ)), qsym(capacitanceQ));
|
|
468
|
+
/**
|
|
469
|
+
* BE-77 Hagen–Poiseuille: (radius, pressure drop, viscosity, length) →
|
|
470
|
+
* flux. The axial balance, centerline slope 0, and no-slip are hypotheses.
|
|
471
|
+
*
|
|
472
|
+
* @public
|
|
473
|
+
*/
|
|
474
|
+
export const be77Edge = withBoundAliases({
|
|
475
|
+
id: 'be-77',
|
|
476
|
+
beId: 77,
|
|
477
|
+
kind: 'law',
|
|
478
|
+
label: 'Hagen–Poiseuille flux Q = π R⁴ ΔP / (8 μ L)',
|
|
479
|
+
sources: [pipeRadiusQ, pipePressureDropQ, dynamicViscosityQ, pipeLengthQ],
|
|
480
|
+
aliases: {
|
|
481
|
+
'pipe-radius': ['R_m', 'R'],
|
|
482
|
+
'pipe-pressure-drop': ['deltaP_Pa', 'deltaP'],
|
|
483
|
+
'dynamic-viscosity': ['mu_Pa_s'],
|
|
484
|
+
'pipe-length': ['L_m', 'L'],
|
|
485
|
+
},
|
|
486
|
+
target: poiseuilleFlowQ,
|
|
487
|
+
confidence: 'established',
|
|
488
|
+
domain: {
|
|
489
|
+
description: 'R > 0, ΔP finite, μ ≠ 0, L ≠ 0; circular pipe, not a square duct',
|
|
490
|
+
predicate: (i) => finite(i['pipe-radius']) &&
|
|
491
|
+
i['pipe-radius'] > 0 &&
|
|
492
|
+
finite(i['pipe-pressure-drop']) &&
|
|
493
|
+
finite(i['dynamic-viscosity']) &&
|
|
494
|
+
i['dynamic-viscosity'] !== 0 &&
|
|
495
|
+
finite(i['pipe-length']) &&
|
|
496
|
+
i['pipe-length'] !== 0,
|
|
497
|
+
},
|
|
498
|
+
evaluate: (i) => evaluateHagenPoiseuille({
|
|
499
|
+
R_m: i['pipe-radius'],
|
|
500
|
+
deltaP_Pa: i['pipe-pressure-drop'],
|
|
501
|
+
mu_Pa_s: i['dynamic-viscosity'],
|
|
502
|
+
L_m: i['pipe-length'],
|
|
503
|
+
}).Q_m3_per_s,
|
|
504
|
+
symbolic: BE77_SYMBOLIC,
|
|
505
|
+
citation: 'PhysJS.HagenPoiseuille.flow_eq. f_D Re = 64 follows from Darcy definitions. The Fanning factor is 16. Not a square duct.',
|
|
506
|
+
});
|
|
507
|
+
/**
|
|
508
|
+
* BE-78 Euler buckling: (modulus, area moment, length) → pinned load.
|
|
509
|
+
* The cantilever load is a different factor.
|
|
510
|
+
*
|
|
511
|
+
* @public
|
|
512
|
+
*/
|
|
513
|
+
export const be78Edge = withBoundAliases({
|
|
514
|
+
id: 'be-78',
|
|
515
|
+
beId: 78,
|
|
516
|
+
kind: 'law',
|
|
517
|
+
label: 'Euler pinned load P_cr = π² E I / L²',
|
|
518
|
+
sources: [youngsModulusQ, areaMomentQ, columnLengthQ],
|
|
519
|
+
aliases: {
|
|
520
|
+
'youngs-modulus': ['E_Pa', 'E'],
|
|
521
|
+
'area-moment': ['I_m4'],
|
|
522
|
+
'column-length': ['L_m', 'L'],
|
|
523
|
+
},
|
|
524
|
+
target: bucklingLoadQ,
|
|
525
|
+
confidence: 'established',
|
|
526
|
+
domain: {
|
|
527
|
+
description: 'E > 0, I > 0, L > 0; pinned ends y(0) = y(L) = 0',
|
|
528
|
+
predicate: (i) => finite(i['youngs-modulus']) &&
|
|
529
|
+
i['youngs-modulus'] > 0 &&
|
|
530
|
+
finite(i['area-moment']) &&
|
|
531
|
+
i['area-moment'] > 0 &&
|
|
532
|
+
finite(i['column-length']) &&
|
|
533
|
+
i['column-length'] > 0,
|
|
534
|
+
},
|
|
535
|
+
evaluate: (i) => evaluateEulerBuckling({
|
|
536
|
+
E_Pa: i['youngs-modulus'],
|
|
537
|
+
I_m4: i['area-moment'],
|
|
538
|
+
L_m: i['column-length'],
|
|
539
|
+
}).P_N,
|
|
540
|
+
symbolic: BE78_SYMBOLIC,
|
|
541
|
+
citation: 'PhysJS.EulerBuckling.critical_load. The beam equation is a hypothesis. The clamped-free load is π² E I / (4 L²), not this load.',
|
|
542
|
+
});
|
|
543
|
+
/**
|
|
544
|
+
* BE-79 pull-in: (stiffness, rest gap, area) → voltage. Parallel-plate
|
|
545
|
+
* and quasi-static balance are hypotheses. Not a fringing field.
|
|
546
|
+
*
|
|
547
|
+
* @public
|
|
548
|
+
*/
|
|
549
|
+
export const be79Edge = withBoundAliases({
|
|
550
|
+
id: 'be-79',
|
|
551
|
+
beId: 79,
|
|
552
|
+
kind: 'law',
|
|
553
|
+
label: 'Pull-in voltage V_pi = √(8 k g0³ / (27 ε0 A))',
|
|
554
|
+
sources: [pullInStiffnessQ, pullInGapQ, pullInAreaQ],
|
|
555
|
+
aliases: {
|
|
556
|
+
'pull-in-stiffness': ['k_N_per_m', 'k'],
|
|
557
|
+
'pull-in-gap': ['g0_m', 'g0'],
|
|
558
|
+
'pull-in-area': ['A_m2', 'A'],
|
|
559
|
+
},
|
|
560
|
+
target: pullInVoltageQ,
|
|
561
|
+
confidence: 'established',
|
|
562
|
+
domain: {
|
|
563
|
+
description: 'k > 0, g0 > 0, A > 0; the fold is g = 2 g0/3, not g0/2',
|
|
564
|
+
predicate: (i) => finite(i['pull-in-stiffness']) &&
|
|
565
|
+
i['pull-in-stiffness'] > 0 &&
|
|
566
|
+
finite(i['pull-in-gap']) &&
|
|
567
|
+
i['pull-in-gap'] > 0 &&
|
|
568
|
+
finite(i['pull-in-area']) &&
|
|
569
|
+
i['pull-in-area'] > 0,
|
|
570
|
+
},
|
|
571
|
+
evaluate: (i) => evaluatePullIn({
|
|
572
|
+
k_N_per_m: i['pull-in-stiffness'],
|
|
573
|
+
g0_m: i['pull-in-gap'],
|
|
574
|
+
A_m2: i['pull-in-area'],
|
|
575
|
+
}).V_pi_V,
|
|
576
|
+
symbolic: BE79_SYMBOLIC,
|
|
577
|
+
citation: 'PhysJS.PullIn.pull_in_eq. C = ε0 A/g and the linear spring are hypotheses. g = g0/2 is not the fold.',
|
|
578
|
+
});
|
|
579
|
+
/**
|
|
580
|
+
* BE-80 Mott–Gurney: drift, Poisson, and an injecting contact. Not
|
|
581
|
+
* Child–Langmuir.
|
|
582
|
+
*
|
|
583
|
+
* @public
|
|
584
|
+
*/
|
|
585
|
+
export const be80Edge = withBoundAliases({
|
|
586
|
+
id: 'be-80',
|
|
587
|
+
beId: 80,
|
|
588
|
+
kind: 'law',
|
|
589
|
+
label: 'Mott–Gurney current J = (9/8) ε μ V² / d³',
|
|
590
|
+
sources: [mottPermittivityQ, mottMobilityQ, mottVoltageQ, mottThicknessQ],
|
|
591
|
+
aliases: {
|
|
592
|
+
'mott-permittivity': ['eps'],
|
|
593
|
+
'mott-mobility': ['mu_m2_per_Vs', 'mu'],
|
|
594
|
+
'mott-voltage': ['V_volts', 'V'],
|
|
595
|
+
'mott-thickness': ['d_m', 'd'],
|
|
596
|
+
},
|
|
597
|
+
target: mottGurneyCurrentQ,
|
|
598
|
+
confidence: 'established',
|
|
599
|
+
domain: {
|
|
600
|
+
description: 'ε > 0, μ > 0, V finite, d > 0; E(0) = 0',
|
|
601
|
+
predicate: (i) => finite(i['mott-permittivity']) &&
|
|
602
|
+
i['mott-permittivity'] > 0 &&
|
|
603
|
+
finite(i['mott-mobility']) &&
|
|
604
|
+
i['mott-mobility'] > 0 &&
|
|
605
|
+
finite(i['mott-voltage']) &&
|
|
606
|
+
finite(i['mott-thickness']) &&
|
|
607
|
+
i['mott-thickness'] > 0,
|
|
608
|
+
},
|
|
609
|
+
evaluate: (i) => evaluateMottGurney({
|
|
610
|
+
eps: i['mott-permittivity'],
|
|
611
|
+
mu_m2_per_Vs: i['mott-mobility'],
|
|
612
|
+
V_volts: i['mott-voltage'],
|
|
613
|
+
d_m: i['mott-thickness'],
|
|
614
|
+
}).J_A_per_m2,
|
|
615
|
+
symbolic: BE80_SYMBOLIC,
|
|
616
|
+
citation: 'PhysJS.MottGurney.current_eq. Drift, Poisson, and the injecting contact are hypotheses. Not Child–Langmuir.',
|
|
617
|
+
});
|
|
618
|
+
/**
|
|
619
|
+
* BE-81 Child–Langmuir. Collisionless energy, Poisson, and the 4/3
|
|
620
|
+
* profile. Poisson is not claimed at the cathode. `e` is elementary.
|
|
621
|
+
*
|
|
622
|
+
* @public
|
|
623
|
+
*/
|
|
624
|
+
export const be81Edge = withBoundAliases({
|
|
625
|
+
id: 'be-81',
|
|
626
|
+
beId: 81,
|
|
627
|
+
kind: 'law',
|
|
628
|
+
label: 'Child–Langmuir current J = (4 ε0/9) √(2 e/m) V^{3/2}/d²',
|
|
629
|
+
sources: [childCarrierMassQ, childVoltageQ, childGapQ],
|
|
630
|
+
aliases: {
|
|
631
|
+
'child-carrier-mass': ['m_kg', 'm'],
|
|
632
|
+
'child-voltage': ['V_volts', 'V'],
|
|
633
|
+
'child-gap': ['d_m', 'd'],
|
|
634
|
+
},
|
|
635
|
+
target: childLangmuirCurrentQ,
|
|
636
|
+
confidence: 'established',
|
|
637
|
+
domain: {
|
|
638
|
+
description: 'm > 0, V > 0, d > 0; cathode field 0; Poisson not at x = 0',
|
|
639
|
+
predicate: (i) => finite(i['child-carrier-mass']) &&
|
|
640
|
+
i['child-carrier-mass'] > 0 &&
|
|
641
|
+
finite(i['child-voltage']) &&
|
|
642
|
+
i['child-voltage'] > 0 &&
|
|
643
|
+
finite(i['child-gap']) &&
|
|
644
|
+
i['child-gap'] > 0,
|
|
645
|
+
},
|
|
646
|
+
evaluate: (i) => evaluateChildLangmuir({
|
|
647
|
+
m_kg: i['child-carrier-mass'],
|
|
648
|
+
V_volts: i['child-voltage'],
|
|
649
|
+
d_m: i['child-gap'],
|
|
650
|
+
}).J_A_per_m2,
|
|
651
|
+
symbolic: BE81_SYMBOLIC,
|
|
652
|
+
citation: 'PhysJS.ChildLangmuir.current_eq. e is the elementary charge. Not a drift-only solid.',
|
|
653
|
+
});
|
|
654
|
+
/**
|
|
655
|
+
* BE-82 Shockley diode at ideality 1. Not a diffusion-length ODE.
|
|
656
|
+
*
|
|
657
|
+
* @public
|
|
658
|
+
*/
|
|
659
|
+
export const be82Edge = withBoundAliases({
|
|
660
|
+
id: 'be-82',
|
|
661
|
+
beId: 82,
|
|
662
|
+
kind: 'law',
|
|
663
|
+
label: 'Shockley diode I = I_s (exp(e V/(k_B T)) − 1)',
|
|
664
|
+
sources: [shockleySaturationQ, shockleyVoltageQ, shockleyTemperatureQ],
|
|
665
|
+
aliases: {
|
|
666
|
+
'shockley-saturation': ['I_s_A', 'I_s'],
|
|
667
|
+
'shockley-voltage': ['V_volts', 'V'],
|
|
668
|
+
'shockley-temperature': ['T_K', 'T'],
|
|
669
|
+
},
|
|
670
|
+
target: shockleyCurrentQ,
|
|
671
|
+
confidence: 'established',
|
|
672
|
+
domain: {
|
|
673
|
+
description: 'I_s and V finite, T ≠ 0; ideality 1',
|
|
674
|
+
predicate: (i) => finite(i['shockley-saturation']) &&
|
|
675
|
+
finite(i['shockley-voltage']) &&
|
|
676
|
+
finite(i['shockley-temperature']) &&
|
|
677
|
+
i['shockley-temperature'] !== 0,
|
|
678
|
+
},
|
|
679
|
+
evaluate: (i) => evaluateShockleyDiode({
|
|
680
|
+
I_s_A: i['shockley-saturation'],
|
|
681
|
+
V_volts: i['shockley-voltage'],
|
|
682
|
+
T_K: i['shockley-temperature'],
|
|
683
|
+
}).I_A,
|
|
684
|
+
symbolic: BE82_SYMBOLIC,
|
|
685
|
+
citation: 'PhysJS.ShockleyDiode.shockley_eq. Quasi-equilibrium, detailed balance at V = 0, and low injection are hypotheses. Ideality 2 is not this current.',
|
|
686
|
+
});
|
|
687
|
+
/**
|
|
688
|
+
* BE-83 Thomson coefficient. Builds on the Kelvin relation read along
|
|
689
|
+
* temperature. The quantities do not meet be-73, so the edges do not compose.
|
|
690
|
+
*
|
|
691
|
+
* @public
|
|
692
|
+
*/
|
|
693
|
+
export const be83Edge = withBoundAliases({
|
|
694
|
+
id: 'be-83',
|
|
695
|
+
beId: 83,
|
|
696
|
+
kind: 'law',
|
|
697
|
+
label: 'Thomson coefficient μ_T = T dS/dT',
|
|
698
|
+
sources: [thomsonTemperatureQ, seebeckSlopeQ],
|
|
699
|
+
aliases: {
|
|
700
|
+
'thomson-temperature': ['T_K', 'T'],
|
|
701
|
+
'seebeck-slope': ['dS_dT_V_per_K2', 'dS_dT'],
|
|
702
|
+
},
|
|
703
|
+
target: thomsonCoefficientQ,
|
|
704
|
+
confidence: 'established',
|
|
705
|
+
domain: {
|
|
706
|
+
description: 'T and dS/dT finite; Kelvin along temperature and the Thomson split are hypotheses',
|
|
707
|
+
predicate: (i) => finite(i['thomson-temperature']) && finite(i['seebeck-slope']),
|
|
708
|
+
},
|
|
709
|
+
evaluate: (i) => evaluateThomsonCoefficient({
|
|
710
|
+
T_K: i['thomson-temperature'],
|
|
711
|
+
dS_dT_V_per_K2: i['seebeck-slope'],
|
|
712
|
+
}).mu_V_per_K,
|
|
713
|
+
symbolic: BE83_SYMBOLIC,
|
|
714
|
+
citation: 'PhysJS.Thomson.thomson_eq. Π(t) = S(t) t is PhysJS.KelvinRelation.peltier_eq read along temperature. Not a second copy of Π = S T.',
|
|
715
|
+
});
|
|
716
|
+
/**
|
|
717
|
+
* BE-84 four-point sheet resistance. The radial 1/r potential is a premise.
|
|
718
|
+
*
|
|
719
|
+
* @public
|
|
720
|
+
*/
|
|
721
|
+
export const be84Edge = withBoundAliases({
|
|
722
|
+
id: 'be-84',
|
|
723
|
+
beId: 84,
|
|
724
|
+
kind: 'law',
|
|
725
|
+
label: 'Four-point sheet resistance R_s = (π / ln 2) (V/I)',
|
|
726
|
+
sources: [fourPointVoltageQ, fourPointCurrentQ],
|
|
727
|
+
aliases: {
|
|
728
|
+
'four-point-voltage': ['V_volts', 'V'],
|
|
729
|
+
'four-point-current': ['I_A', 'I'],
|
|
730
|
+
},
|
|
731
|
+
target: sheetResistanceQ,
|
|
732
|
+
confidence: 'established',
|
|
733
|
+
domain: {
|
|
734
|
+
description: 'V finite, I ≠ 0; probes at 0, s, 2s, 3s; radial field (I R_s)/(2 π r)',
|
|
735
|
+
predicate: (i) => finite(i['four-point-voltage']) && finite(i['four-point-current']) && i['four-point-current'] !== 0,
|
|
736
|
+
},
|
|
737
|
+
evaluate: (i) => evaluateFourPointSheet({
|
|
738
|
+
V_volts: i['four-point-voltage'],
|
|
739
|
+
I_A: i['four-point-current'],
|
|
740
|
+
}).R_s_ohm,
|
|
741
|
+
symbolic: BE84_SYMBOLIC,
|
|
742
|
+
citation: 'PhysJS.FourPoint.sheet_eq. The Laplace field and linear superposition are hypotheses. A sink at 4s is 2π/ln 3. Not PhysJS.Crossing.antisymmetry.',
|
|
743
|
+
});
|
|
744
|
+
/**
|
|
745
|
+
* BE-85 one-sided shot noise. Not Johnson–Nyquist and not the two-sided e I.
|
|
746
|
+
*
|
|
747
|
+
* @public
|
|
748
|
+
*/
|
|
749
|
+
export const be85Edge = withBoundAliases({
|
|
750
|
+
id: 'be-85',
|
|
751
|
+
beId: 85,
|
|
752
|
+
kind: 'law',
|
|
753
|
+
label: 'Shot noise S_I = 2 e I',
|
|
754
|
+
sources: [shotCurrentQ],
|
|
755
|
+
aliases: {
|
|
756
|
+
'shot-current': ['I_A', 'I'],
|
|
757
|
+
},
|
|
758
|
+
target: shotNoiseQ,
|
|
759
|
+
confidence: 'established',
|
|
760
|
+
domain: {
|
|
761
|
+
description: 'I finite; Poisson Var(N) = mean(N); one-sided Δf = 1/(2 T)',
|
|
762
|
+
predicate: (i) => finite(i['shot-current']),
|
|
763
|
+
},
|
|
764
|
+
evaluate: (i) => evaluateShotNoise({ I_A: i['shot-current'] }).S_I_A2_per_Hz,
|
|
765
|
+
symbolic: BE85_SYMBOLIC,
|
|
766
|
+
citation: 'PhysJS.ShotNoise.shot_eq. e is the elementary charge. The two-sided bandwidth gives e I. Not Johnson–Nyquist.',
|
|
767
|
+
});
|
|
768
|
+
/**
|
|
769
|
+
* BE-86 Reynolds analogy. Matched wall slopes and Pr = 1 are hypotheses.
|
|
770
|
+
*
|
|
771
|
+
* @public
|
|
772
|
+
*/
|
|
773
|
+
export const be86Edge = withBoundAliases({
|
|
774
|
+
id: 'be-86',
|
|
775
|
+
beId: 86,
|
|
776
|
+
kind: 'law',
|
|
777
|
+
label: 'Reynolds analogy St = C_f / 2',
|
|
778
|
+
sources: [skinFrictionQ],
|
|
779
|
+
aliases: {
|
|
780
|
+
'skin-friction': ['C_f'],
|
|
781
|
+
},
|
|
782
|
+
target: stantonNumberQ,
|
|
783
|
+
confidence: 'established',
|
|
784
|
+
domain: {
|
|
785
|
+
description: 'C_f finite; normalized wall gradients agree and Pr = 1',
|
|
786
|
+
predicate: (i) => finite(i['skin-friction']),
|
|
787
|
+
},
|
|
788
|
+
evaluate: (i) => evaluateReynoldsAnalogy({ C_f: i['skin-friction'] }).St,
|
|
789
|
+
symbolic: BE86_SYMBOLIC,
|
|
790
|
+
citation: 'PhysJS.ReynoldsAnalogy.reynolds_eq. St Pr = C_f/2 when the slopes match. Pr = 1 is the hypothesis that drops Pr. Not a Nusselt correlation.',
|
|
791
|
+
});
|
|
792
|
+
/**
|
|
793
|
+
* BE-87 capacitor voltage variance. One quadratic term, not (3/2) k_B T/C.
|
|
794
|
+
*
|
|
795
|
+
* @public
|
|
796
|
+
*/
|
|
797
|
+
export const be87Edge = withBoundAliases({
|
|
798
|
+
id: 'be-87',
|
|
799
|
+
beId: 87,
|
|
800
|
+
kind: 'law',
|
|
801
|
+
label: 'Capacitor noise ⟨v²⟩ = k_B T / C',
|
|
802
|
+
sources: [capacitorTemperatureQ, capacitanceQ],
|
|
803
|
+
aliases: {
|
|
804
|
+
'capacitor-temperature': ['T_K', 'T'],
|
|
805
|
+
capacitance: ['C_F', 'C'],
|
|
806
|
+
},
|
|
807
|
+
target: capacitorVoltageVarianceQ,
|
|
808
|
+
confidence: 'established',
|
|
809
|
+
domain: {
|
|
810
|
+
description: 'T finite, C > 0; U = (C/2) V²',
|
|
811
|
+
predicate: (i) => finite(i['capacitor-temperature']) && finite(i['capacitance']) && i['capacitance'] > 0,
|
|
812
|
+
},
|
|
813
|
+
evaluate: (i) => evaluateCapacitorNoise({
|
|
814
|
+
T_K: i['capacitor-temperature'],
|
|
815
|
+
C_F: i['capacitance'],
|
|
816
|
+
}).v2_V2,
|
|
817
|
+
symbolic: BE87_SYMBOLIC,
|
|
818
|
+
citation: 'PhysJS.CapacitorNoise.noise_eq. (3/2) k_B T/C is not this variance. Dropping the energy half gives k_B T/(2 C).',
|
|
819
|
+
});
|
|
429
820
|
/** The applied-physicist edges, in catalog-id order. @public */
|
|
430
821
|
export const APPLIED_PHYSICIST_EDGES = [
|
|
431
822
|
be66Edge,
|
|
@@ -439,5 +830,16 @@ export const APPLIED_PHYSICIST_EDGES = [
|
|
|
439
830
|
be74Edge,
|
|
440
831
|
be75Edge,
|
|
441
832
|
be76Edge,
|
|
833
|
+
be77Edge,
|
|
834
|
+
be78Edge,
|
|
835
|
+
be79Edge,
|
|
836
|
+
be80Edge,
|
|
837
|
+
be81Edge,
|
|
838
|
+
be82Edge,
|
|
839
|
+
be83Edge,
|
|
840
|
+
be84Edge,
|
|
841
|
+
be85Edge,
|
|
842
|
+
be86Edge,
|
|
843
|
+
be87Edge,
|
|
442
844
|
];
|
|
443
845
|
//# sourceMappingURL=applied-physicist.js.map
|