paramrf 0.26.0__tar.gz → 0.26.4__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 (165) hide show
  1. {paramrf-0.26.0/paramrf.egg-info → paramrf-0.26.4}/PKG-INFO +3 -1
  2. {paramrf-0.26.0 → paramrf-0.26.4}/README.rst +2 -0
  3. {paramrf-0.26.0 → paramrf-0.26.4}/docs/api/index.rst +1 -1
  4. {paramrf-0.26.0 → paramrf-0.26.4}/docs/examples/model_optimization.rst +1 -1
  5. {paramrf-0.26.0 → paramrf-0.26.4}/docs/tutorials/1_cable_fitting.ipynb +2 -2
  6. paramrf-0.26.4/docs/tutorials/2_chip_inductor_fitting.ipynb +518 -0
  7. paramrf-0.26.4/docs/tutorials/data/on-chip-inductor.s2p +405 -0
  8. {paramrf-0.26.0 → paramrf-0.26.4}/docs/tutorials/index.rst +2 -1
  9. {paramrf-0.26.0 → paramrf-0.26.4}/paper/paper.md +3 -3
  10. {paramrf-0.26.0 → paramrf-0.26.4/paramrf.egg-info}/PKG-INFO +3 -1
  11. {paramrf-0.26.0 → paramrf-0.26.4}/paramrf.egg-info/SOURCES.txt +7 -2
  12. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/__init__.py +1 -1
  13. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/base.py +61 -17
  14. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/components/ideal.py +1 -20
  15. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/components/lumped.py +175 -202
  16. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/components/sections.py +16 -103
  17. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/composite/interconnected.py +17 -1
  18. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/parameters.py +23 -12
  19. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/rf/__init__.py +10 -2
  20. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/rf/conversions.py +291 -42
  21. paramrf-0.26.4/pmrf/rf/mna.py +25 -0
  22. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/__init__.py +7 -0
  23. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/base.py +75 -1
  24. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/reduce.py +114 -2
  25. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/solvers/kron.py +15 -2
  26. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/solvers/mobius_terminator.py +5 -5
  27. paramrf-0.26.4/pmrf/simulate/solvers/modified_kron.py +82 -0
  28. {paramrf-0.26.0/pmrf → paramrf-0.26.4/pmrf/simulate}/topology.py +63 -2
  29. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/utils/__init__.py +3 -1
  30. paramrf-0.26.4/pmrf/utils/debug.py +72 -0
  31. {paramrf-0.26.0 → paramrf-0.26.4}/pyproject.toml +1 -1
  32. {paramrf-0.26.0 → paramrf-0.26.4}/.github/workflows/docs.yml +0 -0
  33. {paramrf-0.26.0 → paramrf-0.26.4}/.github/workflows/draft-pdf.yml +0 -0
  34. {paramrf-0.26.0 → paramrf-0.26.4}/.github/workflows/publish.yml +0 -0
  35. {paramrf-0.26.0 → paramrf-0.26.4}/.github/workflows/tests.yml +0 -0
  36. {paramrf-0.26.0 → paramrf-0.26.4}/.gitignore +0 -0
  37. {paramrf-0.26.0 → paramrf-0.26.4}/CONTRIBUTING.md +0 -0
  38. {paramrf-0.26.0 → paramrf-0.26.4}/LICENSE +0 -0
  39. {paramrf-0.26.0 → paramrf-0.26.4}/assets/logo.png +0 -0
  40. {paramrf-0.26.0 → paramrf-0.26.4}/docs/Makefile +0 -0
  41. {paramrf-0.26.0 → paramrf-0.26.4}/docs/_static/custom.css +0 -0
  42. {paramrf-0.26.0 → paramrf-0.26.4}/docs/_templates/autosummary/class.rst +0 -0
  43. {paramrf-0.26.0 → paramrf-0.26.4}/docs/_templates/autosummary/function.rst +0 -0
  44. {paramrf-0.26.0 → paramrf-0.26.4}/docs/_templates/autosummary/module.rst +0 -0
  45. {paramrf-0.26.0 → paramrf-0.26.4}/docs/conf.py +0 -0
  46. {paramrf-0.26.0 → paramrf-0.26.4}/docs/core_concepts/core_primitives.rst +0 -0
  47. {paramrf-0.26.0 → paramrf-0.26.4}/docs/core_concepts/index.rst +0 -0
  48. {paramrf-0.26.0 → paramrf-0.26.4}/docs/core_concepts/jax_overview.rst +0 -0
  49. {paramrf-0.26.0 → paramrf-0.26.4}/docs/core_concepts/optimization_and_inference.rst +0 -0
  50. {paramrf-0.26.0 → paramrf-0.26.4}/docs/examples/cascading_and_terminating.rst +0 -0
  51. {paramrf-0.26.0 → paramrf-0.26.4}/docs/examples/circuit_clc.png +0 -0
  52. {paramrf-0.26.0 → paramrf-0.26.4}/docs/examples/circuit_models.rst +0 -0
  53. {paramrf-0.26.0 → paramrf-0.26.4}/docs/examples/custom_composite_models.rst +0 -0
  54. {paramrf-0.26.0 → paramrf-0.26.4}/docs/examples/custom_parametric_models.rst +0 -0
  55. {paramrf-0.26.0 → paramrf-0.26.4}/docs/examples/derivatives_and_sweeps.rst +0 -0
  56. {paramrf-0.26.0 → paramrf-0.26.4}/docs/examples/index.rst +0 -0
  57. {paramrf-0.26.0 → paramrf-0.26.4}/docs/examples/parameter_naming_and_model_manipulation.rst +0 -0
  58. {paramrf-0.26.0 → paramrf-0.26.4}/docs/index.rst +0 -0
  59. {paramrf-0.26.0 → paramrf-0.26.4}/docs/license.rst +0 -0
  60. {paramrf-0.26.0 → paramrf-0.26.4}/docs/make.bat +0 -0
  61. {paramrf-0.26.0 → paramrf-0.26.4}/docs/models/index.rst +0 -0
  62. {paramrf-0.26.0 → paramrf-0.26.4}/docs/skrf_comparison.rst +0 -0
  63. {paramrf-0.26.0 → paramrf-0.26.4}/docs/tutorials/data/CBN-1.5FT-SMSM.s2p +0 -0
  64. {paramrf-0.26.0 → paramrf-0.26.4}/paper/paper.bib +0 -0
  65. {paramrf-0.26.0 → paramrf-0.26.4}/paper/rlc.png +0 -0
  66. {paramrf-0.26.0 → paramrf-0.26.4}/paramrf.egg-info/dependency_links.txt +0 -0
  67. {paramrf-0.26.0 → paramrf-0.26.4}/paramrf.egg-info/requires.txt +0 -0
  68. {paramrf-0.26.0 → paramrf-0.26.4}/paramrf.egg-info/top_level.txt +0 -0
  69. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/constraints.py +0 -0
  70. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/covariance_kernels.py +0 -0
  71. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/discrepancy_models.py +0 -0
  72. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/distributions.py +0 -0
  73. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/evaluators.py +0 -0
  74. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/fitting/__init__.py +0 -0
  75. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/fitting/minimize.py +0 -0
  76. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/fitting/result.py +0 -0
  77. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/fitting/routers.py +0 -0
  78. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/fitting/sample.py +0 -0
  79. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/frequency.py +0 -0
  80. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/infer/__init__.py +0 -0
  81. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/infer/base.py +0 -0
  82. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/infer/result.py +0 -0
  83. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/infer/sample.py +0 -0
  84. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/infer/solvers/__init__.py +0 -0
  85. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/infer/solvers/blackjax.py +0 -0
  86. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/infer/solvers/polychord.py +0 -0
  87. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/likelihoods.py +0 -0
  88. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/losses.py +0 -0
  89. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/math/__init__.py +0 -0
  90. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/math/aggregations.py +0 -0
  91. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/math/conversions.py +0 -0
  92. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/math/losses.py +0 -0
  93. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/math/misc.py +0 -0
  94. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/__init__.py +0 -0
  95. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/adapters/__init__.py +0 -0
  96. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/adapters/base.py +0 -0
  97. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/adapters/bridge.py +0 -0
  98. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/adapters/callable.py +0 -0
  99. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/adapters/static.py +0 -0
  100. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/components/__init__.py +0 -0
  101. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/components/lines/__init__.py +0 -0
  102. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/components/lines/nonuniform.py +0 -0
  103. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/components/lines/uniform.py +0 -0
  104. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/composite/__init__.py +0 -0
  105. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/composite/nodal.py +0 -0
  106. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/composite/topological.py +0 -0
  107. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/composite/transformed.py +0 -0
  108. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/composite/wrapped.py +0 -0
  109. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/surrogates/__init__.py +0 -0
  110. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/surrogates/expansion.py +0 -0
  111. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/models/surrogates/rational.py +0 -0
  112. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/network_collection.py +0 -0
  113. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/noise_models.py +0 -0
  114. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/optimize/__init__.py +0 -0
  115. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/optimize/base.py +0 -0
  116. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/optimize/minimize.py +0 -0
  117. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/optimize/result.py +0 -0
  118. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/optimize/solvers/__init__.py +0 -0
  119. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/optimize/solvers/jaxopt.py +0 -0
  120. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/optimize/solvers/optimistix.py +0 -0
  121. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/optimize/solvers/scipy.py +0 -0
  122. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/problem.py +0 -0
  123. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/serialization.py +0 -0
  124. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/cascade.py +0 -0
  125. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/result.py +0 -0
  126. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/solvers/__init__.py +0 -0
  127. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/solvers/hallbjorner.py +0 -0
  128. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/solvers/linear_fractional_terminator.py +0 -0
  129. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/solvers/redheffer.py +0 -0
  130. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/solvers/transfer_cascader.py +0 -0
  131. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/simulate/terminate.py +0 -0
  132. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/types.py +0 -0
  133. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/utils/array.py +0 -0
  134. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/utils/network.py +0 -0
  135. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/utils/optix.py +0 -0
  136. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/utils/random.py +0 -0
  137. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/utils/rf.py +0 -0
  138. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/utils/transforms.py +0 -0
  139. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/utils/tree.py +0 -0
  140. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/utils/type.py +0 -0
  141. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/viz/__init__.py +0 -0
  142. {paramrf-0.26.0 → paramrf-0.26.4}/pmrf/viz/plots.py +0 -0
  143. {paramrf-0.26.0 → paramrf-0.26.4}/setup.cfg +0 -0
  144. {paramrf-0.26.0 → paramrf-0.26.4}/tests/__init__.py +0 -0
  145. {paramrf-0.26.0 → paramrf-0.26.4}/tests/data/10m_cable.s2p +0 -0
  146. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_autodiff.py +0 -0
  147. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_evaluators.py +0 -0
  148. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_fitting_minimize.py +0 -0
  149. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_fitting_routers.py +0 -0
  150. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_fitting_sample.py +0 -0
  151. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_frequency.py +0 -0
  152. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_infer_base.py +0 -0
  153. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_infer_sample.py +0 -0
  154. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_model.py +0 -0
  155. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_models/test_adapters.py +0 -0
  156. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_models/test_interconnected.py +0 -0
  157. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_models/test_lines.py +0 -0
  158. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_models/test_lumped.py +0 -0
  159. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_models/test_nodal.py +0 -0
  160. /paramrf-0.26.0/tests/test_models/test_topological.py → /paramrf-0.26.4/tests/test_models/test_sections.py +0 -0
  161. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_models/test_transformed.py +0 -0
  162. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_naming.py +0 -0
  163. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_optimize_base.py +0 -0
  164. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_optimize_minimize.py +0 -0
  165. {paramrf-0.26.0 → paramrf-0.26.4}/tests/test_transforms.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: paramrf
