Skip to content

QuTip Simulation

Compilation

We first compile AnalogCircuit to a QutipExperiment using the ConversionRule QutipBackendCompiler. We also then separately convert the args of Analog layer to a corresponding representation of the args which can be processed by QuTip. The compile functions is used to compile AnalogCircuit to a QutipExperiment and also used to convert the args.

Simulation

After compilation, the time dynamical evolution is emulated using the Qutip implementation of the Schrödinger equation, qutip.sesolve.

    stateDiagram-v2
    User_Input --> OpenQSIM: The user inputs are put in the OpenQSIM AST's Task object
    OpenQSIM --> OpenQSIM(canonicalized): RewriteRule (Canonicalization of Operators)
    OpenQSIM(canonicalized) --> QutipExperiment: compile the program of Task to QutipExperiment. And also convert the analog
    QutipExperiment --> TaskResultAnalog: Run the experiment using the QutipExperimentVM Virtual Machine.