Zero issueshttps://git.ligo.org/sean-leavey/zero/-/issues2018-11-22T22:01:13Zhttps://git.ligo.org/sean-leavey/zero/-/issues/13Allow arbitrary noise spectra/functions to be defined for op-amps, resistors,...2018-11-22T22:01:13ZSean LeaveyAllow arbitrary noise spectra/functions to be defined for op-amps, resistors, etc.There is nothing stopping op-amps, resistors, etc. from having arbitrary noise spectra. The config file could support the standard white noise + 1/f noise parameters, or alternatively support noise spectra loaded from user files (perhaps...There is nothing stopping op-amps, resistors, etc. from having arbitrary noise spectra. The config file could support the standard white noise + 1/f noise parameters, or alternatively support noise spectra loaded from user files (perhaps overridden using a context manager - see #11). Such loaded files would either need to have the same frequency axis as the analysis, or be interpolated, with suitable warnings where the ranges do not overlap.Sean LeaveySean Leaveyhttps://git.ligo.org/sean-leavey/zero/-/issues/11Allow config files (e.g. op-amp libraries) to be loaded in context2018-11-22T22:00:49ZSean LeaveyAllow config files (e.g. op-amp libraries) to be loaded in context```python
with ConfigParser("my-library.txt"):
# run simulation using my-library.txt
analysis.calculate_tfs(...)
``````python
with ConfigParser("my-library.txt"):
# run simulation using my-library.txt
analysis.calculate_tfs(...)
```Sean LeaveySean Leaveyhttps://git.ligo.org/sean-leavey/zero/-/issues/10Support equivalent series resistance/inductance in components2018-06-01T10:24:24ZSean LeaveySupport equivalent series resistance/inductance in componentsPassive components should probably all just inherit from some component that has a complex impedance. `Resistors` would therefore just be a convenient way to represent such a component with a real impedance. It should be straightforward ...Passive components should probably all just inherit from some component that has a complex impedance. `Resistors` would therefore just be a convenient way to represent such a component with a real impedance. It should be straightforward to calculate a complex impedance given a real resistance and equivalent series or parallel inductance or capacitance. The same is true for inductors and capacitors.
Related: investigate the `c0805` component in LISO.Sean LeaveySean Leaveyhttps://git.ligo.org/sean-leavey/zero/-/issues/9Support not loaded/not connected components2020-01-28T15:06:09ZSean LeaveySupport not loaded/not connected componentsWhen the value of a component is "NL" or "NC", add the component to the circuit but have the solver exclude such components from the calculations. This means that the component will still show up in the graph or representation of the cir...When the value of a component is "NL" or "NC", add the component to the circuit but have the solver exclude such components from the calculations. This means that the component will still show up in the graph or representation of the circuit, and can still have its value assigned interactively, or from within a loop.Node graphsSean LeaveySean Leaveyhttps://git.ligo.org/sean-leavey/zero/-/issues/8Implement symbolic solver2018-06-01T10:16:13ZSean LeaveyImplement symbolic solverAs with #7, it should be possible to implement a symbolic solver using e.g. Sympy. This probably won't work for large circuits, but for small one it surely will.
Related: for displaying the results, adapt the LaTeX equation code in `dis...As with #7, it should be possible to implement a symbolic solver using e.g. Sympy. This probably won't work for large circuits, but for small one it surely will.
Related: for displaying the results, adapt the LaTeX equation code in `display.py`.Sean LeaveySean Leaveyhttps://git.ligo.org/sean-leavey/zero/-/issues/7Implement SPARSE matrix solver via Cython2018-06-01T10:16:13ZSean LeaveyImplement SPARSE matrix solver via CythonLISO uses the SPARSE library for circuit simulation. It should be possible to use Cython code to interface with the library. Now that the solver has been split off from the `Circuit` object (e774a0d0) this should be quite straightforward...LISO uses the SPARSE library for circuit simulation. It should be possible to use Cython code to interface with the library. Now that the solver has been split off from the `Circuit` object (e774a0d0) this should be quite straightforward to do. With the same library it should be possible to produce identical results to LISO.
Note that this will probably need a Makefile to run during `setup.py`.Sean LeaveySean Leaveyhttps://git.ligo.org/sean-leavey/zero/-/issues/6Allow varying of parameters other than frequency2018-06-01T10:11:13ZSean LeaveyAllow varying of parameters other than frequencyAllow the user to set a particular frequency and then vary e.g. resistor values and plot the results, instead of always having to vary frequency.
Could take this a step further and allow multiple parameters to be varied at once.
Could ...Allow the user to set a particular frequency and then vary e.g. resistor values and plot the results, instead of always having to vary frequency.
Could take this a step further and allow multiple parameters to be varied at once.
Could also allow the user to specify a generator for the x-axis, to allow for adaptive simulations, i.e. ones where the next frequency is calculated based on the gradient between the last two, to allow more points to be simulated near where interesting features occur. Could maybe provide such adaptive generators in the toolbox.Sean LeaveySean Leavey