universal-physics-tensor 3.0.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 (162) hide show
  1. package/README.md +6 -6
  2. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
  3. package/dist/atlas/catalog-formal-ref.js +2 -1
  4. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  5. package/dist/atlas/physjs-ref.d.ts +28 -2
  6. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  7. package/dist/atlas/physjs-ref.js +176 -7
  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/be74-magnetic-pressure.d.ts +27 -0
  14. package/dist/bridges/be74-magnetic-pressure.d.ts.map +1 -0
  15. package/dist/bridges/be74-magnetic-pressure.js +29 -0
  16. package/dist/bridges/be74-magnetic-pressure.js.map +1 -0
  17. package/dist/bridges/be75-london-penetration.d.ts +27 -0
  18. package/dist/bridges/be75-london-penetration.d.ts.map +1 -0
  19. package/dist/bridges/be75-london-penetration.js +31 -0
  20. package/dist/bridges/be75-london-penetration.js.map +1 -0
  21. package/dist/bridges/be76-plasma-beta.d.ts +32 -0
  22. package/dist/bridges/be76-plasma-beta.d.ts.map +1 -0
  23. package/dist/bridges/be76-plasma-beta.js +34 -0
  24. package/dist/bridges/be76-plasma-beta.js.map +1 -0
  25. package/dist/bridges/be77-hagen-poiseuille.d.ts +50 -0
  26. package/dist/bridges/be77-hagen-poiseuille.d.ts.map +1 -0
  27. package/dist/bridges/be77-hagen-poiseuille.js +39 -0
  28. package/dist/bridges/be77-hagen-poiseuille.js.map +1 -0
  29. package/dist/bridges/be78-euler-buckling.d.ts +44 -0
  30. package/dist/bridges/be78-euler-buckling.d.ts.map +1 -0
  31. package/dist/bridges/be78-euler-buckling.js +33 -0
  32. package/dist/bridges/be78-euler-buckling.js.map +1 -0
  33. package/dist/bridges/be79-pull-in.d.ts +33 -0
  34. package/dist/bridges/be79-pull-in.d.ts.map +1 -0
  35. package/dist/bridges/be79-pull-in.js +35 -0
  36. package/dist/bridges/be79-pull-in.js.map +1 -0
  37. package/dist/bridges/be80-mott-gurney.d.ts +52 -0
  38. package/dist/bridges/be80-mott-gurney.d.ts.map +1 -0
  39. package/dist/bridges/be80-mott-gurney.js +38 -0
  40. package/dist/bridges/be80-mott-gurney.js.map +1 -0
  41. package/dist/bridges/be81-child-langmuir.d.ts +33 -0
  42. package/dist/bridges/be81-child-langmuir.d.ts.map +1 -0
  43. package/dist/bridges/be81-child-langmuir.js +38 -0
  44. package/dist/bridges/be81-child-langmuir.js.map +1 -0
  45. package/dist/bridges/be82-shockley-diode.d.ts +32 -0
  46. package/dist/bridges/be82-shockley-diode.d.ts.map +1 -0
  47. package/dist/bridges/be82-shockley-diode.js +37 -0
  48. package/dist/bridges/be82-shockley-diode.js.map +1 -0
  49. package/dist/bridges/be83-thomson.d.ts +46 -0
  50. package/dist/bridges/be83-thomson.d.ts.map +1 -0
  51. package/dist/bridges/be83-thomson.js +32 -0
  52. package/dist/bridges/be83-thomson.js.map +1 -0
  53. package/dist/bridges/be84-four-point.d.ts +45 -0
  54. package/dist/bridges/be84-four-point.d.ts.map +1 -0
  55. package/dist/bridges/be84-four-point.js +34 -0
  56. package/dist/bridges/be84-four-point.js.map +1 -0
  57. package/dist/bridges/be85-shot-noise.d.ts +30 -0
  58. package/dist/bridges/be85-shot-noise.d.ts.map +1 -0
  59. package/dist/bridges/be85-shot-noise.js +32 -0
  60. package/dist/bridges/be85-shot-noise.js.map +1 -0
  61. package/dist/bridges/be86-reynolds-analogy.d.ts +45 -0
  62. package/dist/bridges/be86-reynolds-analogy.d.ts.map +1 -0
  63. package/dist/bridges/be86-reynolds-analogy.js +30 -0
  64. package/dist/bridges/be86-reynolds-analogy.js.map +1 -0
  65. package/dist/bridges/be87-capacitor-noise.d.ts +27 -0
  66. package/dist/bridges/be87-capacitor-noise.d.ts.map +1 -0
  67. package/dist/bridges/be87-capacitor-noise.js +32 -0
  68. package/dist/bridges/be87-capacitor-noise.js.map +1 -0
  69. package/dist/bridges/bridge-equations.d.ts +28 -0
  70. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  71. package/dist/bridges/bridge-equations.js +28 -0
  72. package/dist/bridges/bridge-equations.js.map +1 -1
  73. package/dist/bridges/evaluators.d.ts.map +1 -1
  74. package/dist/bridges/evaluators.js +72 -2
  75. package/dist/bridges/evaluators.js.map +1 -1
  76. package/dist/bridges/index.d.ts +31 -3
  77. package/dist/bridges/index.d.ts.map +1 -1
  78. package/dist/bridges/index.js +311 -3
  79. package/dist/bridges/index.js.map +1 -1
  80. package/dist/cases/brownian-sphere.d.ts.map +1 -1
  81. package/dist/cases/brownian-sphere.js +4 -4
  82. package/dist/cases/brownian-sphere.js.map +1 -1
  83. package/dist/cases/lumped-cooling.d.ts.map +1 -1
  84. package/dist/cases/lumped-cooling.js +2 -2
  85. package/dist/cases/lumped-cooling.js.map +1 -1
  86. package/dist/cases/resistor-noise.d.ts.map +1 -1
  87. package/dist/cases/resistor-noise.js +2 -2
  88. package/dist/cases/resistor-noise.js.map +1 -1
  89. package/dist/cases/skin-depth.d.ts.map +1 -1
  90. package/dist/cases/skin-depth.js +2 -2
  91. package/dist/cases/skin-depth.js.map +1 -1
  92. package/dist/cases/types.d.ts +11 -1
  93. package/dist/cases/types.d.ts.map +1 -1
  94. package/dist/cases/types.js +9 -0
  95. package/dist/cases/types.js.map +1 -1
  96. package/dist/cli/closed-form-range.d.ts +1 -1
  97. package/dist/cli/closed-form-range.js +1 -1
  98. package/dist/cli/commands/audit.d.ts.map +1 -1
  99. package/dist/cli/commands/audit.js +22 -4
  100. package/dist/cli/commands/audit.js.map +1 -1
  101. package/dist/cli/commands/search.js +2 -2
  102. package/dist/cli/commands/search.js.map +1 -1
  103. package/dist/cli/search-index.d.ts +4 -2
  104. package/dist/cli/search-index.d.ts.map +1 -1
  105. package/dist/cli/search-index.js +38 -3
  106. package/dist/cli/search-index.js.map +1 -1
  107. package/dist/cli/statuses.d.ts.map +1 -1
  108. package/dist/cli/statuses.js +7 -0
  109. package/dist/cli/statuses.js.map +1 -1
  110. package/dist/composition/bridge-analysis.d.ts +14 -2
  111. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  112. package/dist/composition/bridge-analysis.js +43 -6
  113. package/dist/composition/bridge-analysis.js.map +1 -1
  114. package/dist/composition/canonical-graph.d.ts +7 -6
  115. package/dist/composition/canonical-graph.d.ts.map +1 -1
  116. package/dist/composition/canonical-graph.js +13 -9
  117. package/dist/composition/canonical-graph.js.map +1 -1
  118. package/dist/composition/canonical-prefactors.d.ts +4 -2
  119. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  120. package/dist/composition/canonical-prefactors.js +46 -2
  121. package/dist/composition/canonical-prefactors.js.map +1 -1
  122. package/dist/composition/catalog-graph.d.ts +3 -3
  123. package/dist/composition/catalog-graph.js +3 -3
  124. package/dist/composition/edge.d.ts +10 -2
  125. package/dist/composition/edge.d.ts.map +1 -1
  126. package/dist/composition/edge.js +62 -2
  127. package/dist/composition/edge.js.map +1 -1
  128. package/dist/composition/edges/applied-physicist.d.ts +100 -2
  129. package/dist/composition/edges/applied-physicist.d.ts.map +1 -1
  130. package/dist/composition/edges/applied-physicist.js +528 -20
  131. package/dist/composition/edges/applied-physicist.js.map +1 -1
  132. package/dist/composition/explain.d.ts.map +1 -1
  133. package/dist/composition/explain.js +70 -5
  134. package/dist/composition/explain.js.map +1 -1
  135. package/dist/composition/formula-shape.d.ts +22 -0
  136. package/dist/composition/formula-shape.d.ts.map +1 -0
  137. package/dist/composition/formula-shape.js +124 -0
  138. package/dist/composition/formula-shape.js.map +1 -0
  139. package/dist/composition/index.d.ts +2 -2
  140. package/dist/composition/index.d.ts.map +1 -1
  141. package/dist/composition/index.js +2 -2
  142. package/dist/composition/index.js.map +1 -1
  143. package/dist/composition/quantities/applied-physicist.d.ts +91 -1
  144. package/dist/composition/quantities/applied-physicist.d.ts.map +1 -1
  145. package/dist/composition/quantities/applied-physicist.js +331 -1
  146. package/dist/composition/quantities/applied-physicist.js.map +1 -1
  147. package/dist/dimensional/bridge-check.d.ts +1 -1
  148. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  149. package/dist/dimensional/bridge-check.js +15 -1
  150. package/dist/dimensional/bridge-check.js.map +1 -1
  151. package/dist/dimensional/buckingham.d.ts +7 -0
  152. package/dist/dimensional/buckingham.d.ts.map +1 -1
  153. package/dist/dimensional/buckingham.js +4 -0
  154. package/dist/dimensional/buckingham.js.map +1 -1
  155. package/dist/dimensional/units.d.ts.map +1 -1
  156. package/dist/dimensional/units.js +3 -0
  157. package/dist/dimensional/units.js.map +1 -1
  158. package/dist/index.d.ts +2 -2
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +2 -2
  161. package/dist/index.js.map +1 -1
  162. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ /**
2
+ * BE-75 — London penetration depth,
3
+ * λ_L = √(m / (μ0 n e²)).
4
+ *
5
+ * `e` is the elementary charge. The dimension matrix of `{m, μ0, n, e}`
6
+ * also admits `μ0 e²/m`, so units do not choose this root. Replacing `e`
7
+ * by `2e` is not this depth. This is not the classical skin depth.
8
+ *
9
+ * `μ0` is `1/(ε0 c²)`. The overlay formalRef is
10
+ * `PhysJS.LondonPenetration.depth_eq`.
11
+ *
12
+ * @module bridges/be75-london-penetration
13
+ */
14
+ import { E_SI } from '../core/constants.js';
15
+ import { MU0_SI } from '../dimensional/formula-names.js';
16
+ /**
17
+ * Evaluate `λ_L = √(m / (μ0 n e²))` with `e` the elementary charge.
18
+ *
19
+ * @public
20
+ */
21
+ export function evaluateLondonPenetration({ m_kg, n_per_m3, }) {
22
+ if (!Number.isFinite(m_kg) || m_kg <= 0) {
23
+ throw new Error('evaluateLondonPenetration: m_kg must be finite and > 0');
24
+ }
25
+ if (!Number.isFinite(n_per_m3) || n_per_m3 <= 0) {
26
+ throw new Error('evaluateLondonPenetration: n_per_m3 must be finite and > 0');
27
+ }
28
+ const lambda_m = Math.sqrt(m_kg / (MU0_SI * n_per_m3 * E_SI * E_SI));
29
+ return { m_kg, n_per_m3, lambda_m };
30
+ }
31
+ //# sourceMappingURL=be75-london-penetration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be75-london-penetration.js","sourceRoot":"","sources":["../../src/bridges/be75-london-penetration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAwBzD;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,IAAI,EACJ,QAAQ,GACgB;IACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IACrE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Inputs for {@link evaluatePlasmaBeta}.
3
+ * @public
4
+ */
5
+ export interface PlasmaBetaInputs {
6
+ /** Number density, m⁻³. */
7
+ readonly n_per_m3: number;
8
+ /** Temperature, kelvin. */
9
+ readonly T_K: number;
10
+ /**
11
+ * Magnetic pressure, pascal. This is `B²/(2 μ0)`, not `B²/μ0`.
12
+ */
13
+ readonly p_B_Pa: number;
14
+ }
15
+ /**
16
+ * Result of {@link evaluatePlasmaBeta}.
17
+ * @public
18
+ */
19
+ export interface PlasmaBetaResult {
20
+ readonly n_per_m3: number;
21
+ readonly T_K: number;
22
+ readonly p_B_Pa: number;
23
+ /** Dimensionless pressure ratio. */
24
+ readonly beta: number;
25
+ }
26
+ /**
27
+ * Evaluate `β = n k_B T / p_B`.
28
+ *
29
+ * @public
30
+ */
31
+ export declare function evaluatePlasmaBeta({ n_per_m3, T_K, p_B_Pa }: PlasmaBetaInputs): PlasmaBetaResult;
32
+ //# sourceMappingURL=be76-plasma-beta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be76-plasma-beta.d.ts","sourceRoot":"","sources":["../../src/bridges/be76-plasma-beta.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2BAA2B;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,CAYhG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * BE-76 — plasma beta,
3
+ * β = p_gas / p_B = n k_B T / p_B,
4
+ * where `p_B` is {@link evaluateMagneticPressure} (`B²/(2 μ0)`).
5
+ *
6
+ * The ideal-gas closure `p_gas = n k_B T` is a hypothesis. Substituting
7
+ * the magnetic pressure gives `β = 2 μ0 n k_B T / B²`. Using `B²/μ0` in
8
+ * place of `p_B` is half of this beta. This is not a plasma-β inequality
9
+ * and not a unique monomial of `{n, T, B, μ0}`.
10
+ *
11
+ * The overlay formalRef is `PhysJS.PlasmaBeta.beta_eq`.
12
+ *
13
+ * @module bridges/be76-plasma-beta
14
+ */
15
+ import { K_B_SI } from '../core/constants.js';
16
+ /**
17
+ * Evaluate `β = n k_B T / p_B`.
18
+ *
19
+ * @public
20
+ */
21
+ export function evaluatePlasmaBeta({ n_per_m3, T_K, p_B_Pa }) {
22
+ if (!Number.isFinite(n_per_m3)) {
23
+ throw new Error('evaluatePlasmaBeta: n_per_m3 must be finite');
24
+ }
25
+ if (!Number.isFinite(T_K)) {
26
+ throw new Error('evaluatePlasmaBeta: T_K must be finite');
27
+ }
28
+ if (!Number.isFinite(p_B_Pa) || p_B_Pa === 0) {
29
+ throw new Error('evaluatePlasmaBeta: p_B_Pa must be finite and nonzero');
30
+ }
31
+ const beta = (n_per_m3 * K_B_SI * T_K) / p_B_Pa;
32
+ return { n_per_m3, T_K, p_B_Pa, beta };
33
+ }
34
+ //# sourceMappingURL=be76-plasma-beta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be76-plasma-beta.js","sourceRoot":"","sources":["../../src/bridges/be76-plasma-beta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AA6B9C;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAoB;IAC5E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;IAChD,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * BE-77 — Hagen–Poiseuille flux,
3
+ * Q = π R⁴ ΔP / (8 μ L).
4
+ *
5
+ * Steady axisymmetric Newtonian flow with d/dr (r du/dr) = (G/μ) r,
6
+ * centerline slope 0, and no-slip u(R) = 0 integrates to the parabola.
7
+ * G = −ΔP/L. The flux is the integral of that profile. Darcy's
8
+ * definitions then give f_D Re = 64. The Fanning product is 16, and a
9
+ * square duct is a different eigenvalue. Neither is this flux.
10
+ *
11
+ * The overlay formalRef is `PhysJS.HagenPoiseuille.flow_eq`.
12
+ *
13
+ * @module bridges/be77-hagen-poiseuille
14
+ */
15
+ /**
16
+ * Inputs for {@link evaluateHagenPoiseuille}.
17
+ * @public
18
+ */
19
+ export interface HagenPoiseuilleInputs {
20
+ /** Pipe radius, metres. */
21
+ readonly R_m: number;
22
+ /** Pressure drop along the pipe, pascal. */
23
+ readonly deltaP_Pa: number;
24
+ /** Dynamic viscosity, pascal-seconds. Nonzero. */
25
+ readonly mu_Pa_s: number;
26
+ /** Pipe length, metres. Nonzero. */
27
+ readonly L_m: number;
28
+ }
29
+ /**
30
+ * Result of {@link evaluateHagenPoiseuille}.
31
+ * @public
32
+ */
33
+ export interface HagenPoiseuilleResult {
34
+ readonly R_m: number;
35
+ readonly deltaP_Pa: number;
36
+ readonly mu_Pa_s: number;
37
+ readonly L_m: number;
38
+ /** Volume flux, cubic metres per second. */
39
+ readonly Q_m3_per_s: number;
40
+ }
41
+ /**
42
+ * Evaluate `Q = π R⁴ ΔP / (8 μ L)`.
43
+ *
44
+ * The 8 is the integral of the no-slip parabola. It is not the Fanning
45
+ * factor 16, and it is not a square-duct eigenvalue.
46
+ *
47
+ * @public
48
+ */
49
+ export declare function evaluateHagenPoiseuille({ R_m, deltaP_Pa, mu_Pa_s, L_m, }: HagenPoiseuilleInputs): HagenPoiseuilleResult;
50
+ //# sourceMappingURL=be77-hagen-poiseuille.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be77-hagen-poiseuille.d.ts","sourceRoot":"","sources":["../../src/bridges/be77-hagen-poiseuille.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,GAAG,EACH,SAAS,EACT,OAAO,EACP,GAAG,GACJ,EAAE,qBAAqB,GAAG,qBAAqB,CAe/C"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * BE-77 — Hagen–Poiseuille flux,
3
+ * Q = π R⁴ ΔP / (8 μ L).
4
+ *
5
+ * Steady axisymmetric Newtonian flow with d/dr (r du/dr) = (G/μ) r,
6
+ * centerline slope 0, and no-slip u(R) = 0 integrates to the parabola.
7
+ * G = −ΔP/L. The flux is the integral of that profile. Darcy's
8
+ * definitions then give f_D Re = 64. The Fanning product is 16, and a
9
+ * square duct is a different eigenvalue. Neither is this flux.
10
+ *
11
+ * The overlay formalRef is `PhysJS.HagenPoiseuille.flow_eq`.
12
+ *
13
+ * @module bridges/be77-hagen-poiseuille
14
+ */
15
+ /**
16
+ * Evaluate `Q = π R⁴ ΔP / (8 μ L)`.
17
+ *
18
+ * The 8 is the integral of the no-slip parabola. It is not the Fanning
19
+ * factor 16, and it is not a square-duct eigenvalue.
20
+ *
21
+ * @public
22
+ */
23
+ export function evaluateHagenPoiseuille({ R_m, deltaP_Pa, mu_Pa_s, L_m, }) {
24
+ if (!Number.isFinite(R_m) || R_m <= 0) {
25
+ throw new Error('evaluateHagenPoiseuille: R_m must be finite and > 0');
26
+ }
27
+ if (!Number.isFinite(deltaP_Pa)) {
28
+ throw new Error('evaluateHagenPoiseuille: deltaP_Pa must be finite');
29
+ }
30
+ if (!Number.isFinite(mu_Pa_s) || mu_Pa_s === 0) {
31
+ throw new Error('evaluateHagenPoiseuille: mu_Pa_s must be finite and nonzero');
32
+ }
33
+ if (!Number.isFinite(L_m) || L_m === 0) {
34
+ throw new Error('evaluateHagenPoiseuille: L_m must be finite and nonzero');
35
+ }
36
+ const Q_m3_per_s = (Math.PI * R_m ** 4 * deltaP_Pa) / (8 * mu_Pa_s * L_m);
37
+ return { R_m, deltaP_Pa, mu_Pa_s, L_m, Q_m3_per_s };
38
+ }
39
+ //# sourceMappingURL=be77-hagen-poiseuille.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be77-hagen-poiseuille.js","sourceRoot":"","sources":["../../src/bridges/be77-hagen-poiseuille.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA8BH;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACtC,GAAG,EACH,SAAS,EACT,OAAO,EACP,GAAG,GACmB;IACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;IAC1E,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;AACtD,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * BE-78 — Euler buckling load of a pinned–pinned column,
3
+ * P_cr = π² E I / L².
4
+ *
5
+ * The Euler–Bernoulli balance y'' = −ω² y with ω² = P/(E I) and pinned
6
+ * ends y(0) = y(L) = 0 has the eigenfunction sin(π x/L) at that load.
7
+ * Every nontrivial solution has ω L = n π for a nonzero integer n, so
8
+ * the load is at least this value. The clamped-free column is
9
+ * π² E I/(4 L²). That factor is not this load.
10
+ *
11
+ * The overlay formalRef is `PhysJS.EulerBuckling.critical_load`.
12
+ *
13
+ * @module bridges/be78-euler-buckling
14
+ */
15
+ /**
16
+ * Inputs for {@link evaluateEulerBuckling}.
17
+ * @public
18
+ */
19
+ export interface EulerBucklingInputs {
20
+ /** Young's modulus, pascal. */
21
+ readonly E_Pa: number;
22
+ /** Second moment of area, metres⁴. */
23
+ readonly I_m4: number;
24
+ /** Column length between pinned ends, metres. */
25
+ readonly L_m: number;
26
+ }
27
+ /**
28
+ * Result of {@link evaluateEulerBuckling}.
29
+ * @public
30
+ */
31
+ export interface EulerBucklingResult {
32
+ readonly E_Pa: number;
33
+ readonly I_m4: number;
34
+ readonly L_m: number;
35
+ /** Lowest pinned–pinned critical load, newtons. */
36
+ readonly P_N: number;
37
+ }
38
+ /**
39
+ * Evaluate `P_cr = π² E I / L²` for pinned ends.
40
+ *
41
+ * @public
42
+ */
43
+ export declare function evaluateEulerBuckling({ E_Pa, I_m4, L_m }: EulerBucklingInputs): EulerBucklingResult;
44
+ //# sourceMappingURL=be78-euler-buckling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be78-euler-buckling.d.ts","sourceRoot":"","sources":["../../src/bridges/be78-euler-buckling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,mBAAmB,GAAG,mBAAmB,CAYnG"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * BE-78 — Euler buckling load of a pinned–pinned column,
3
+ * P_cr = π² E I / L².
4
+ *
5
+ * The Euler–Bernoulli balance y'' = −ω² y with ω² = P/(E I) and pinned
6
+ * ends y(0) = y(L) = 0 has the eigenfunction sin(π x/L) at that load.
7
+ * Every nontrivial solution has ω L = n π for a nonzero integer n, so
8
+ * the load is at least this value. The clamped-free column is
9
+ * π² E I/(4 L²). That factor is not this load.
10
+ *
11
+ * The overlay formalRef is `PhysJS.EulerBuckling.critical_load`.
12
+ *
13
+ * @module bridges/be78-euler-buckling
14
+ */
15
+ /**
16
+ * Evaluate `P_cr = π² E I / L²` for pinned ends.
17
+ *
18
+ * @public
19
+ */
20
+ export function evaluateEulerBuckling({ E_Pa, I_m4, L_m }) {
21
+ if (!Number.isFinite(E_Pa) || E_Pa <= 0) {
22
+ throw new Error('evaluateEulerBuckling: E_Pa must be finite and > 0');
23
+ }
24
+ if (!Number.isFinite(I_m4) || I_m4 <= 0) {
25
+ throw new Error('evaluateEulerBuckling: I_m4 must be finite and > 0');
26
+ }
27
+ if (!Number.isFinite(L_m) || L_m <= 0) {
28
+ throw new Error('evaluateEulerBuckling: L_m must be finite and > 0');
29
+ }
30
+ const P_N = (Math.PI ** 2 * E_Pa * I_m4) / (L_m * L_m);
31
+ return { E_Pa, I_m4, L_m, P_N };
32
+ }
33
+ //# sourceMappingURL=be78-euler-buckling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be78-euler-buckling.js","sourceRoot":"","sources":["../../src/bridges/be78-euler-buckling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA2BH;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAuB;IAC5E,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,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,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACvD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC"}
@@ -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"}