paramrf 0.37.2__tar.gz → 0.37.3__tar.gz

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 (267) hide show
  1. {paramrf-0.37.2/paramrf.egg-info → paramrf-0.37.3}/PKG-INFO +1 -1
  2. {paramrf-0.37.2 → paramrf-0.37.3/paramrf.egg-info}/PKG-INFO +1 -1
  3. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/empirical.py +20 -4
  4. {paramrf-0.37.2 → paramrf-0.37.3}/pyproject.toml +1 -1
  5. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_lines.py +34 -2
  6. {paramrf-0.37.2 → paramrf-0.37.3}/.github/workflows/docs.yml +0 -0
  7. {paramrf-0.37.2 → paramrf-0.37.3}/.github/workflows/draft-pdf.yml +0 -0
  8. {paramrf-0.37.2 → paramrf-0.37.3}/.github/workflows/publish.yml +0 -0
  9. {paramrf-0.37.2 → paramrf-0.37.3}/.github/workflows/tests.yml +0 -0
  10. {paramrf-0.37.2 → paramrf-0.37.3}/.gitignore +0 -0
  11. {paramrf-0.37.2 → paramrf-0.37.3}/AGENTS.md +0 -0
  12. {paramrf-0.37.2 → paramrf-0.37.3}/CHANGELOG.md +0 -0
  13. {paramrf-0.37.2 → paramrf-0.37.3}/CITATION.cff +0 -0
  14. {paramrf-0.37.2 → paramrf-0.37.3}/CLAUDE.md +0 -0
  15. {paramrf-0.37.2 → paramrf-0.37.3}/CONTEXT.md +0 -0
  16. {paramrf-0.37.2 → paramrf-0.37.3}/CONTRIBUTING.md +0 -0
  17. {paramrf-0.37.2 → paramrf-0.37.3}/LICENSE +0 -0
  18. {paramrf-0.37.2 → paramrf-0.37.3}/NOTICE +0 -0
  19. {paramrf-0.37.2 → paramrf-0.37.3}/README.rst +0 -0
  20. {paramrf-0.37.2 → paramrf-0.37.3}/assets/logo.png +0 -0
  21. {paramrf-0.37.2 → paramrf-0.37.3}/docs/Makefile +0 -0
  22. {paramrf-0.37.2 → paramrf-0.37.3}/docs/_static/custom.css +0 -0
  23. {paramrf-0.37.2 → paramrf-0.37.3}/docs/_templates/autosummary/class.rst +0 -0
  24. {paramrf-0.37.2 → paramrf-0.37.3}/docs/_templates/autosummary/function.rst +0 -0
  25. {paramrf-0.37.2 → paramrf-0.37.3}/docs/_templates/autosummary/module.rst +0 -0
  26. {paramrf-0.37.2 → paramrf-0.37.3}/docs/adr/0001-line-modelling-architecture.md +0 -0
  27. {paramrf-0.37.2 → paramrf-0.37.3}/docs/adr/0002-parameter-api.md +0 -0
  28. {paramrf-0.37.2 → paramrf-0.37.3}/docs/adr/0003-derived-models.md +0 -0
  29. {paramrf-0.37.2 → paramrf-0.37.3}/docs/adr/0004-profiled-lines.md +0 -0
  30. {paramrf-0.37.2 → paramrf-0.37.3}/docs/adr/0005-priors-by-name.md +0 -0
  31. {paramrf-0.37.2 → paramrf-0.37.3}/docs/adr/0006-reference-impedance.md +0 -0
  32. {paramrf-0.37.2 → paramrf-0.37.3}/docs/adr/0007-edge-values.md +0 -0
  33. {paramrf-0.37.2 → paramrf-0.37.3}/docs/agents/domain.md +0 -0
  34. {paramrf-0.37.2 → paramrf-0.37.3}/docs/agents/issue-tracker.md +0 -0
  35. {paramrf-0.37.2 → paramrf-0.37.3}/docs/agents/triage-labels.md +0 -0
  36. {paramrf-0.37.2 → paramrf-0.37.3}/docs/api/index.rst +0 -0
  37. {paramrf-0.37.2 → paramrf-0.37.3}/docs/conf.py +0 -0
  38. {paramrf-0.37.2 → paramrf-0.37.3}/docs/core_concepts/core_primitives.rst +0 -0
  39. {paramrf-0.37.2 → paramrf-0.37.3}/docs/core_concepts/index.rst +0 -0
  40. {paramrf-0.37.2 → paramrf-0.37.3}/docs/core_concepts/jax_overview.rst +0 -0
  41. {paramrf-0.37.2 → paramrf-0.37.3}/docs/core_concepts/optimization_and_inference.rst +0 -0
  42. {paramrf-0.37.2 → paramrf-0.37.3}/docs/core_concepts/parameter_names.rst +0 -0
  43. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/cascading_and_terminating.rst +0 -0
  44. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/circuit_clc.png +0 -0
  45. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/circuit_models.rst +0 -0
  46. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/custom_models.rst +0 -0
  47. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/derivatives_and_sweeps.rst +0 -0
  48. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/discrepancy_prediction.rst +0 -0
  49. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/index.rst +0 -0
  50. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/model_optimization.rst +0 -0
  51. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/multiple_models_one_parameter_set.rst +0 -0
  52. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/parameter_naming_and_model_manipulation.rst +0 -0
  53. {paramrf-0.37.2 → paramrf-0.37.3}/docs/examples/shared_modules.rst +0 -0
  54. {paramrf-0.37.2 → paramrf-0.37.3}/docs/index.rst +0 -0
  55. {paramrf-0.37.2 → paramrf-0.37.3}/docs/license.rst +0 -0
  56. {paramrf-0.37.2 → paramrf-0.37.3}/docs/make.bat +0 -0
  57. {paramrf-0.37.2 → paramrf-0.37.3}/docs/research/conductor-loss-alternatives.md +0 -0
  58. {paramrf-0.37.2 → paramrf-0.37.3}/docs/research/holloway1994.pdf +0 -0
  59. {paramrf-0.37.2 → paramrf-0.37.3}/docs/research/microstrip-loss-conventions.md +0 -0
  60. {paramrf-0.37.2 → paramrf-0.37.3}/docs/research/precision-coax-microstrip-10-500mhz.md +0 -0
  61. {paramrf-0.37.2 → paramrf-0.37.3}/docs/skrf_comparison/index.rst +0 -0
  62. {paramrf-0.37.2 → paramrf-0.37.3}/docs/skrf_comparison/overview.rst +0 -0
  63. {paramrf-0.37.2 → paramrf-0.37.3}/docs/skrf_comparison/performance.rst +0 -0
  64. {paramrf-0.37.2 → paramrf-0.37.3}/docs/tutorials/1_cable_fitting.ipynb +0 -0
  65. {paramrf-0.37.2 → paramrf-0.37.3}/docs/tutorials/2_chip_inductor_fitting.ipynb +0 -0
  66. {paramrf-0.37.2 → paramrf-0.37.3}/docs/tutorials/3_discrepancy_transfer.ipynb +0 -0
  67. {paramrf-0.37.2 → paramrf-0.37.3}/docs/tutorials/data/CBN-1.5FT-SMSM.s2p +0 -0
  68. {paramrf-0.37.2 → paramrf-0.37.3}/docs/tutorials/data/on-chip-inductor.s2p +0 -0
  69. {paramrf-0.37.2 → paramrf-0.37.3}/docs/tutorials/index.rst +0 -0
  70. {paramrf-0.37.2 → paramrf-0.37.3}/docs/tutorials/line_internal_discrepancy.py +0 -0
  71. {paramrf-0.37.2 → paramrf-0.37.3}/docs/tutorials/port_discrepancy.py +0 -0
  72. {paramrf-0.37.2 → paramrf-0.37.3}/paper/paper.bib +0 -0
  73. {paramrf-0.37.2 → paramrf-0.37.3}/paper/paper.md +0 -0
  74. {paramrf-0.37.2 → paramrf-0.37.3}/paper/rlc.png +0 -0
  75. {paramrf-0.37.2 → paramrf-0.37.3}/paramrf.egg-info/SOURCES.txt +0 -0
  76. {paramrf-0.37.2 → paramrf-0.37.3}/paramrf.egg-info/dependency_links.txt +0 -0
  77. {paramrf-0.37.2 → paramrf-0.37.3}/paramrf.egg-info/requires.txt +0 -0
  78. {paramrf-0.37.2 → paramrf-0.37.3}/paramrf.egg-info/top_level.txt +0 -0
  79. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/__init__.py +0 -0
  80. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/_solver_view.py +0 -0
  81. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/fitting/__init__.py +0 -0
  82. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/fitting/minimize.py +0 -0
  83. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/fitting/result.py +0 -0
  84. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/fitting/routers.py +0 -0
  85. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/fitting/sample.py +0 -0
  86. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/fitting/targets.py +0 -0
  87. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/frequency.py +0 -0
  88. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/infer/__init__.py +0 -0
  89. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/infer/base.py +0 -0
  90. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/infer/result.py +0 -0
  91. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/infer/sample.py +0 -0
  92. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/infer/solvers/__init__.py +0 -0
  93. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/infer/solvers/blackjax.py +0 -0
  94. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/infer/solvers/polychord.py +0 -0
  95. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/materials/__init__.py +0 -0
  96. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/materials/conductor.py +0 -0
  97. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/materials/dielectric.py +0 -0
  98. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/materials/properties.py +0 -0
  99. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/materials/roughness.py +0 -0
  100. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/materials/substrate.py +0 -0
  101. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/materials/surface_impedance.py +0 -0
  102. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/math/__init__.py +0 -0
  103. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/math/aggregations.py +0 -0
  104. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/math/bessel.py +0 -0
  105. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/math/conversions.py +0 -0
  106. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/math/losses.py +0 -0
  107. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/math/misc.py +0 -0
  108. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/__init__.py +0 -0
  109. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/adapters/__init__.py +0 -0
  110. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/adapters/base.py +0 -0
  111. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/adapters/bridge.py +0 -0
  112. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/adapters/callable.py +0 -0
  113. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/adapters/delegated.py +0 -0
  114. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/adapters/derived.py +0 -0
  115. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/adapters/static.py +0 -0
  116. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/adapters/wrapped.py +0 -0
  117. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/base.py +0 -0
  118. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/__init__.py +0 -0
  119. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/ideal.py +0 -0
  120. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/__init__.py +0 -0
  121. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/base.py +0 -0
  122. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/coaxial.py +0 -0
  123. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/ideal.py +0 -0
  124. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/microstrip.py +0 -0
  125. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/nodal.py +0 -0
  126. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/nonuniform.py +0 -0
  127. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/planar.py +0 -0
  128. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/profiles.py +0 -0
  129. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lines/stripline.py +0 -0
  130. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/lumped.py +0 -0
  131. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/components/sections.py +0 -0
  132. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/__init__.py +0 -0
  133. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/interconnected/__init__.py +0 -0
  134. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/interconnected/cascade.py +0 -0
  135. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/interconnected/circuit/__init__.py +0 -0
  136. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/interconnected/circuit/base.py +0 -0
  137. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/interconnected/circuit/circuit.py +0 -0
  138. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/interconnected/circuit/solvers/__init__.py +0 -0
  139. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/interconnected/circuit/solvers/nodal.py +0 -0
  140. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/interconnected/circuit/solvers/scattering.py +0 -0
  141. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/interconnected/terminated.py +0 -0
  142. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/nodal.py +0 -0
  143. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/topological.py +0 -0
  144. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/composite/transformed.py +0 -0
  145. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/line_discrepancy.py +0 -0
  146. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/port_discrepancy.py +0 -0
  147. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/surrogates/__init__.py +0 -0
  148. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/surrogates/expansion.py +0 -0
  149. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/models/surrogates/rational.py +0 -0
  150. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/modules/__init__.py +0 -0
  151. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/modules/base.py +0 -0
  152. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/modules/wrapped.py +0 -0
  153. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/network_collection.py +0 -0
  154. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/objectives/__init__.py +0 -0
  155. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/objectives/evaluators.py +0 -0
  156. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/objectives/losses.py +0 -0
  157. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/objectives/problems.py +0 -0
  158. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/objectives/terms.py +0 -0
  159. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/optimize/__init__.py +0 -0
  160. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/optimize/base.py +0 -0
  161. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/optimize/minimize.py +0 -0
  162. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/optimize/result.py +0 -0
  163. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/optimize/solvers/__init__.py +0 -0
  164. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/optimize/solvers/jaxopt.py +0 -0
  165. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/optimize/solvers/optimistix.py +0 -0
  166. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/optimize/solvers/scipy.py +0 -0
  167. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/parameters/__init__.py +0 -0
  168. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/parameters/constraints.py +0 -0
  169. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/rf/__init__.py +0 -0
  170. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/rf/cascade.py +0 -0
  171. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/rf/conversions.py +0 -0
  172. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/rf/mna.py +0 -0
  173. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/serialization.py +0 -0
  174. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/stats/__init__.py +0 -0
  175. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/stats/bijectors.py +0 -0
  176. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/stats/covariance_kernels.py +0 -0
  177. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/stats/discrepancy_models.py +0 -0
  178. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/stats/distributions.py +0 -0
  179. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/stats/likelihoods.py +0 -0
  180. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/stats/linearization.py +0 -0
  181. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/stats/noise_models.py +0 -0
  182. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/types.py +0 -0
  183. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/utils/__init__.py +0 -0
  184. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/utils/array.py +0 -0
  185. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/utils/debug.py +0 -0
  186. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/utils/network.py +0 -0
  187. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/utils/random.py +0 -0
  188. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/utils/rf.py +0 -0
  189. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/utils/transforms.py +0 -0
  190. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/utils/tree.py +0 -0
  191. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/utils/type.py +0 -0
  192. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/viz/__init__.py +0 -0
  193. {paramrf-0.37.2 → paramrf-0.37.3}/pmrf/viz/plots.py +0 -0
  194. {paramrf-0.37.2 → paramrf-0.37.3}/scripts/benchmark_gp_marginal_likelihood.py +0 -0
  195. {paramrf-0.37.2 → paramrf-0.37.3}/scripts/install-test-deps.sh +0 -0
  196. {paramrf-0.37.2 → paramrf-0.37.3}/setup.cfg +0 -0
  197. {paramrf-0.37.2 → paramrf-0.37.3}/tests/__init__.py +0 -0
  198. {paramrf-0.37.2 → paramrf-0.37.3}/tests/_jit.py +0 -0
  199. {paramrf-0.37.2 → paramrf-0.37.3}/tests/conftest.py +0 -0
  200. {paramrf-0.37.2 → paramrf-0.37.3}/tests/data/10m_cable.s2p +0 -0
  201. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_autodiff.py +0 -0
  202. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_box_space_solving.py +0 -0
  203. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_conversions.py +0 -0
  204. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_covariance_kernels.py +0 -0
  205. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_dc_limits.py +0 -0
  206. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_discrepancy_models.py +0 -0
  207. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_evaluators.py +0 -0
  208. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_fitting_minimize.py +0 -0
  209. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_fitting_routers.py +0 -0
  210. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_fitting_sample.py +0 -0
  211. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_fitting_targets.py +0 -0
  212. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_frequency.py +0 -0
  213. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_grouped_exports.py +0 -0
  214. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_infer_base.py +0 -0
  215. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_infer_sample.py +0 -0
  216. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_line_internal_discrepancy_example.py +0 -0
  217. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_linearization.py +0 -0
  218. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_map_priors.py +0 -0
  219. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_materials/test_conductor.py +0 -0
  220. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_materials/test_dielectric.py +0 -0
  221. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_materials/test_serialization.py +0 -0
  222. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_materials/test_substrate.py +0 -0
  223. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_materials/test_surface_impedance.py +0 -0
  224. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_math/test_bessel.py +0 -0
  225. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_model.py +0 -0
  226. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_adapters.py +0 -0
  227. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_cascade.py +0 -0
  228. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_circuit_native_z0.py +0 -0
  229. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_circuit_nodal.py +0 -0
  230. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_circuit_port_order.py +0 -0
  231. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_circuit_scattering.py +0 -0
  232. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_circuit_shorted_ports.py +0 -0
  233. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_circuit_skrf_port_names.py +0 -0
  234. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_circuit_z0.py +0 -0
  235. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_current_distribution.py +0 -0
  236. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_derived.py +0 -0
  237. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_edge_values.py +0 -0
  238. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_interconnected.py +0 -0
  239. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_line_discrepancy.py +0 -0
  240. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_lines_skrf_matrix.py +0 -0
  241. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_lumped.py +0 -0
  242. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_nodal.py +0 -0
  243. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_port_discrepancy.py +0 -0
  244. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_profiles.py +0 -0
  245. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_rational.py +0 -0
  246. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_repeated_cascade.py +0 -0
  247. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_sections.py +0 -0
  248. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_transformed.py +0 -0
  249. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_models/test_transformers.py +0 -0
  250. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_module.py +0 -0
  251. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_naming.py +0 -0
  252. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_optimize_base.py +0 -0
  253. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_optimize_minimize.py +0 -0
  254. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_parameters.py +0 -0
  255. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_parameters_by_name.py +0 -0
  256. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_parameters_joint_prior.py +0 -0
  257. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_parameters_prior.py +0 -0
  258. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_parameters_validity.py +0 -0
  259. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_port_discrepancy_example.py +0 -0
  260. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_raw_space_solving.py +0 -0
  261. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_serialization.py +0 -0
  262. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_structural_updates.py +0 -0
  263. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_terms.py +0 -0
  264. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_transforms.py +0 -0
  265. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_utils/test_compress.py +0 -0
  266. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_utils/test_debug.py +0 -0
  267. {paramrf-0.37.2 → paramrf-0.37.3}/tests/test_utils/test_tree.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: paramrf