3
- Version: 0.26.0
3
+ Version: 0.26.4
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
@@ -108,6 +108,8 @@ The code below demonstrate how to define and optimize an RLC model to satisfy a
108
108
  model.plot_s_db(plot_freq, m=0, n=0, label='initial')
109
109
  result.model.plot_s_db(plot_freq, m=0, n=0, label='optimized')
110
110
 
111
+ print(result.model.named_params())
112
+
111
113
  Next steps
112
114
  ----------
113
115
  * For an overview of the library's features, see the `examples <https://gvcallen.github.io/paramrf/examples/index.html>`_ page.
@@ -68,6 +68,8 @@ The code below demonstrate how to define and optimize an RLC model to satisfy a
68
68
  model.plot_s_db(plot_freq, m=0, n=0, label='initial')
69
69
  result.model.plot_s_db(plot_freq, m=0, n=0, label='optimized')
70
70
 
71
+ print(result.model.named_params())
72
+
71
73
  Next steps
72
74
  ----------
73
75
  * For an overview of the library's features, see the `examples <https://gvcallen.github.io/paramrf/examples/index.html>`_ page.
@@ -76,4 +76,4 @@ Utilities
76
76
  pmrf.unwrap
77
77
  pmrf.unwrap_self
78
78
  pmrf.as_fixed
