universal-physics-tensor 3.1.0 → 4.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.
Files changed (136) hide show
  1. package/README.md +5 -5
  2. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
  3. package/dist/atlas/catalog-formal-ref.js +1 -0
  4. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  5. package/dist/atlas/physjs-ref.d.ts +7 -4
  6. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  7. package/dist/atlas/physjs-ref.js +117 -4
  8. package/dist/atlas/physjs-ref.js.map +1 -1
  9. package/dist/bridges/be70-einstein-relation.d.ts +1 -1
  10. package/dist/bridges/be70-einstein-relation.d.ts.map +1 -1
  11. package/dist/bridges/be70-einstein-relation.js +5 -1
  12. package/dist/bridges/be70-einstein-relation.js.map +1 -1
  13. package/dist/bridges/be77-hagen-poiseuille.d.ts +50 -0
  14. package/dist/bridges/be77-hagen-poiseuille.d.ts.map +1 -0
  15. package/dist/bridges/be77-hagen-poiseuille.js +39 -0
  16. package/dist/bridges/be77-hagen-poiseuille.js.map +1 -0
  17. package/dist/bridges/be78-euler-buckling.d.ts +44 -0
  18. package/dist/bridges/be78-euler-buckling.d.ts.map +1 -0
  19. package/dist/bridges/be78-euler-buckling.js +33 -0
  20. package/dist/bridges/be78-euler-buckling.js.map +1 -0
  21. package/dist/bridges/be79-pull-in.d.ts +33 -0
  22. package/dist/bridges/be79-pull-in.d.ts.map +1 -0
  23. package/dist/bridges/be79-pull-in.js +35 -0
  24. package/dist/bridges/be79-pull-in.js.map +1 -0
  25. package/dist/bridges/be80-mott-gurney.d.ts +52 -0
  26. package/dist/bridges/be80-mott-gurney.d.ts.map +1 -0
  27. package/dist/bridges/be80-mott-gurney.js +38 -0
  28. package/dist/bridges/be80-mott-gurney.js.map +1 -0
  29. package/dist/bridges/be81-child-langmuir.d.ts +33 -0
  30. package/dist/bridges/be81-child-langmuir.d.ts.map +1 -0
  31. package/dist/bridges/be81-child-langmuir.js +38 -0
  32. package/dist/bridges/be81-child-langmuir.js.map +1 -0
  33. package/dist/bridges/be82-shockley-diode.d.ts +32 -0
  34. package/dist/bridges/be82-shockley-diode.d.ts.map +1 -0
  35. package/dist/bridges/be82-shockley-diode.js +37 -0
  36. package/dist/bridges/be82-shockley-diode.js.map +1 -0
  37. package/dist/bridges/be83-thomson.d.ts +46 -0
  38. package/dist/bridges/be83-thomson.d.ts.map +1 -0
  39. package/dist/bridges/be83-thomson.js +32 -0
  40. package/dist/bridges/be83-thomson.js.map +1 -0
  41. package/dist/bridges/be84-four-point.d.ts +45 -0
  42. package/dist/bridges/be84-four-point.d.ts.map +1 -0
  43. package/dist/bridges/be84-four-point.js +34 -0
  44. package/dist/bridges/be84-four-point.js.map +1 -0
  45. package/dist/bridges/be85-shot-noise.d.ts +30 -0
  46. package/dist/bridges/be85-shot-noise.d.ts.map +1 -0
  47. package/dist/bridges/be85-shot-noise.js +32 -0
  48. package/dist/bridges/be85-shot-noise.js.map +1 -0
  49. package/dist/bridges/be86-reynolds-analogy.d.ts +45 -0
  50. package/dist/bridges/be86-reynolds-analogy.d.ts.map +1 -0
  51. package/dist/bridges/be86-reynolds-analogy.js +30 -0
  52. package/dist/bridges/be86-reynolds-analogy.js.map +1 -0
  53. package/dist/bridges/be87-capacitor-noise.d.ts +27 -0
  54. package/dist/bridges/be87-capacitor-noise.d.ts.map +1 -0
  55. package/dist/bridges/be87-capacitor-noise.js +32 -0
  56. package/dist/bridges/be87-capacitor-noise.js.map +1 -0
  57. package/dist/bridges/bridge-equations.d.ts +22 -0
  58. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  59. package/dist/bridges/bridge-equations.js +22 -0
  60. package/dist/bridges/bridge-equations.js.map +1 -1
  61. package/dist/bridges/evaluators.d.ts.map +1 -1
  62. package/dist/bridges/evaluators.js +59 -2
  63. package/dist/bridges/evaluators.js.map +1 -1
  64. package/dist/bridges/index.d.ts +25 -3
  65. package/dist/bridges/index.d.ts.map +1 -1
  66. package/dist/bridges/index.js +245 -3
  67. package/dist/bridges/index.js.map +1 -1
  68. package/dist/cases/brownian-sphere.d.ts.map +1 -1
  69. package/dist/cases/brownian-sphere.js +4 -4
  70. package/dist/cases/brownian-sphere.js.map +1 -1
  71. package/dist/cases/lumped-cooling.d.ts.map +1 -1
  72. package/dist/cases/lumped-cooling.js +2 -2
  73. package/dist/cases/lumped-cooling.js.map +1 -1
  74. package/dist/cases/resistor-noise.d.ts.map +1 -1
  75. package/dist/cases/resistor-noise.js +2 -2
  76. package/dist/cases/resistor-noise.js.map +1 -1
  77. package/dist/cases/skin-depth.d.ts.map +1 -1
  78. package/dist/cases/skin-depth.js +2 -2
  79. package/dist/cases/skin-depth.js.map +1 -1
  80. package/dist/cases/types.d.ts +11 -1
  81. package/dist/cases/types.d.ts.map +1 -1
  82. package/dist/cases/types.js +9 -0
  83. package/dist/cases/types.js.map +1 -1
  84. package/dist/cli/closed-form-range.d.ts +1 -1
  85. package/dist/cli/closed-form-range.js +1 -1
  86. package/dist/cli/commands/audit.d.ts.map +1 -1
  87. package/dist/cli/commands/audit.js +6 -1
  88. package/dist/cli/commands/audit.js.map +1 -1
  89. package/dist/cli/commands/search.js +2 -2
  90. package/dist/cli/commands/search.js.map +1 -1
  91. package/dist/cli/search-index.d.ts +1 -1
  92. package/dist/cli/search-index.d.ts.map +1 -1
  93. package/dist/cli/search-index.js +25 -1
  94. package/dist/cli/search-index.js.map +1 -1
  95. package/dist/composition/bridge-analysis.d.ts +8 -0
  96. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  97. package/dist/composition/bridge-analysis.js +35 -6
  98. package/dist/composition/bridge-analysis.js.map +1 -1
  99. package/dist/composition/canonical-graph.d.ts +7 -6
  100. package/dist/composition/canonical-graph.d.ts.map +1 -1
  101. package/dist/composition/canonical-graph.js +13 -9
  102. package/dist/composition/canonical-graph.js.map +1 -1
  103. package/dist/composition/canonical-prefactors.d.ts +4 -2
  104. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  105. package/dist/composition/canonical-prefactors.js +46 -2
  106. package/dist/composition/canonical-prefactors.js.map +1 -1
  107. package/dist/composition/catalog-graph.d.ts +3 -3
  108. package/dist/composition/catalog-graph.js +3 -3
  109. package/dist/composition/edge.d.ts +10 -2
  110. package/dist/composition/edge.d.ts.map +1 -1
  111. package/dist/composition/edge.js +62 -2
  112. package/dist/composition/edge.js.map +1 -1
  113. package/dist/composition/edges/applied-physicist.d.ts +73 -1
  114. package/dist/composition/edges/applied-physicist.d.ts.map +1 -1
  115. package/dist/composition/edges/applied-physicist.js +426 -25
  116. package/dist/composition/edges/applied-physicist.js.map +1 -1
  117. package/dist/composition/index.d.ts +1 -1
  118. package/dist/composition/index.d.ts.map +1 -1
  119. package/dist/composition/index.js +1 -1
  120. package/dist/composition/index.js.map +1 -1
  121. package/dist/composition/quantities/applied-physicist.d.ts +78 -0
  122. package/dist/composition/quantities/applied-physicist.d.ts.map +1 -1
  123. package/dist/composition/quantities/applied-physicist.js +303 -0
  124. package/dist/composition/quantities/applied-physicist.js.map +1 -1
  125. package/dist/dimensional/bridge-check.d.ts +1 -1
  126. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  127. package/dist/dimensional/bridge-check.js +12 -1
  128. package/dist/dimensional/bridge-check.js.map +1 -1
  129. package/dist/dimensional/units.d.ts.map +1 -1
  130. package/dist/dimensional/units.js +3 -0
  131. package/dist/dimensional/units.js.map +1 -1
  132. package/dist/index.d.ts +2 -2
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +2 -2
  135. package/dist/index.js.map +1 -1
  136. package/package.json +1 -1
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Inputs for {@link evaluatePullIn}.
3
+ * @public
4
+ */
5
+ export interface PullInInputs {
6
+ /** Linear spring stiffness, newtons per metre. */
7
+ readonly k_N_per_m: number;
8
+ /** Rest gap, metres. */
9
+ readonly g0_m: number;
10
+ /** Plate area, square metres. */
11
+ readonly A_m2: number;
12
+ }
13
+ /**
14
+ * Result of {@link evaluatePullIn}.
15
+ * @public
16
+ */
17
+ export interface PullInResult {
18
+ readonly k_N_per_m: number;
19
+ readonly g0_m: number;
20
+ readonly A_m2: number;
21
+ /** Pull-in voltage, volts. The positive square root. */
22
+ readonly V_pi_V: number;
23
+ }
24
+ /**
25
+ * Evaluate `V_pi = √(8 k g0³ / (27 ε0 A))`.
26
+ *
27
+ * `ε0` is the vacuum permittivity. The gap at the fold is `2 g0/3`,
28
+ * not `g0/2`. Fringing is not in the theorem.
29
+ *
30
+ * @public
31
+ */
32
+ export declare function evaluatePullIn({ k_N_per_m, g0_m, A_m2 }: PullInInputs): PullInResult;
33
+ //# sourceMappingURL=be79-pull-in.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be79-pull-in.d.ts","sourceRoot":"","sources":["../../src/bridges/be79-pull-in.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,YAAY,GAAG,YAAY,CAYpF"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * BE-79 — parallel-plate pull-in voltage,
3
+ * V_pi² = 8 k g0³ / (27 ε0 A).
4
+ *
5
+ * C = ε0 A/g has dC/dg = −ε0 A/g². Equilibrium of a linear spring
6
+ * against the coenergy force is k(g0−g) = ε0 A V²/(2 g²). The fold is
7
+ * g = 2 g0/3. g = g0/2 is not the fold. Not a fringing field.
8
+ *
9
+ * The overlay formalRef is `PhysJS.PullIn.pull_in_eq`.
10
+ *
11
+ * @module bridges/be79-pull-in
12
+ */
13
+ import { EPS0_SI } from '../dimensional/formula-names.js';
14
+ /**
15
+ * Evaluate `V_pi = √(8 k g0³ / (27 ε0 A))`.
16
+ *
17
+ * `ε0` is the vacuum permittivity. The gap at the fold is `2 g0/3`,
18
+ * not `g0/2`. Fringing is not in the theorem.
19
+ *
20
+ * @public
21
+ */
22
+ export function evaluatePullIn({ k_N_per_m, g0_m, A_m2 }) {
23
+ if (!Number.isFinite(k_N_per_m) || k_N_per_m <= 0) {
24
+ throw new Error('evaluatePullIn: k_N_per_m must be finite and > 0');
25
+ }
26
+ if (!Number.isFinite(g0_m) || g0_m <= 0) {
27
+ throw new Error('evaluatePullIn: g0_m must be finite and > 0');
28
+ }
29
+ if (!Number.isFinite(A_m2) || A_m2 <= 0) {
30
+ throw new Error('evaluatePullIn: A_m2 must be finite and > 0');
31
+ }
32
+ const V_pi_V = Math.sqrt((8 * k_N_per_m * g0_m ** 3) / (27 * EPS0_SI * A_m2));
33
+ return { k_N_per_m, g0_m, A_m2, V_pi_V };
34
+ }
35
+ //# sourceMappingURL=be79-pull-in.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be79-pull-in.js","sourceRoot":"","sources":["../../src/bridges/be79-pull-in.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AA2B1D;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAgB;IACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * BE-80 — Mott–Gurney current,
3
+ * J = (9/8) ε μ V² / d³.
4
+ *
5
+ * Drift J = q n μ E and Poisson dE/dx = q n/ε give E dE/dx = J/(ε μ).
6
+ * With E(0) = 0 the integral is E²/2 = J x/(ε μ). The nonnegative root
7
+ * from 0 to d is this current. A factor other than 9/8 is not this
8
+ * current. Not Child–Langmuir.
9
+ *
10
+ * The overlay formalRef is `PhysJS.MottGurney.current_eq`.
11
+ *
12
+ * @module bridges/be80-mott-gurney
13
+ */
14
+ /**
15
+ * Inputs for {@link evaluateMottGurney}.
16
+ * @public
17
+ */
18
+ export interface MottGurneyInputs {
19
+ /**
20
+ * Permittivity of the solid, farads per metre. The key has no unit
21
+ * suffix: the evaluator takes the number in F/m.
22
+ */
23
+ readonly eps: number;
24
+ /** Drift mobility, square metres per volt-second. */
25
+ readonly mu_m2_per_Vs: number;
26
+ /** Applied voltage, volts. The formula uses V². */
27
+ readonly V_volts: number;
28
+ /** Thickness, metres. */
29
+ readonly d_m: number;
30
+ }
31
+ /**
32
+ * Result of {@link evaluateMottGurney}.
33
+ * @public
34
+ */
35
+ export interface MottGurneyResult {
36
+ readonly eps: number;
37
+ readonly mu_m2_per_Vs: number;
38
+ readonly V_volts: number;
39
+ readonly d_m: number;
40
+ /** Current density, amperes per square metre. */
41
+ readonly J_A_per_m2: number;
42
+ }
43
+ /**
44
+ * Evaluate `J = (9/8) ε μ V² / d³`.
45
+ *
46
+ * Drift, Poisson, and the injecting contact E(0) = 0 are hypotheses.
47
+ * This is not the Child–Langmuir current.
48
+ *
49
+ * @public
50
+ */
51
+ export declare function evaluateMottGurney({ eps, mu_m2_per_Vs, V_volts, d_m, }: MottGurneyInputs): MottGurneyResult;
52
+ //# sourceMappingURL=be80-mott-gurney.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be80-mott-gurney.d.ts","sourceRoot":"","sources":["../../src/bridges/be80-mott-gurney.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,YAAY,EACZ,OAAO,EACP,GAAG,GACJ,EAAE,gBAAgB,GAAG,gBAAgB,CAerC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * BE-80 — Mott–Gurney current,
3
+ * J = (9/8) ε μ V² / d³.
4
+ *
5
+ * Drift J = q n μ E and Poisson dE/dx = q n/ε give E dE/dx = J/(ε μ).
6
+ * With E(0) = 0 the integral is E²/2 = J x/(ε μ). The nonnegative root
7
+ * from 0 to d is this current. A factor other than 9/8 is not this
8
+ * current. Not Child–Langmuir.
9
+ *
10
+ * The overlay formalRef is `PhysJS.MottGurney.current_eq`.
11
+ *
12
+ * @module bridges/be80-mott-gurney
13
+ */
14
+ /**
15
+ * Evaluate `J = (9/8) ε μ V² / d³`.
16
+ *
17
+ * Drift, Poisson, and the injecting contact E(0) = 0 are hypotheses.
18
+ * This is not the Child–Langmuir current.
19
+ *
20
+ * @public
21
+ */
22
+ export function evaluateMottGurney({ eps, mu_m2_per_Vs, V_volts, d_m, }) {
23
+ if (!Number.isFinite(eps) || eps <= 0) {
24
+ throw new Error('evaluateMottGurney: eps must be finite and > 0');
25
+ }
26
+ if (!Number.isFinite(mu_m2_per_Vs) || mu_m2_per_Vs <= 0) {
27
+ throw new Error('evaluateMottGurney: mu_m2_per_Vs must be finite and > 0');
28
+ }
29
+ if (!Number.isFinite(V_volts)) {
30
+ throw new Error('evaluateMottGurney: V_volts must be finite');
31
+ }
32
+ if (!Number.isFinite(d_m) || d_m <= 0) {
33
+ throw new Error('evaluateMottGurney: d_m must be finite and > 0');
34
+ }
35
+ const J_A_per_m2 = ((9 / 8) * eps * mu_m2_per_Vs * V_volts * V_volts) / d_m ** 3;
36
+ return { eps, mu_m2_per_Vs, V_volts, d_m, J_A_per_m2 };
37
+ }
38
+ //# sourceMappingURL=be80-mott-gurney.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be80-mott-gurney.js","sourceRoot":"","sources":["../../src/bridges/be80-mott-gurney.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiCH;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,GAAG,EACH,YAAY,EACZ,OAAO,EACP,GAAG,GACc;IACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACjF,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;AACzD,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Inputs for {@link evaluateChildLangmuir}.
3
+ * @public
4
+ */
5
+ export interface ChildLangmuirInputs {
6
+ /** Particle mass, kilograms. */
7
+ readonly m_kg: number;
8
+ /** Anode voltage, volts. Must be positive so V^{3/2} is real. */
9
+ readonly V_volts: number;
10
+ /** Gap, metres. */
11
+ readonly d_m: number;
12
+ }
13
+ /**
14
+ * Result of {@link evaluateChildLangmuir}.
15
+ * @public
16
+ */
17
+ export interface ChildLangmuirResult {
18
+ readonly m_kg: number;
19
+ readonly V_volts: number;
20
+ readonly d_m: number;
21
+ /** Current density, amperes per square metre. */
22
+ readonly J_A_per_m2: number;
23
+ }
24
+ /**
25
+ * Evaluate `J = (4 ε0 / 9) √(2 e / m) V^{3/2} / d²`.
26
+ *
27
+ * `e` is `E_SI`, the elementary charge, not an input and not Euler's
28
+ * number. `ε0` is the vacuum permittivity.
29
+ *
30
+ * @public
31
+ */
32
+ export declare function evaluateChildLangmuir({ m_kg, V_volts, d_m }: ChildLangmuirInputs): ChildLangmuirResult;
33
+ //# sourceMappingURL=be81-child-langmuir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be81-child-langmuir.d.ts","sourceRoot":"","sources":["../../src/bridges/be81-child-langmuir.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mBAAmB;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,mBAAmB,GAAG,mBAAmB,CAatG"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * BE-81 — Child–Langmuir current,
3
+ * J = (4 ε0 / 9) √(2 e / m) V^{3/2} / d².
4
+ *
5
+ * Collisionless energy (1/2) m v² = e φ, J = ρ v, and Poisson
6
+ * φ'' = ρ/ε0 give a current independent of x only for φ ∝ x^{4/3}.
7
+ * The profile φ = V (x/d)^{4/3} has cathode field 0. Poisson is not
8
+ * claimed at x = 0. `e` is the elementary charge. The Mott–Gurney
9
+ * exponent does not cancel. Not a drift-only solid.
10
+ *
11
+ * The overlay formalRef is `PhysJS.ChildLangmuir.current_eq`.
12
+ *
13
+ * @module bridges/be81-child-langmuir
14
+ */
15
+ import { E_SI } from '../core/constants.js';
16
+ import { EPS0_SI } from '../dimensional/formula-names.js';
17
+ /**
18
+ * Evaluate `J = (4 ε0 / 9) √(2 e / m) V^{3/2} / d²`.
19
+ *
20
+ * `e` is `E_SI`, the elementary charge, not an input and not Euler's
21
+ * number. `ε0` is the vacuum permittivity.
22
+ *
23
+ * @public
24
+ */
25
+ export function evaluateChildLangmuir({ m_kg, V_volts, d_m }) {
26
+ if (!Number.isFinite(m_kg) || m_kg <= 0) {
27
+ throw new Error('evaluateChildLangmuir: m_kg must be finite and > 0');
28
+ }
29
+ if (!Number.isFinite(V_volts) || V_volts <= 0) {
30
+ throw new Error('evaluateChildLangmuir: V_volts must be finite and > 0');
31
+ }
32
+ if (!Number.isFinite(d_m) || d_m <= 0) {
33
+ throw new Error('evaluateChildLangmuir: d_m must be finite and > 0');
34
+ }
35
+ const J_A_per_m2 = ((4 * EPS0_SI) / 9) * Math.sqrt((2 * E_SI) / m_kg) * V_volts ** 1.5 / d_m ** 2;
36
+ return { m_kg, V_volts, d_m, J_A_per_m2 };
37
+ }
38
+ //# sourceMappingURL=be81-child-langmuir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be81-child-langmuir.js","sourceRoot":"","sources":["../../src/bridges/be81-child-langmuir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AA2B1D;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAuB;IAC/E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,UAAU,GACd,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IACjF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Inputs for {@link evaluateShockleyDiode}.
3
+ * @public
4
+ */
5
+ export interface ShockleyDiodeInputs {
6
+ /** Saturation current, amperes. */
7
+ readonly I_s_A: number;
8
+ /** Bias voltage, volts. */
9
+ readonly V_volts: number;
10
+ /** Absolute temperature, kelvin. Nonzero. */
11
+ readonly T_K: number;
12
+ }
13
+ /**
14
+ * Result of {@link evaluateShockleyDiode}.
15
+ * @public
16
+ */
17
+ export interface ShockleyDiodeResult {
18
+ readonly I_s_A: number;
19
+ readonly V_volts: number;
20
+ readonly T_K: number;
21
+ /** Diode current, amperes. */
22
+ readonly I_A: number;
23
+ }
24
+ /**
25
+ * Evaluate `I = I_s (exp(e V / (k_B T)) − 1)` with ideality 1.
26
+ *
27
+ * `e` is the elementary charge. Euler's number is `exp`, not a bare `e`.
28
+ *
29
+ * @public
30
+ */
31
+ export declare function evaluateShockleyDiode({ I_s_A, V_volts, T_K }: ShockleyDiodeInputs): ShockleyDiodeResult;
32
+ //# sourceMappingURL=be82-shockley-diode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be82-shockley-diode.d.ts","sourceRoot":"","sources":["../../src/bridges/be82-shockley-diode.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,mBAAmB,GAAG,mBAAmB,CAYvG"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * BE-82 — Shockley diode equation at ideality 1,
3
+ * I = I_s (exp(e V / (k_B T)) − 1).
4
+ *
5
+ * Quasi-equilibrium multiplies the equilibrium flux by
6
+ * exp(e V / (η k_B T)). Ideality 1 sets η = 1. Detailed balance sets
7
+ * the reverse flux equal to the forward flux at V = 0, and low
8
+ * injection keeps that reverse flux under bias. Zero bias carries zero
9
+ * current. Ideality 2 is not this current when e V ≠ 0. Not a
10
+ * diffusion-length ODE. `e` is the elementary charge.
11
+ *
12
+ * The overlay formalRef is `PhysJS.ShockleyDiode.shockley_eq`.
13
+ *
14
+ * @module bridges/be82-shockley-diode
15
+ */
16
+ import { E_SI, K_B_SI } from '../core/constants.js';
17
+ /**
18
+ * Evaluate `I = I_s (exp(e V / (k_B T)) − 1)` with ideality 1.
19
+ *
20
+ * `e` is the elementary charge. Euler's number is `exp`, not a bare `e`.
21
+ *
22
+ * @public
23
+ */
24
+ export function evaluateShockleyDiode({ I_s_A, V_volts, T_K }) {
25
+ if (!Number.isFinite(I_s_A)) {
26
+ throw new Error('evaluateShockleyDiode: I_s_A must be finite');
27
+ }
28
+ if (!Number.isFinite(V_volts)) {
29
+ throw new Error('evaluateShockleyDiode: V_volts must be finite');
30
+ }
31
+ if (!Number.isFinite(T_K) || T_K === 0) {
32
+ throw new Error('evaluateShockleyDiode: T_K must be finite and nonzero');
33
+ }
34
+ const I_A = I_s_A * (Math.exp((E_SI * V_volts) / (K_B_SI * T_K)) - 1);
35
+ return { I_s_A, V_volts, T_K, I_A };
36
+ }
37
+ //# sourceMappingURL=be82-shockley-diode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be82-shockley-diode.js","sourceRoot":"","sources":["../../src/bridges/be82-shockley-diode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AA2BpD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAuB;IAChF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * BE-83 — first Thomson relation,
3
+ * μ_T = T dS/dT.
4
+ *
5
+ * The Kelvin relation Π(t) = S(t) t, which is
6
+ * `PhysJS.KelvinRelation.peltier_eq` read along temperature, and the
7
+ * Thomson split μ = dΠ/dT − S, give μ = T dS/dT by the product rule.
8
+ * dΠ/dT is not μ when S T ≠ 0. Not a second copy of Π = S T.
9
+ *
10
+ * The overlay formalRef is `PhysJS.Thomson.thomson_eq`.
11
+ *
12
+ * @module bridges/be83-thomson
13
+ */
14
+ /**
15
+ * Inputs for {@link evaluateThomsonCoefficient}.
16
+ * @public
17
+ */
18
+ export interface ThomsonCoefficientInputs {
19
+ /** Absolute temperature, kelvin. */
20
+ readonly T_K: number;
21
+ /**
22
+ * Temperature derivative of the Seebeck coefficient, volts per
23
+ * kelvin squared. This is S', not a sampled difference of S.
24
+ */
25
+ readonly dS_dT_V_per_K2: number;
26
+ }
27
+ /**
28
+ * Result of {@link evaluateThomsonCoefficient}.
29
+ * @public
30
+ */
31
+ export interface ThomsonCoefficientResult {
32
+ readonly T_K: number;
33
+ readonly dS_dT_V_per_K2: number;
34
+ /** Thomson coefficient, volts per kelvin. */
35
+ readonly mu_V_per_K: number;
36
+ }
37
+ /**
38
+ * Evaluate `μ_T = T dS/dT`.
39
+ *
40
+ * The functional Kelvin relation and the Thomson split are hypotheses.
41
+ * This is not Π = S T.
42
+ *
43
+ * @public
44
+ */
45
+ export declare function evaluateThomsonCoefficient({ T_K, dS_dT_V_per_K2, }: ThomsonCoefficientInputs): ThomsonCoefficientResult;
46
+ //# sourceMappingURL=be83-thomson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be83-thomson.d.ts","sourceRoot":"","sources":["../../src/bridges/be83-thomson.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,GAAG,EACH,cAAc,GACf,EAAE,wBAAwB,GAAG,wBAAwB,CASrD"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * BE-83 — first Thomson relation,
3
+ * μ_T = T dS/dT.
4
+ *
5
+ * The Kelvin relation Π(t) = S(t) t, which is
6
+ * `PhysJS.KelvinRelation.peltier_eq` read along temperature, and the
7
+ * Thomson split μ = dΠ/dT − S, give μ = T dS/dT by the product rule.
8
+ * dΠ/dT is not μ when S T ≠ 0. Not a second copy of Π = S T.
9
+ *
10
+ * The overlay formalRef is `PhysJS.Thomson.thomson_eq`.
11
+ *
12
+ * @module bridges/be83-thomson
13
+ */
14
+ /**
15
+ * Evaluate `μ_T = T dS/dT`.
16
+ *
17
+ * The functional Kelvin relation and the Thomson split are hypotheses.
18
+ * This is not Π = S T.
19
+ *
20
+ * @public
21
+ */
22
+ export function evaluateThomsonCoefficient({ T_K, dS_dT_V_per_K2, }) {
23
+ if (!Number.isFinite(T_K)) {
24
+ throw new Error('evaluateThomsonCoefficient: T_K must be finite');
25
+ }
26
+ if (!Number.isFinite(dS_dT_V_per_K2)) {
27
+ throw new Error('evaluateThomsonCoefficient: dS_dT_V_per_K2 must be finite');
28
+ }
29
+ const mu_V_per_K = T_K * dS_dT_V_per_K2;
30
+ return { T_K, dS_dT_V_per_K2, mu_V_per_K };
31
+ }
32
+ //# sourceMappingURL=be83-thomson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be83-thomson.js","sourceRoot":"","sources":["../../src/bridges/be83-thomson.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA2BH;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,EACzC,GAAG,EACH,cAAc,GACW;IACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,GAAG,cAAc,CAAC;IACxC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * BE-84 — collinear four-point sheet resistance,
3
+ * R_s = (π / ln 2) (V / I).
4
+ *
5
+ * On an infinite sheet the radial field of a point current is
6
+ * (I R_s)/(2 π r), and the potential drop is the integral of 1/r.
7
+ * Probes at 0, s, 2s, and 3s, with current in at 0 and out at 3s,
8
+ * each contribute (I R_s/(2 π)) ln 2 on the inner pair. Superposition
9
+ * gives this factor. A sink at 4s gives 2π/ln 3 instead. Not
10
+ * `PhysJS.Crossing.antisymmetry`.
11
+ *
12
+ * The overlay formalRef is `PhysJS.FourPoint.sheet_eq`.
13
+ *
14
+ * @module bridges/be84-four-point
15
+ */
16
+ /**
17
+ * Inputs for {@link evaluateFourPointSheet}.
18
+ * @public
19
+ */
20
+ export interface FourPointSheetInputs {
21
+ /** Inner-pair voltage, volts. */
22
+ readonly V_volts: number;
23
+ /** Probe current, amperes. Nonzero. */
24
+ readonly I_A: number;
25
+ }
26
+ /**
27
+ * Result of {@link evaluateFourPointSheet}.
28
+ * @public
29
+ */
30
+ export interface FourPointSheetResult {
31
+ readonly V_volts: number;
32
+ readonly I_A: number;
33
+ /** Sheet resistance, ohms per square. */
34
+ readonly R_s_ohm: number;
35
+ }
36
+ /**
37
+ * Evaluate `R_s = (π / ln 2) (V / I)` for equally spaced collinear probes.
38
+ *
39
+ * The radial 1/r field and linear superposition are hypotheses. The
40
+ * spacing s cancels and is not an input. A sink at 4s is not this factor.
41
+ *
42
+ * @public
43
+ */
44
+ export declare function evaluateFourPointSheet({ V_volts, I_A }: FourPointSheetInputs): FourPointSheetResult;
45
+ //# sourceMappingURL=be84-four-point.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be84-four-point.d.ts","sourceRoot":"","sources":["../../src/bridges/be84-four-point.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,oBAAoB,GAAG,oBAAoB,CASnG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * BE-84 — collinear four-point sheet resistance,
3
+ * R_s = (π / ln 2) (V / I).
4
+ *
5
+ * On an infinite sheet the radial field of a point current is
6
+ * (I R_s)/(2 π r), and the potential drop is the integral of 1/r.
7
+ * Probes at 0, s, 2s, and 3s, with current in at 0 and out at 3s,
8
+ * each contribute (I R_s/(2 π)) ln 2 on the inner pair. Superposition
9
+ * gives this factor. A sink at 4s gives 2π/ln 3 instead. Not
10
+ * `PhysJS.Crossing.antisymmetry`.
11
+ *
12
+ * The overlay formalRef is `PhysJS.FourPoint.sheet_eq`.
13
+ *
14
+ * @module bridges/be84-four-point
15
+ */
16
+ /**
17
+ * Evaluate `R_s = (π / ln 2) (V / I)` for equally spaced collinear probes.
18
+ *
19
+ * The radial 1/r field and linear superposition are hypotheses. The
20
+ * spacing s cancels and is not an input. A sink at 4s is not this factor.
21
+ *
22
+ * @public
23
+ */
24
+ export function evaluateFourPointSheet({ V_volts, I_A }) {
25
+ if (!Number.isFinite(V_volts)) {
26
+ throw new Error('evaluateFourPointSheet: V_volts must be finite');
27
+ }
28
+ if (!Number.isFinite(I_A) || I_A === 0) {
29
+ throw new Error('evaluateFourPointSheet: I_A must be finite and nonzero');
30
+ }
31
+ const R_s_ohm = (Math.PI / Math.log(2)) * (V_volts / I_A);
32
+ return { V_volts, I_A, R_s_ohm };
33
+ }
34
+ //# sourceMappingURL=be84-four-point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be84-four-point.js","sourceRoot":"","sources":["../../src/bridges/be84-four-point.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwBH;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAwB;IAC3E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IAC1D,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Inputs for {@link evaluateShotNoise}.
3
+ * @public
4
+ */
5
+ export interface ShotNoiseInputs {
6
+ /**
7
+ * Current in the Poisson mean N = (I/e) T, amperes. The theorem is
8
+ * linear in I. It does not take the absolute value.
9
+ */
10
+ readonly I_A: number;
11
+ }
12
+ /**
13
+ * Result of {@link evaluateShotNoise}.
14
+ * @public
15
+ */
16
+ export interface ShotNoiseResult {
17
+ readonly I_A: number;
18
+ /** One-sided current spectral density, amperes squared per hertz. */
19
+ readonly S_I_A2_per_Hz: number;
20
+ }
21
+ /**
22
+ * Evaluate the one-sided spectrum `S_I = 2 e I`.
23
+ *
24
+ * `e` is the elementary charge. The two-sided convention e I is not
25
+ * this result.
26
+ *
27
+ * @public
28
+ */
29
+ export declare function evaluateShotNoise({ I_A }: ShotNoiseInputs): ShotNoiseResult;
30
+ //# sourceMappingURL=be85-shot-noise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be85-shot-noise.d.ts","sourceRoot":"","sources":["../../src/bridges/be85-shot-noise.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,GAAG,eAAe,CAM3E"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * BE-85 — one-sided shot noise,
3
+ * S_I = 2 e I.
4
+ *
5
+ * In a window of length T the count N has mean (I/e) T, and the Poisson
6
+ * premise is Var(N) = mean(N). Charge e scales the variance by e² and
7
+ * the windowed current divides by T, so Var(I) = e I / T. The one-sided
8
+ * bandwidth of that window is Δf = 1/(2 T), and S_I = Var(I)/Δf is
9
+ * 2 e I. The two-sided bandwidth Δf = 1/T gives e I. `e` is the
10
+ * elementary charge. Not a Fourier theorem and not Johnson–Nyquist.
11
+ *
12
+ * The overlay formalRef is `PhysJS.ShotNoise.shot_eq`.
13
+ *
14
+ * @module bridges/be85-shot-noise
15
+ */
16
+ import { E_SI } from '../core/constants.js';
17
+ /**
18
+ * Evaluate the one-sided spectrum `S_I = 2 e I`.
19
+ *
20
+ * `e` is the elementary charge. The two-sided convention e I is not
21
+ * this result.
22
+ *
23
+ * @public
24
+ */
25
+ export function evaluateShotNoise({ I_A }) {
26
+ if (!Number.isFinite(I_A)) {
27
+ throw new Error('evaluateShotNoise: I_A must be finite');
28
+ }
29
+ const S_I_A2_per_Hz = 2 * E_SI * I_A;
30
+ return { I_A, S_I_A2_per_Hz };
31
+ }
32
+ //# sourceMappingURL=be85-shot-noise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be85-shot-noise.js","sourceRoot":"","sources":["../../src/bridges/be85-shot-noise.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAwB5C;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,GAAG,EAAmB;IACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;IACrC,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * BE-86 — Reynolds analogy at Prandtl number 1,
3
+ * St = C_f / 2.
4
+ *
5
+ * Wall fluxes τ = μ du/dy and q = k dT/dy, with
6
+ * C_f = τ/(ρ U²/2), h = q/ΔT, St = h/(ρ U c_p), and Pr = μ c_p/k,
7
+ * satisfy St Pr = C_f/2 when the normalized wall gradients agree.
8
+ * That common slope is the equal-diffusivity hypothesis. At Pr = 1,
9
+ * St = C_f/2. Pr ≠ 1 with nonzero skin friction is not this equality.
10
+ * Not a Nusselt correlation.
11
+ *
12
+ * The overlay formalRef is `PhysJS.ReynoldsAnalogy.reynolds_eq`.
13
+ *
14
+ * @module bridges/be86-reynolds-analogy
15
+ */
16
+ /**
17
+ * Inputs for {@link evaluateReynoldsAnalogy}.
18
+ * @public
19
+ */
20
+ export interface ReynoldsAnalogyInputs {
21
+ /**
22
+ * Skin-friction coefficient. The 1/2 in the catalog equation is the
23
+ * normalization C_f = τ/(ρ U²/2), already inside this number.
24
+ */
25
+ readonly C_f: number;
26
+ }
27
+ /**
28
+ * Result of {@link evaluateReynoldsAnalogy}.
29
+ * @public
30
+ */
31
+ export interface ReynoldsAnalogyResult {
32
+ readonly C_f: number;
33
+ /** Stanton number at Pr = 1 with matched wall slopes. */
34
+ readonly St: number;
35
+ }
36
+ /**
37
+ * Evaluate `St = C_f / 2` under the matched-slope hypothesis at Pr = 1.
38
+ *
39
+ * Prandtl number and the wall slopes are hypotheses, not inputs. The
40
+ * function does not accept Pr ≠ 1 and still return this equality.
41
+ *
42
+ * @public
43
+ */
44
+ export declare function evaluateReynoldsAnalogy({ C_f }: ReynoldsAnalogyInputs): ReynoldsAnalogyResult;
45
+ //# sourceMappingURL=be86-reynolds-analogy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be86-reynolds-analogy.d.ts","sourceRoot":"","sources":["../../src/bridges/be86-reynolds-analogy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,GAAG,qBAAqB,CAK7F"}