3
- Version: 0.37.2
3
+ Version: 0.37.3
4
4
  Summary: Parametric radio frequency modeling
5
5
  Author-email: Gary Allen <gvcallen@gmail.com>
6
6
  Project-URL: homepage, https://github.com/gvcallen/paramrf
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: paramrf
3
- Version: 0.37.2
3
+ Version: 0.37.3
4
4
  Summary: Parametric radio frequency modeling
5
5
  Author-email: Gary Allen <gvcallen@gmail.com>
6
6
  Project-URL: homepage, https://github.com/gvcallen/paramrf
@@ -20,10 +20,14 @@ class PhysicalLine(AbstractImmittanceLine):
20
20
 
21
21
  The per-unit-length parameters are
22
22
  $$R = 2 z_n \alpha_c$$
23
- $$L = \frac{z_n \sqrt{\varepsilon_r}}{c}$$
23
+ $$L = \frac{z_n \sqrt{\varepsilon_r}}{c} + \frac{R}{\omega}$$
24
24
  $$G = \frac{2 \alpha_d}{z_n}$$
25
25
  $$C = \frac{\sqrt{\varepsilon_r}}{z_n c}$$
26
26
 
27
+ The skin-effect term adds conductor reactance to the series impedance:
28
+ $$Z = R + j\omega z_n\sqrt{\varepsilon_r}/c + jR.$$
29
+ This contribution vanishes at DC.
30
+
27
31
  Example
