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.
Files changed (238) 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 -0
  4. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  5. package/dist/atlas/physjs-ref.d.ts +10 -4
  6. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  7. package/dist/atlas/physjs-ref.js +270 -4
  8. package/dist/atlas/physjs-ref.js.map +1 -1
  9. package/dist/bridges/be100-lyddane-sachs-teller.d.ts +41 -0
  10. package/dist/bridges/be100-lyddane-sachs-teller.d.ts.map +1 -0
  11. package/dist/bridges/be100-lyddane-sachs-teller.js +30 -0
  12. package/dist/bridges/be100-lyddane-sachs-teller.js.map +1 -0
  13. package/dist/bridges/be101-bkt-jump.d.ts +24 -0
  14. package/dist/bridges/be101-bkt-jump.d.ts.map +1 -0
  15. package/dist/bridges/be101-bkt-jump.js +29 -0
  16. package/dist/bridges/be101-bkt-jump.js.map +1 -0
  17. package/dist/bridges/be102-landauer-conductance.d.ts +24 -0
  18. package/dist/bridges/be102-landauer-conductance.d.ts.map +1 -0
  19. package/dist/bridges/be102-landauer-conductance.js +28 -0
  20. package/dist/bridges/be102-landauer-conductance.js.map +1 -0
  21. package/dist/bridges/be70-einstein-relation.d.ts +1 -1
  22. package/dist/bridges/be70-einstein-relation.d.ts.map +1 -1
  23. package/dist/bridges/be70-einstein-relation.js +4 -1
  24. package/dist/bridges/be70-einstein-relation.js.map +1 -1
  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/be88-fermi-sea.d.ts +31 -0
  70. package/dist/bridges/be88-fermi-sea.d.ts.map +1 -0
  71. package/dist/bridges/be88-fermi-sea.js +35 -0
  72. package/dist/bridges/be88-fermi-sea.js.map +1 -0
  73. package/dist/bridges/be89-debye-cutoff.d.ts +39 -0
  74. package/dist/bridges/be89-debye-cutoff.d.ts.map +1 -0
  75. package/dist/bridges/be89-debye-cutoff.js +28 -0
  76. package/dist/bridges/be89-debye-cutoff.js.map +1 -0
  77. package/dist/bridges/be90-debye-heat.d.ts +30 -0
  78. package/dist/bridges/be90-debye-heat.d.ts.map +1 -0
  79. package/dist/bridges/be90-debye-heat.js +35 -0
  80. package/dist/bridges/be90-debye-heat.js.map +1 -0
  81. package/dist/bridges/be91-einstein-solid.d.ts +30 -0
  82. package/dist/bridges/be91-einstein-solid.d.ts.map +1 -0
  83. package/dist/bridges/be91-einstein-solid.js +37 -0
  84. package/dist/bridges/be91-einstein-solid.js.map +1 -0
  85. package/dist/bridges/be92-sommerfeld-heat.d.ts +30 -0
  86. package/dist/bridges/be92-sommerfeld-heat.d.ts.map +1 -0
  87. package/dist/bridges/be92-sommerfeld-heat.js +34 -0
  88. package/dist/bridges/be92-sommerfeld-heat.js.map +1 -0
  89. package/dist/bridges/be93-curie-weiss.d.ts +41 -0
  90. package/dist/bridges/be93-curie-weiss.d.ts.map +1 -0
  91. package/dist/bridges/be93-curie-weiss.js +45 -0
  92. package/dist/bridges/be93-curie-weiss.js.map +1 -0
  93. package/dist/bridges/be94-pauli-paramagnetism.d.ts +30 -0
  94. package/dist/bridges/be94-pauli-paramagnetism.d.ts.map +1 -0
  95. package/dist/bridges/be94-pauli-paramagnetism.js +33 -0
  96. package/dist/bridges/be94-pauli-paramagnetism.js.map +1 -0
  97. package/dist/bridges/be95-ginzburg-landau.d.ts +46 -0
  98. package/dist/bridges/be95-ginzburg-landau.d.ts.map +1 -0
  99. package/dist/bridges/be95-ginzburg-landau.js +32 -0
  100. package/dist/bridges/be95-ginzburg-landau.js.map +1 -0
  101. package/dist/bridges/be96-upper-critical.d.ts +24 -0
  102. package/dist/bridges/be96-upper-critical.d.ts.map +1 -0
  103. package/dist/bridges/be96-upper-critical.js +27 -0
  104. package/dist/bridges/be96-upper-critical.js.map +1 -0
  105. package/dist/bridges/be97-ambegaokar-baratoff.d.ts +24 -0
  106. package/dist/bridges/be97-ambegaokar-baratoff.d.ts.map +1 -0
  107. package/dist/bridges/be97-ambegaokar-baratoff.js +30 -0
  108. package/dist/bridges/be97-ambegaokar-baratoff.js.map +1 -0
  109. package/dist/bridges/be98-bcs-jump.d.ts +40 -0
  110. package/dist/bridges/be98-bcs-jump.d.ts.map +1 -0
  111. package/dist/bridges/be98-bcs-jump.js +29 -0
  112. package/dist/bridges/be98-bcs-jump.js.map +1 -0
  113. package/dist/bridges/be99-mass-action.d.ts +33 -0
  114. package/dist/bridges/be99-mass-action.d.ts.map +1 -0
  115. package/dist/bridges/be99-mass-action.js +37 -0
  116. package/dist/bridges/be99-mass-action.js.map +1 -0
  117. package/dist/bridges/bridge-equations.d.ts +52 -0
  118. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  119. package/dist/bridges/bridge-equations.js +52 -0
  120. package/dist/bridges/bridge-equations.js.map +1 -1
  121. package/dist/bridges/carrier-sign.d.ts +33 -0
  122. package/dist/bridges/carrier-sign.d.ts.map +1 -0
  123. package/dist/bridges/carrier-sign.js +57 -0
  124. package/dist/bridges/carrier-sign.js.map +1 -0
  125. package/dist/bridges/evaluators.d.ts.map +1 -1
  126. package/dist/bridges/evaluators.js +138 -2
  127. package/dist/bridges/evaluators.js.map +1 -1
  128. package/dist/bridges/index.d.ts +57 -3
  129. package/dist/bridges/index.d.ts.map +1 -1
  130. package/dist/bridges/index.js +577 -3
  131. package/dist/bridges/index.js.map +1 -1
  132. package/dist/canonical/entries/condensed-matter.d.ts +5 -5
  133. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  134. package/dist/canonical/entries/condensed-matter.js +6 -2
  135. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  136. package/dist/cases/brownian-sphere.d.ts.map +1 -1
  137. package/dist/cases/brownian-sphere.js +4 -4
  138. package/dist/cases/brownian-sphere.js.map +1 -1
  139. package/dist/cases/lumped-cooling.d.ts.map +1 -1
  140. package/dist/cases/lumped-cooling.js +2 -2
  141. package/dist/cases/lumped-cooling.js.map +1 -1
  142. package/dist/cases/resistor-noise.d.ts.map +1 -1
  143. package/dist/cases/resistor-noise.js +2 -2
  144. package/dist/cases/resistor-noise.js.map +1 -1
  145. package/dist/cases/skin-depth.d.ts.map +1 -1
  146. package/dist/cases/skin-depth.js +2 -2
  147. package/dist/cases/skin-depth.js.map +1 -1
  148. package/dist/cases/types.d.ts +11 -1
  149. package/dist/cases/types.d.ts.map +1 -1
  150. package/dist/cases/types.js +9 -0
  151. package/dist/cases/types.js.map +1 -1
  152. package/dist/cli/closed-form-range.d.ts +1 -1
  153. package/dist/cli/closed-form-range.js +1 -1
  154. package/dist/cli/commands/audit.d.ts.map +1 -1
  155. package/dist/cli/commands/audit.js +24 -5
  156. package/dist/cli/commands/audit.js.map +1 -1
  157. package/dist/cli/commands/derive.d.ts.map +1 -1
  158. package/dist/cli/commands/derive.js +28 -7
  159. package/dist/cli/commands/derive.js.map +1 -1
  160. package/dist/cli/commands/explain.d.ts.map +1 -1
  161. package/dist/cli/commands/explain.js +10 -1
  162. package/dist/cli/commands/explain.js.map +1 -1
  163. package/dist/cli/commands/search.d.ts.map +1 -1
  164. package/dist/cli/commands/search.js +10 -4
  165. package/dist/cli/commands/search.js.map +1 -1
  166. package/dist/cli/search-index.d.ts +8 -1
  167. package/dist/cli/search-index.d.ts.map +1 -1
  168. package/dist/cli/search-index.js +75 -14
  169. package/dist/cli/search-index.js.map +1 -1
  170. package/dist/cli/statuses.d.ts.map +1 -1
  171. package/dist/cli/statuses.js +7 -0
  172. package/dist/cli/statuses.js.map +1 -1
  173. package/dist/composition/aliases.d.ts +9 -0
  174. package/dist/composition/aliases.d.ts.map +1 -1
  175. package/dist/composition/aliases.js +30 -0
  176. package/dist/composition/aliases.js.map +1 -1
  177. package/dist/composition/bridge-analysis.d.ts +9 -1
  178. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  179. package/dist/composition/bridge-analysis.js +39 -6
  180. package/dist/composition/bridge-analysis.js.map +1 -1
  181. package/dist/composition/canonical-graph.d.ts +7 -6
  182. package/dist/composition/canonical-graph.d.ts.map +1 -1
  183. package/dist/composition/canonical-graph.js +18 -9
  184. package/dist/composition/canonical-graph.js.map +1 -1
  185. package/dist/composition/canonical-prefactors.d.ts +4 -2
  186. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  187. package/dist/composition/canonical-prefactors.js +46 -2
  188. package/dist/composition/canonical-prefactors.js.map +1 -1
  189. package/dist/composition/catalog-graph.d.ts +6 -4
  190. package/dist/composition/catalog-graph.d.ts.map +1 -1
  191. package/dist/composition/catalog-graph.js +8 -4
  192. package/dist/composition/catalog-graph.js.map +1 -1
  193. package/dist/composition/edge.d.ts +17 -2
  194. package/dist/composition/edge.d.ts.map +1 -1
  195. package/dist/composition/edge.js +62 -2
  196. package/dist/composition/edge.js.map +1 -1
  197. package/dist/composition/edges/applied-physicist.d.ts +73 -1
  198. package/dist/composition/edges/applied-physicist.d.ts.map +1 -1
  199. package/dist/composition/edges/applied-physicist.js +427 -25
  200. package/dist/composition/edges/applied-physicist.js.map +1 -1
  201. package/dist/composition/edges/condensed-r5.d.ts +105 -0
  202. package/dist/composition/edges/condensed-r5.d.ts.map +1 -0
  203. package/dist/composition/edges/condensed-r5.js +505 -0
  204. package/dist/composition/edges/condensed-r5.js.map +1 -0
  205. package/dist/composition/explain.d.ts.map +1 -1
  206. package/dist/composition/explain.js +30 -3
  207. package/dist/composition/explain.js.map +1 -1
  208. package/dist/composition/index.d.ts +3 -1
  209. package/dist/composition/index.d.ts.map +1 -1
  210. package/dist/composition/index.js +3 -1
  211. package/dist/composition/index.js.map +1 -1
  212. package/dist/composition/quantities/applied-physicist.d.ts +78 -0
  213. package/dist/composition/quantities/applied-physicist.d.ts.map +1 -1
  214. package/dist/composition/quantities/applied-physicist.js +303 -0
  215. package/dist/composition/quantities/applied-physicist.js.map +1 -1
  216. package/dist/composition/quantities/condensed-r5.d.ts +110 -0
  217. package/dist/composition/quantities/condensed-r5.d.ts.map +1 -0
  218. package/dist/composition/quantities/condensed-r5.js +359 -0
  219. package/dist/composition/quantities/condensed-r5.js.map +1 -0
  220. package/dist/composition/quantities.d.ts +1 -0
  221. package/dist/composition/quantities.d.ts.map +1 -1
  222. package/dist/composition/quantities.js +1 -0
  223. package/dist/composition/quantities.js.map +1 -1
  224. package/dist/composition/retrodiction.d.ts.map +1 -1
  225. package/dist/composition/retrodiction.js +6 -1
  226. package/dist/composition/retrodiction.js.map +1 -1
  227. package/dist/dimensional/bridge-check.d.ts +1 -1
  228. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  229. package/dist/dimensional/bridge-check.js +27 -1
  230. package/dist/dimensional/bridge-check.js.map +1 -1
  231. package/dist/dimensional/units.d.ts.map +1 -1
  232. package/dist/dimensional/units.js +39 -7
  233. package/dist/dimensional/units.js.map +1 -1
  234. package/dist/index.d.ts +4 -2
  235. package/dist/index.d.ts.map +1 -1
  236. package/dist/index.js +4 -2
  237. package/dist/index.js.map +1 -1
  238. package/package.json +1 -1
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Inputs for {@link evaluateBktJump}.
3
+ * @public
4
+ */
5
+ export interface BktJumpInputs {
6
+ /** Vortex stiffness, joules. */
7
+ readonly J_J: number;
8
+ }
9
+ /**
10
+ * Result of {@link evaluateBktJump}.
11
+ * @public
12
+ */
13
+ export interface BktJumpResult {
14
+ readonly J_J: number;
15
+ /** Unbinding temperature, kelvin. */
16
+ readonly T_K: number;
17
+ }
18
+ /**
19
+ * Evaluate T = π J / (2 k_B). Not the RG flow and not π J / k_B.
20
+ *
21
+ * @public
22
+ */
23
+ export declare function evaluateBktJump({ J_J }: BktJumpInputs): BktJumpResult;
24
+ //# sourceMappingURL=be101-bkt-jump.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be101-bkt-jump.d.ts","sourceRoot":"","sources":["../../src/bridges/be101-bkt-jump.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,GAAG,aAAa,CAMrE"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * BE-101 — Berezinskii–Kosterlitz–Thouless unbinding from energy and entropy,
3
+ * k_B T = π J / 2.
4
+ *
5
+ * The phase gradient of a θ = φ vortex integrates to π J ln(R/a)
6
+ * between the core and radius R. The entropy hypothesis is the area
7
+ * of core positions, S = k_B ln((R/a)²) = 2 k_B ln(R/a). The free
8
+ * energy E − T S vanishes at a radius past the core only when
9
+ * k_B T = π J/2. Circumference entropy unbinds at π J. J is the
10
+ * stiffness in the vortex energy. Not the renormalization-group flow.
11
+ *
12
+ * The overlay formalRef is `PhysJS.BktJump.bkt_jump`.
13
+ *
14
+ * @module bridges/be101-bkt-jump
15
+ */
16
+ import { K_B_SI } from '../core/constants.js';
17
+ /**
18
+ * Evaluate T = π J / (2 k_B). Not the RG flow and not π J / k_B.
19
+ *
20
+ * @public
21
+ */
22
+ export function evaluateBktJump({ J_J }) {
23
+ if (!Number.isFinite(J_J) || J_J <= 0) {
24
+ throw new Error('evaluateBktJump: J_J must be finite and > 0');
25
+ }
26
+ const T_K = (Math.PI * J_J) / (2 * K_B_SI);
27
+ return { J_J, T_K };
28
+ }
29
+ //# sourceMappingURL=be101-bkt-jump.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be101-bkt-jump.js","sourceRoot":"","sources":["../../src/bridges/be101-bkt-jump.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAqB9C;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAAE,GAAG,EAAiB;IACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAC3C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Inputs for {@link evaluateLandauerConductance}.
3
+ * @public
4
+ */
5
+ export interface LandauerConductanceInputs {
6
+ /** Sum of transmission eigenvalues. */
7
+ readonly sum_Tn: number;
8
+ }
9
+ /**
10
+ * Result of {@link evaluateLandauerConductance}.
11
+ * @public
12
+ */
13
+ export interface LandauerConductanceResult {
14
+ readonly sum_Tn: number;
15
+ /** Conductance, siemens. */
16
+ readonly G_S: number;
17
+ }
18
+ /**
19
+ * Evaluate the two-spin Landauer conductance. Not h/(e²) and not erasure.
20
+ *
21
+ * @public
22
+ */
23
+ export declare function evaluateLandauerConductance({ sum_Tn }: LandauerConductanceInputs): LandauerConductanceResult;
24
+ //# sourceMappingURL=be102-landauer-conductance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be102-landauer-conductance.d.ts","sourceRoot":"","sources":["../../src/bridges/be102-landauer-conductance.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,MAAM,EAAE,EAAE,yBAAyB,GAAG,yBAAyB,CAM5G"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * BE-102 — two-spin Landauer conductance,
3
+ * G = (2 e² / h) Σ T_n.
4
+ *
5
+ * A one-dimensional mode of speed v in a length L has density of
6
+ * states L/(h v) per spin, and the flux times v/L cancels to 1/h.
7
+ * Current is spin · e · (Σ T_n) · (1/h) · Δμ with spin = 2 and
8
+ * Δμ = e V. One spin is e²/h. The transmissions and the bias window
9
+ * are hypotheses. Not the Hall conductance and not Landauer erasure.
10
+ *
11
+ * The overlay formalRef is `PhysJS.LandauerConductance.conductance_eq`.
12
+ *
13
+ * @module bridges/be102-landauer-conductance
14
+ */
15
+ import { E_SI, H_SI } from '../core/constants.js';
16
+ /**
17
+ * Evaluate the two-spin Landauer conductance. Not h/(e²) and not erasure.
18
+ *
19
+ * @public
20
+ */
21
+ export function evaluateLandauerConductance({ sum_Tn }) {
22
+ if (!Number.isFinite(sum_Tn)) {
23
+ throw new Error('evaluateLandauerConductance: sum_Tn must be finite');
24
+ }
25
+ const G_S = ((2 * E_SI ** 2) / H_SI) * sum_Tn;
26
+ return { sum_Tn, G_S };
27
+ }
28
+ //# sourceMappingURL=be102-landauer-conductance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be102-landauer-conductance.js","sourceRoot":"","sources":["../../src/bridges/be102-landauer-conductance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAqBlD;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAAE,MAAM,EAA6B;IAC/E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IAC9C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzB,CAAC"}
@@ -7,7 +7,7 @@ export interface EinsteinRelationInputs {
7
7
  readonly mu_m2_per_Vs: number;
8
8
  /** Absolute temperature, kelvin. */
9
9
  readonly T_K: number;
10
- /** Carrier charge, coulomb. Nonzero. */
10
+ /** Carrier charge, coulomb. Nonzero, and the same sign as `mu_m2_per_Vs`. */
11
11
  readonly q_C: number;
12
12
  }
