pmrf.models.lumped

Classes

Capacitor([C, name, separator, _z0, ...])

Overview

Inductor([L, name, separator, _z0, ...])

Overview

Load([nports, name, separator, _z0, ...])

Overview

Match([nports, name, separator, _z0, ...])

Overview

Open([nports, name, separator, _z0, ...])

Overview

Resistor([R, name, separator, _z0, ...])

Overview

Short([nports, name, separator, _z0, ...])

Overview

Transformer(*[, name, separator, _z0, ...])

Overview

class pmrf.models.lumped.Load(nports=1, *, name=None, separator='_', _z0=(50+0j), _param_groups=<factory>)[source]

Bases: Model

Overview

An abstract base class for all 1-port terminating load models.

This class establishes the interface for 1-port networks, which are defined by their reflection coefficient, gamma. Subclasses must implement the gamma property.

Parameters:
  • nports (int)

  • name (str | None)

  • separator (str)

  • _z0 (complex)

  • _param_groups (list[ParameterGroup])

nports: int = 1
property gamma: float | Array

The complex reflection coefficient (Gamma) of the load.

s(freq)[source]

Calculates the 1-port S-parameter matrix.

Args:

freq (Frequency): The frequency axis for the calculation.

Returns:

np.ndarray: The resultant 1x1 S-parameter matrix.

Parameters:

freq (Frequency)

Return type:

Array

class pmrf.models.lumped.Match(nports=1, *, name=None, separator='_', _z0=(50+0j), _param_groups=<factory>)[source]

Bases: Load

Overview

An ideal matched load (perfect termination).

Parameters:
  • nports (int)

  • name (str | None)

  • separator (str)

  • _z0 (complex)

  • _param_groups (list[ParameterGroup])

property gamma: float | Array

The reflection coefficient of a matched load, which is always 0.

class pmrf.models.lumped.Short(nports=1, *, name=None, separator='_', _z0=(50+0j), _param_groups=<factory>)[source]

Bases: Load

Overview

An ideal short circuit.

Parameters:
  • nports (int)

  • name (str | None)

  • separator (str)

  • _z0 (complex)

  • _param_groups (list[ParameterGroup])

property gamma: float | Array

The reflection coefficient of a short circuit, which is always -1.

class pmrf.models.lumped.Open(nports=1, *, name=None, separator='_', _z0=(50+0j), _param_groups=<factory>)[source]

Bases: Load

Overview

An ideal open circuit.

Parameters:
  • nports (int)

  • name (str | None)

  • separator (str)

  • _z0 (complex)

  • _param_groups (list[ParameterGroup])

property gamma: float | Array

The reflection coefficient of an open circuit, which is always +1.

class pmrf.models.lumped.Capacitor(C=1.0, *, name=None, separator='_', _z0=(50+0j), _param_groups=<factory>)[source]

Bases: Model

Overview

A 2-port model of a series capacitor.

Example

```python import pmrf as prf

# Create a 1 pF series capacitor c_series = prf.models.Capacitor(C=1e-12)

# Terminate the capacitor in a short to create a 1-port shunt capacitor c_shunt = c_series.terminated(prf.models.Short())

freq = prf.Frequency(start=1, stop=10, npoints=101, unit=’ghz’) s = c_shunt.s(freq)

print(f”Shunt capacitor has {c_shunt.nports} port.”) ```

Parameters:
  • C (Any)

  • name (str | None)

  • separator (str)

  • _z0 (complex)

  • _param_groups (list[ParameterGroup])

C: Parameter = 1.0
s(freq)[source]

Calculates the S-parameters of a series capacitor.

Args:

freq (Frequency): The frequency axis for the calculation.

Returns:

np.ndarray: The resultant 2x2 S-parameter matrix.

Parameters:

freq (Frequency)

Return type:

Array

class pmrf.models.lumped.Inductor(L=1.0, *, name=None, separator='_', _z0=(50+0j), _param_groups=<factory>)[source]

Bases: Model

Overview

A 2-port model of a series inductor.

Example

```python import pmrf as prf

# Create a 1 nH series inductor l_series = prf.models.Inductor(L=1e-9)

freq = prf.Frequency(start=1, stop=10, npoints=101, unit=’ghz’) s = l_series.s(freq)

print(f”Series inductor has {l_series.nports} ports.”) ```

Parameters:
  • L (Any)

  • name (str | None)

  • separator (str)

  • _z0 (complex)

  • _param_groups (list[ParameterGroup])

L: Parameter = 1.0
s(freq)[source]

Calculates the S-parameters of a series inductor.

Args:

freq (Frequency): The frequency axis for the calculation.

Returns:

np.ndarray: The resultant 2x2 S-parameter matrix.

Parameters:

freq (Frequency)

Return type:

Array

class pmrf.models.lumped.Resistor(R=1.0, *, name=None, separator='_', _z0=(50+0j), _param_groups=<factory>)[source]

Bases: Model

Overview

A 2-port model of a series resistor.

Example

```python import pmrf as prf

# Create a 25-ohm series resistor (e.g., for an attenuator pad) r_series = prf.models.Resistor(R=25.0)

freq = prf.Frequency(start=1, stop=10, npoints=101, unit=’ghz’) s = r_series.s(freq)

print(f”Series resistor has {r_series.nports} ports.”) ```

Parameters:
  • R (Any)

  • name (str | None)

  • separator (str)

  • _z0 (complex)

  • _param_groups (list[ParameterGroup])

R: Parameter = 1.0
s(freq)[source]

Calculates the S-parameters of a series resistor.

Args:

freq (Frequency): The frequency axis for the calculation.

Returns:

np.ndarray: The resultant 2x2 S-parameter matrix.

Parameters:

freq (Frequency)

Return type:

Array

class pmrf.models.lumped.Transformer(*, name=None, separator='_', _z0=(50+0j), _param_groups=<factory>)[source]

Bases: Model

Overview

An ideal, lossless, frequency-independent 4-port 1:1 transformer.

Parameters:
  • name (str | None)

  • separator (str)

  • _z0 (complex)

  • _param_groups (list[ParameterGroup])

s(freq)[source]

Returns the fixed S-parameter matrix for the transformer.

Args:

freq (Frequency): The frequency axis for the calculation.

Returns:

np.ndarray: The 4x4 S-parameter matrix, constant across frequency.

Parameters:

freq (Frequency)

Return type:

Array