79
- pmrf.as_free
79
+ pmrf.as_variable
@@ -6,7 +6,7 @@ ParamRF allows you to easily optimize model parameters to meet a given design go
6
6
  Defining the Model
7
7
  ~~~~~~~~~~~~~~~~~~~
8
8
 
9
- When optimizing a model, instead of passing fixed floats, we pass *variable* parameters to indicate that they are free to be tuned by the optimizer. This can be done using constructors like :class:`pmrf.Unconstrained` or, more commonly, :class:`pmrf.Bounded`:
9
+ When optimizing a model, instead of passing fixed floats, we pass *free* parameters to indicate that they are free to be tuned by the optimizer. This can be done using constructors like :class:`pmrf.Unconstrained` or, more commonly, :class:`pmrf.Bounded`:
10
10
 
11
11
  .. plot::
12
12
  :context: reset
@@ -108,7 +108,7 @@
108
108
  "source": [
109
109
  "ParamRF provides a few transmission line models, such as ``PhysicalLine``, ``CoaxialLine`` and ``DatasheetLine``. Looking at the datasheet, we see no mention of physical parameters like loss tangent, conductor loss or detailed geometry dimensions. However, there is a velocity factor, as well as loss factors ``k1`` and ``k2``. This is just what ``DatasheetLine`` was meant for.\n",
110
110
  "\n",
111
- "Let's try fitting the model with its expected length and default parameters as a quick check. Note that if we construct a default model or pass in float values, all parameters in the model are seen as fixed (non-tunable). For demonstration purposes, if we want to optimize the default model but don't have an initial guess, we can set all the parameters to be variable (tunable) using ``pmrf.as_variable``."
111
+ "Let's try fitting the model with its expected length and default parameters as a quick check. Note that if we construct a default model or pass in float values, all parameters in the model are seen as fixed (non-tunable). For demonstration purposes, if we want to optimize the default model but don't have an initial guess, we can set all the parameters to be free (tunable) using ``pmrf.as_free``."
112
112
  ]
113
113
  },
114
114
  {
@@ -477,7 +477,7 @@
477
477
  ],
478
478
  "metadata": {
479
479
  "kernelspec": {
480
- "display_name": ".venv",
480
+ "display_name": ".venv (3.12.3)",
481
481
  "language": "python",
482
482
  "name": "python3"
483
483
  },