13
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"be70-einstein-relation.d.ts","sourceRoot":"","sources":["../../src/bridges/be70-einstein-relation.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oCAAoC;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,GAAG,EACH,GAAG,GACJ,EAAE,sBAAsB,GAAG,sBAAsB,CAYjD"}
1
+ {"version":3,"file":"be70-einstein-relation.d.ts","sourceRoot":"","sources":["../../src/bridges/be70-einstein-relation.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oCAAoC;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,GAAG,EACH,GAAG,GACJ,EAAE,sBAAsB,GAAG,sBAAsB,CAajD"}
@@ -4,7 +4,8 @@
4
4
  * where drift cancels diffusion on a Boltzmann profile. Dropping `q`
5
5
  * is a different diffusivity. `μ` is the electrical mobility (drift
6
6
  * speed per electric field). The force-mobility writing needs
7
- * `μ_force = μ/q` and is not this function.
7
+ * `μ_force = μ/q` and is not this function. `μ` and `q` have the
8
+ * same sign: opposite signs are not a negative diffusivity.
8
9
  *
9
10
  * Onsager reciprocity is not an input. Stokes–Einstein is a different
10
11
  * equation. The overlay formalRef is `PhysJS.EinsteinRelation.diffusion_eq`.
@@ -12,6 +13,7 @@
12
13
  * @module bridges/be70-einstein-relation
13
14
  */
14
15
  import { K_B_SI } from '../core/constants.js';
16
+ import { assertSameCarrierSign } from './carrier-sign.js';
15
17
  /**
16
18
  * Evaluate `D = μ k_B T / q`.
17
19
  *
@@ -27,6 +29,7 @@ export function evaluateEinsteinRelation({ mu_m2_per_Vs, T_K, q_C, }) {
27
29
  if (!Number.isFinite(q_C) || q_C === 0) {
28
30
  throw new Error('evaluateEinsteinRelation: q_C must be finite and nonzero');
29
31
  }
32
+ assertSameCarrierSign(mu_m2_per_Vs, q_C, 'evaluateEinsteinRelation: mu_m2_per_Vs', 'q_C');
30
33
  const D_m2_per_s = (mu_m2_per_Vs * K_B_SI * T_K) / q_C;
31
34
  return { mu_m2_per_Vs, T_K, q_C, D_m2_per_s };
32
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"be70-einstein-relation.js","sourceRoot":"","sources":["../../src/bridges/be70-einstein-relation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AA2B9C;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,EACvC,YAAY,EACZ,GAAG,EACH,GAAG,GACoB;IACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,YAAY,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACvD,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"be70-einstein-relation.js","sourceRoot":"","sources":["../../src/bridges/be70-einstein-relation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA2B1D;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,EACvC,YAAY,EACZ,GAAG,EACH,GAAG,GACoB;IACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,qBAAqB,CAAC,YAAY,EAAE,GAAG,EAAE,wCAAwC,EAAE,KAAK,CAAC,CAAC;IAC1F,MAAM,UAAU,GAAG,CAAC,YAAY,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACvD,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;AAChD,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"}