tidy3d.rf.AdmittanceNetwork

tidy3d.rf.AdmittanceNetwork#

class AdmittanceNetwork[source]#

Bases: MicrowaveBaseModel

Class for representing a network consisting of an arbitrary number of resistors, capacitors, and inductors. The network is represented in the Laplace domain as an admittance function. Provides additional functionality for representing the network as an equivalent medium.

Parameters:
  • a (tuple[NonNegativeFloat, ...]) – A tuple of floats describing the coefficients of the numerator polynomial. The length of the tuple is equal to the order of the network.

  • b (tuple[NonNegativeFloat, ...]) – A tuple of floats describing the coefficients of the denomiator polynomial. The length of the tuple is equal to the order of the network.

  • warning:: (..) – This class may be renamed to AdmittanceModel in a future release. For building networks from SPICE files or component lists, use CircuitImpedanceModel (e.g. CircuitImpedanceModel.from_spice()).

Notes

The network is described by the supplied coefficients as an admittance function that relates voltage to the current in the Laplace domain and is equivalent to a frequency-dependent complex conductivity \(\sigma(\omega)\).

\[I(s) = Y(s)V(s)\]
\[Y(s) = \frac{a_0 + a_1 s + \dots + a_M s^M}{b_0 + b_1 s + \dots + b_N s^N}\]

An equivalent PoleResidue medium is constructed using an equivalent frequency-dependent complex permittivity defined as

\[\epsilon(s) = \epsilon_\infty - \frac{\Delta}{\epsilon_0 s} \frac{a_0 + a_1 s + \dots + a_M s^M}{b_0 + b_1 s + \dots + b_N s^N}.\]

The admittance is scaled depending on the geometric properties of the lumped element by the scaling factor \(\Delta\). Implementation is based on the equivalent medium introduced by [1].

References

Example

Recommended: build the same RC parallel network with CircuitImpedanceModel (no warning):

>>> comps = (
...     LumpedCircuitComponent(element_type="R", node_plus="1", node_minus="0", value=50.0, name="R1"),
...     LumpedCircuitComponent(element_type="C", node_plus="1", node_minus="0", value=1e-12, name="C1"),
... )
>>> model = CircuitImpedanceModel(components=comps, freq_range=(1e9, 2e9))

Legacy (a, b) form; constructing AdmittanceNetwork emits a rename warning. To suppress it, use log.suppress_output():

>>> with log.suppress_output():
...     R, C = 50, 1e-12
...     a = (1, R * C)  # RC parallel numerator
...     b = (R, 0)      # denominator
...     RC_parallel = AdmittanceNetwork(a=a, b=b)

Attributes

a

b

a#
b#