Skip to content

Splitting the QNET Package into components

Michael Goerz edited this page Sep 1, 2016 · 2 revisions

The QNET package should be split into different components. The rationale is the following:

  • the different components of QNET have a different audience. E.g. QHDL modeling is of interest mainly to experimentalist, whereas code generation is for people doing numerics
  • different components have different level of maturity. Some parts are stable, others very much in "alpha".
  • different components can be more easily maintained by different people

Possible components include:

qnet-qhdl

Goal: provide a parser for the QHDL language, resulting in an SLH object / SLH network object

qnet-cirq

Goal: provide a graphical Jupyter-Notebook-based tool to build abstract quantum networks graphically (resulting in an SLH object / SLH network object)

qnet-slh

Goal: provide a structure for the abstract description of connected SLH objects. Apply the SLH algebra to derive an effective SLH object for the entire network.

Should we have a data structure SLHNetwork that reflects a "unevaluated" network of SLH objects?

qnet-algebra

Goal: Provide a computer-algebra framework for quantum mechanics (i.e., operators). Allow for symbolic manipulation and model reduction

qnet-qutip

Goal: Convert between QNET algebra objects and numeric QuTiP object

qnet-qsd

Goal: Convert symbolic expressions into C++ code, within the QSD framework

qnet-sympy

Goal: convert between qnet-algebra and purely symbolic sympy expressions

Clone this wiki locally