paramrf 0.18.2__tar.gz → 0.18.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.
- {paramrf-0.18.2/paramrf.egg-info → paramrf-0.18.3}/PKG-INFO +2 -3
- {paramrf-0.18.2 → paramrf-0.18.3}/README.rst +1 -2
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/api/index.rst +7 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/model_building.rst +2 -3
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/quickstart.rst +1 -2
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/tutorials/1_cable_fitting.ipynb +68 -13
- {paramrf-0.18.2 → paramrf-0.18.3/paramrf.egg-info}/PKG-INFO +2 -3
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/__init__.py +20 -1
- paramrf-0.18.3/pmrf/constraints.py +33 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/distributions.py +3 -23
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/jax_utils.py +1 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/base.py +23 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/parameters.py +31 -85
- {paramrf-0.18.2 → paramrf-0.18.3}/pyproject.toml +1 -1
- paramrf-0.18.2/pmrf/constraints.py +0 -73
- {paramrf-0.18.2 → paramrf-0.18.3}/.github/workflows/docs.yml +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/.github/workflows/publish.yml +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/.github/workflows/tests.yml +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/.gitignore +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/CONTRIBUTING.md +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/LICENSE +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/assets/logo.png +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/Makefile +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/_static/custom.css +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/_templates/autosummary/class.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/_templates/autosummary/function.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/_templates/autosummary/module.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/conf.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/circuit_clc.png +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/index.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/jax_overview.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/main_classes.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/optimization_and_inference.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/index.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/license.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/make.bat +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/skrf_comparison.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/tutorials/data/CBN-1.5FT-SMSM.s2p +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/docs/tutorials/index.rst +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/paramrf.egg-info/SOURCES.txt +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/paramrf.egg-info/dependency_links.txt +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/paramrf.egg-info/requires.txt +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/paramrf.egg-info/top_level.txt +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/constants.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/covariance_kernels.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/discrepancy_models.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/evaluators.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/fitting/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/fitting/minimize.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/fitting/result.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/fitting/routers.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/fitting/sample.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/frequency.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/backends/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/backends/blackjax.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/backends/polychord.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/base.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/result.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/sample.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/likelihoods.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/losses.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/math/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/math/aggregations.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/math/conversions.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/math/losses.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/math/misc.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/adapters/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/adapters/base.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/adapters/bridge.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/adapters/callable.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/adapters/static.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/ideal.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/lines/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/lines/nonuniform.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/lines/uniform.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/lumped.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/nonideal.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/topological.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/composite/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/composite/collection.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/composite/interconnected.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/composite/nodal.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/composite/transformed.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/surrogates/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/surrogates/expansion.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/surrogates/rational.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/network_collection.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/noise_models.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/backends/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/backends/jaxopt.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/backends/optimistix.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/backends/scipy.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/base.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/minimize.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/result.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/problem.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/rf/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/rf/cascades.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/rf/connections.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/rf/conversions.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/rf/terminations.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/serialization.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/solve/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/array.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/network.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/random.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/rf.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/tree.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/type.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/viz/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/viz/plots.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/setup.cfg +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/__init__.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/data/10m_cable.s2p +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_evaluators.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_fitting_minimize.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_fitting_routers.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_fittting_sample.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_frequency.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_infer_base.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_infer_sample.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_model.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_adapters.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_interconnected.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_lines.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_lumped.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_nodal.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_topological.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_transformed.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_optimize_base.py +0 -0
- {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_optimize_minimize.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: paramrf
|
|
3
|
-
Version: 0.18.
|
|
3
|
+
Version: 0.18.3
|
|
4
4
|
Summary: Parametric radio frequency modeling, optimization and sampling
|
|
5
5
|
Author-email: Gary Allen <gvcallen@gmail.com>
|
|
6
6
|
Project-URL: homepage, https://github.com/gvcallen/paramrf
|
|
@@ -91,11 +91,10 @@ The example below shows how to define and optimize a simple RLC model to satisfy
|
|
|
91
91
|
.. code-block:: python
|
|
92
92
|
|
|
93
93
|
import pmrf as prf
|
|
94
|
-
from pmrf.parameters import Scaled
|
|
95
94
|
from pmrf.models import Resistor, Inductor, Capacitor
|
|
96
95
|
|
|
97
96
|
freq = prf.Frequency(1, 10, 101, 'GHz')
|
|
98
|
-
rlc_model = Resistor(50) ** Inductor(Scaled(1.0, 1e-9)) ** Capacitor(Scaled(1.0, 1e-12))
|
|
97
|
+
rlc_model = Resistor(50) ** Inductor(prf.Scaled(1.0, 1e-9)) ** Capacitor(prf.Scaled(1.0, 1e-12))
|
|
99
98
|
|
|
100
99
|
opt_freq = prf.Frequency(4, 6, 101, 'GHz')
|
|
101
100
|
goal = prf.evaluators.Goal('s11_db', '<', -20)
|
|
@@ -52,11 +52,10 @@ The example below shows how to define and optimize a simple RLC model to satisfy
|
|
|
52
52
|
.. code-block:: python
|
|
53
53
|
|
|
54
54
|
import pmrf as prf
|
|
55
|
-
from pmrf.parameters import Scaled
|
|
56
55
|
from pmrf.models import Resistor, Inductor, Capacitor
|
|
57
56
|
|
|
58
57
|
freq = prf.Frequency(1, 10, 101, 'GHz')
|
|
59
|
-
rlc_model = Resistor(50) ** Inductor(Scaled(1.0, 1e-9)) ** Capacitor(Scaled(1.0, 1e-12))
|
|
58
|
+
rlc_model = Resistor(50) ** Inductor(prf.Scaled(1.0, 1e-9)) ** Capacitor(prf.Scaled(1.0, 1e-12))
|
|
60
59
|
|
|
61
60
|
opt_freq = prf.Frequency(4, 6, 101, 'GHz')
|
|
62
61
|
goal = prf.evaluators.Goal('s11_db', '<', -20)
|
|
@@ -153,7 +153,6 @@ As a last resort, overriding ``__init__`` is still possible, but ``super().__ini
|
|
|
153
153
|
.. code-block:: python
|
|
154
154
|
|
|
155
155
|
import pmrf as prf
|
|
156
|
-
from pmrf.parameters import Bounded
|
|
157
156
|
from pmrf.models import Capacitor, Inductor, Circuit, Port, Ground
|
|
158
157
|
|
|
159
158
|
import jax.numpy as jnp
|
|
@@ -163,8 +162,8 @@ As a last resort, overriding ``__init__`` is still possible, but ``super().__ini
|
|
|
163
162
|
|
|
164
163
|
# To be instantiated in post init
|
|
165
164
|
cap1: Capacitor = prf.field(default=None)
|
|
166
|
-
cap2: Capacitor = Capacitor(C=Bounded(0.0, 10.0, value=2.0, scale=1e-12))
|
|
167
|
-
ind: Inductor = Inductor(L=Bounded(0.0, 10.0, value=2.0, scale=1e-12))
|
|
165
|
+
cap2: Capacitor = Capacitor(C=prf.Bounded(0.0, 10.0, value=2.0, scale=1e-12))
|
|
166
|
+
ind: Inductor = Inductor(L=prf.Bounded(0.0, 10.0, value=2.0, scale=1e-12))
|
|
168
167
|
|
|
169
168
|
def __post_init__(self, C1_divided_by_5: float):
|
|
170
169
|
self.cap1 = Capacitor(C1_divided_by_5 * 5.0)
|
|
@@ -20,14 +20,13 @@ Models can easily be built using composition with the built in :mod:`pmrf.models
|
|
|
20
20
|
.. code-block:: python
|
|
21
21
|
|
|
22
22
|
import pmrf as prf
|
|
23
|
-
from pmrf.parameters import Scaled
|
|
24
23
|
from pmrf.models import Resistor, Inductor, Capacitor
|
|
25
24
|
|
|
26
25
|
# Define the frequency band
|
|
27
26
|
freq = prf.Frequency(1, 10, 101, 'GHz')
|
|
28
27
|
|
|
29
28
|
# Cascade elements using the ** operator
|
|
30
|
-
rlc_model = Resistor(50) ** Inductor(Scaled(1.0, 1e-9)) ** Capacitor(Scaled(1.0, 1e-12))
|
|
29
|
+
rlc_model = Resistor(50) ** Inductor(prf.Scaled(1.0, 1e-9)) ** Capacitor(prf.Scaled(1.0, 1e-12))
|
|
31
30
|
|
|
32
31
|
# Plot the model's S11 parameter
|
|
33
32
|
rlc_model.plot_s_db(freq, m=0, n=0)
|