tidy3d
tidy3d copied to clipboard
Improve interface for creating arbitrary networks in lumped elements
Currently users must use the AdmittanceNetwork class to model arbitrary linear networks with the LumpedElement. Although general, it is not very convenient, since the complete transfer function must be derived and put into the form of a rational expression.
Instead, we could allows users to build a network using simple RLC building blocks that they add in series or parallel. We could use the same style as lcapy (or even just use lcapy directly), which uses operators like + and |. Building our own functionality should not be too hard, and probably better then requiring an additional large dependency.
These operations would require manipulating polynomials either numerically using numpy or symbolically using sympy, and then making sure the final expression is in the correct form.