.. _quickTutor: *************** Quick Tutorial *************** To show a quick overview of how to use SQcircuit, we find the qubit frequency for the symmetric zero-pi qubit with the following parameters in gigahertz: :math:`E_C=0.15`, :math:`E_{CJ}=10`, :math:`E_L=0.13` , and :math:`E_J=5`. .. container:: grid-container .. figure:: pics/zeroPiQubit_black.png :align: left :width: 2.1in After installing the SQcircuit, we import it via: .. code-block:: python # import the SQcircuit library import SQcircuit as sq Since zero-pi qubit has a single inductive loop, we define its loop by creating a loop object from `Loop` class with flux bias at frustration point: .. code-block:: python # inductive loop of zero-pi qubit with flux bias at its frustration point. loop1 = sq.Loop(value=0.5) We can later change the value of the flux bias by ``set_flux()`` method. Each circuit component in SQcircuit has their own class definition `Capacitor` class for capacitors, ``Inductor`` class for inductors, and ``Junction`` class for Josephson junctions. We define the elements of our zero-pi circuit as following: .. code-block:: python # capacitors C = sq.Capacitor(value =0.15, unit="GHz") CJ = sq.Capacitor(value=10, unit="GHz") # inductors L = sq.Inductor(value=0.13, unit="GHz", loops = [loop1]) # JJs JJ = sq.Junction(value=5, unit="GHz", loops=[loop1]) Note that for the inductive elements( inductors as well as Josephson junctions) that are part of an inductive loop, one should indicate the loops of which they are involved. For example here we pass ``[loop1]`` to ``loops`` argument for both inductors and Josephson Junctions, because all of them are part of ``loop1``. After defining all components of the circuit, to describe the circuit topology in SQcircuit, one should create an object of ``Circuit`` class by passing a Python dictionary that contains the list of all elements at each edge .. code-block:: python # dictionary that contains the list of all elements at each edge elements = {(0, 1): [CJ, JJ], (0, 2): [L], (0, 3): [C], (1, 2): [C], (1, 3): [L], (2, 3): [CJ, JJ]} # define the circuit cr = sq.Circuit(elements) One step before diagonalizing the circuit is to define the size of the Hilbert space by specifying the truncation numbers for each mode.(For more information about modes and truncation number check the SQcircuit original paper or the documentation) .. code-block:: python # call this function to set the truncation number for each mode of the circuit. cr.set_trunc_nums([25, 1, 25]) We get the first two eigenfrequencies of the circuit to calculate the qubit frequency via: .. code-block:: python # get the first two eigenfrequencies and eigenvectors efreqs, evecs = cr.diag(n_eig=2) # print the qubit frequency print("qubit frequency:", efreqs[1]-efreqs[0]) The frequency unit in SQcircuit is gigahertz by default. However, one can simply change it by ``sq.set_unit_freq()`` method.