28
32
  --------
29
33
  .. code-block:: python
@@ -93,7 +97,11 @@ class PhysicalLine(AbstractImmittanceLine):
93
97
  G = G_val * ones
94
98
  C = C_val * ones
95
99
 
96
- return ImmittanceResult.from_rlgc(R, L, G, C, freq.w)
100
+ return ImmittanceResult(
101
+ Z=R + 1j * (freq.w * L + R),
102
+ Y=G + 1j * freq.w * C,
103
+ omega=freq.w,
104
+ )
97
105
 
98
106
 
99
107
  class DatasheetLine(AbstractImmittanceLine):
@@ -108,10 +116,14 @@ class DatasheetLine(AbstractImmittanceLine):
108
116
 
109
117
  and the per-unit-length parameters are
110
118
  $$R = 2 z_n \alpha_c$$
111
- $$L = \frac{z_n}{v_f c}$$
119
+ $$L = \frac{z_n}{v_f c} + \frac{R}{\omega}$$
112
120
  $$G = \frac{2 \alpha_d}{z_n}$$
113
121
  $$C = \frac{1}{z_n v_f c}$$
114
122
 
123
+ The skin-effect term adds conductor reactance to the series impedance:
124
+ $$Z = R + j\omega z_n/(v_f c) + jR.$$
125
+ This contribution vanishes at DC.
126
+
115
127
  Example
116
128
  --------
117
129
  .. code-block:: python
@@ -186,5 +198,9 @@ class DatasheetLine(AbstractImmittanceLine):
186
198
  L = (zn / (vf * c)) * jnp.ones_like(w)
187
199
  C = (1.0 / (zn * vf * c)) * jnp.ones_like(w)
188
200
 
189
- return ImmittanceResult.from_rlgc(R, L, G, C, w)
201
+ return ImmittanceResult(
202
+ Z=R + 1j * (w * L + R),
203
+ Y=G + 1j * w * C,
204
+ omega=w,
205
+ )
190
206
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "paramrf"
3
- version = "0.37.2"
3
+ version = "0.37.3"
4
4
  description = "Parametric radio frequency modeling"
5
5
  readme = "README.rst"
6
6
  authors = [
@@ -25,8 +25,8 @@ from pmrf.materials import (
25
25
  DjordjevicSarkarDielectric,
26
26
  RoughConductor,
27
27
  )
28
- from pmrf.materials.surface_impedance import TescheTubeSurfaceImpedance
29
- from pmrf.models.components.lines.coaxial import TescheCoaxialFormulation
28
+ from pmrf.materials.surface_impedance import HalfSpaceSurfaceImpedance, TescheTubeSurfaceImpedance
29
+ from pmrf.models.components.lines.coaxial import SchelkunoffCoaxialFormulation, TescheCoaxialFormulation
30
30
  from pmrf.models.components.lines.microstrip import KirschningJansenMicrostripDispersion
31
31
 
32
32
  @pytest.fixture
@@ -118,6 +118,38 @@ def test_datasheet_line_attenuation(basic_freq):
118
118
 
119
119
  assert jnp.allclose(jnp.abs(s[:, 1, 0]), expected_mag, atol=1e-4)
120
120
 
121
+
122
+ @pytest.mark.parametrize("line_type", [DatasheetLine, PhysicalLine])
123
+ @pytest.mark.parametrize("length", [1.0, 10.0])
124
+ def test_empirical_line_matches_half_space_coax(line_type, length):
125
+ """Skin-effect loss has the same resistance and reactance as a coax half-space."""
126
+ d_in, d_out = 0.92e-3, 3.0e-3
127
+ ep_r, tand, sigma = 2.1, 1e-4, 5.8e7
128
+ a, b = d_in / 2, d_out / 2
129
+ zn = np.sqrt(mu_0 / epsilon_0) * np.log(b / a) / (2 * np.pi * np.sqrt(ep_r))
130
+ k1 = (2000 / np.log(10)) * np.sqrt(np.pi * 1e6 * mu_0 / sigma) * (1 / a + 1 / b) / (4 * np.pi * zn)
131
+ k2 = (2000 / np.log(10)) * np.pi * 1e6 * np.sqrt(ep_r) * tand / c
132
+
133
+ with jax.enable_x64():
134
+ freq = Frequency(start=10, stop=500, npoints=491, unit='MHz')
135
+ if line_type is DatasheetLine:
136
+ line = DatasheetLine(length=length, zn=zn, vf=1 / np.sqrt(ep_r), k1=k1, k2=k2)
137
+ else:
138
+ line = PhysicalLine(length=length, zn=zn, ep_r=ep_r, A=k1 / 1e5, f_A=1.0, tand=tand)
139
+ reference = CoaxialLine(
140
+ d_in=d_in, d_out=d_out, length=length,
141
+ dielectric=ConstantDielectric(ep_r=ep_r, tand=tand),
142
+ conductor=BulkConductor(sigma=sigma),
143
+ formulation=SchelkunoffCoaxialFormulation(
144
+ inner_impedance=HalfSpaceSurfaceImpedance(),
145
+ shield_impedance=HalfSpaceSurfaceImpedance(),
146
+ ),
147
+ )
148
+
149
+ difference = np.abs(np.asarray(line.s(freq) - reference.s(freq)))
150
+
151
+ assert np.max(difference) < 1e-8
152
+
121
153
  def test_coaxial_line_impedance(basic_freq):
122
154
  """Verify CoaxialLine matches the analytical Zc formula for a lossless coax."""
123
155
  # RG-58 dimensions roughly: ep_r=2.25, d_in=0.9mm, d_out=2.95mm
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes