lumped_capacitive#

Handles the capacitive simulation of a transmon pocket model.

Convert capacitance matrices extracted from Q3D into Hamiltonian parameters using the Duffing model. Typical input is the capacitance matrix calculated from Q3D.

Each function prints out the parameters and outputs a dictionary.

Functions

Cs_from_Ec(Ec)

Get total shunt capacitance from charging energy In SI units.

Ic_from_Ej(Ej)

Critical current In SI units.

Ic_from_Lj(Lj)

Critical current In SI units.

chargeline_T1(Ccharge, Cq, f01)

Calculate the charge line T1.

chi(g, wr, w01, w12)

Calculate the dispersive shift $chi$, where $2*chi$ is the |0> --> |1> splitting).

cos_to_mega_and_delta(Cin, ICin, f01, f02on2)

Cost function for calculating C and IC given a C and IC calculate f and f02/2 from 'levels_vs_ng_real_units' and least square with measured f01,f02on2.

df_cmat_style_print(df_cmat)

Display the dataframe in the cmat style.

df_reorder_matrix_basis(df, i_from, i_to)

Data frame handle reording of matrix basis.

extract_transmon_coupled_Noscillator(...[, ...])

Primary analysis function called by the user for lumped-element mode (LOM) analysis.

get_C_and_Ic(Cin_est, Icin_est, f01, f02on2)

Get the capacitance and critical current for a transmon of a certain frequency and anharmonicity.

levels_vs_ng_real_units(Cq, IC[, N, ...])

This numerically computes the exact transmon levels given C and IC as a function of the ng ration -- it subtracts the vacuum flucations so that the ground state is set to zero energy.

load_q3d_capacitance_matrix(path[, ...])

Load Q3D capcitance file exported as Maxwell matrix.

lumped_oscillator_from_path(path, Lj_nH, ...)

Obtain a single result dataframe from a Q3D capacitance file pointed to by path.

move_index_to(i_from, i_to, len_)

Utility function to swap index.

readin_q3d_matrix(path[, delim_whitespace])

Read in the txt file created from q3d export as CSV and output the capacitance matrix file exported by Ansys Q3D.

readin_q3d_matrix_m(path)

Read in Q3D cap matrix from a .m file exported by Ansys Q3d.

transmon_props(Ic, Cq)

Properties of a transmon qubit.

Cs_from_Ec(Ec: float) float#

Get total shunt capacitance from charging energy In SI units.

Parameters:

Ec (float) – In Joules

Returns:

In farads

Return type:

float

Ic_from_Ej(Ej: float) float#

Critical current In SI units.

Parameters:

Ej (float) – In Joules

Returns:

In Amps

Return type:

float

Ic_from_Lj(Lj: float) float#

Critical current In SI units.

Parameters:

Lj (float) – In Henries

Returns:

In Amps

Return type:

float

chargeline_T1(Ccharge, Cq, f01)#

Calculate the charge line T1.

Parameters:
  • Cchare (float) – Ccharge

  • Cq (float) – Cq

  • f01 (float) – f01

Returns:

Calculated chargeline T1

Return type:

float

chi(g: float, wr: float, w01: float, w12: float)#

Calculate the dispersive shift $chi$, where $2*chi$ is the |0> –> |1> splitting).

Accounts for push on the i-th transmon level due to the j-th transmon level, mediated by cavity.

All args need to be in the same units.

Parameters:
  • g (float) – Qubit-cavity linear coupling.

  • wr (float) – Frequency of resonator.

  • w01 (float) – Qubit 01 transition frequency

  • w12 (float) – Qubit 12 transition frequency

Returns:

Calculated chi value

Return type:

float

cos_to_mega_and_delta(Cin, ICin, f01, f02on2)#

Cost function for calculating C and IC given a C and IC calculate f and f02/2 from ‘levels_vs_ng_real_units’ and least square with measured f01,f02on2.

Parameters:
  • Cin (float) – Cin

  • ICin (float) – ICin

  • f01 (float) – f01

  • f02on2 (float) – f02on2

Returns:

Calculated value

Return type:

float

df_cmat_style_print(df_cmat: DataFrame)#

Display the dataframe in the cmat style.

Parameters:

df_cmat (dataframe) – Dataframe to display

df_reorder_matrix_basis(df, i_from, i_to)#

Data frame handle reording of matrix basis.

Parameters:
  • df (DataFrame) – Data frame to swap

  • i_from (int) – Index to move from

  • i_to (int) – Index to move to

Returns:

The changed index DataFrame

Return type:

DataFrame

extract_transmon_coupled_Noscillator(capMatrix, Ic: float, CJ: float, N: int, fb: List[float], fr: float, res_L4_corr: float | None = None, g_scale: float = 1.0, print_info: bool = False)#

Primary analysis function called by the user for lumped-element mode (LOM) analysis. Uses a Maxwell capacitance matrix generated by a capacitive extractor, such as Q3D. Additionally takes more values to determine many parameters of the Hamiltonian of the system.

The capMatrix can be imported using readin_q3d_matrix

Calculate the χ The full dispersive splitting using analytical approximations, i.e., return the |0> –> |1> splitting.

Parameters:
  • capMatrix (np.ndarray) – Order of the capacitance matrix must be bus1…busN-1, ground, Qubit_pad1, Qubit_pad2, readout. (in F) If not in the correct order, use df_reorder_matrix_basis() to put it in the proper order. It is advised that the user follow a naming scheme in QiskitMetal or Q3D which results in the necessary order by default (eg. alphabetical)

  • Ic (float) – Junction Ic (in A)

  • Cj (float) – Junction capacitance (in F)

  • N (int) – Coupling pads (1 readout, N-1 bus)

  • fb (float) – Coupling bus and readout frequencies (in GHz). fb can be a list with the order the order they appear in the capMatrix.

  • fr (float) – Coupling bus and readout frequencies (in GHz). fr can be a list with the order the order they appear in the capMatrix.

  • res_L4_corr (list) – Correction factor is the resonators are L/4 if none it ignores, otherwise this is a list of length N in the form [1,0,1,…]. Defaults to None.

  • g_scale (float) – Scale factor

  • print_info (bool) – Print transmon and coupling properties. Defaults to False.

Returns:

ham_dict is a dictionary of all the calculated values

Return type:

dict

Raises:
  • ValueError – If N is not positive

  • ValueError – If the capacitance matrix is the wrong size

get_C_and_Ic(Cin_est, Icin_est, f01, f02on2)#

Get the capacitance and critical current for a transmon of a certain frequency and anharmonicity.

Parameters:
  • Cin_est (float) – Initial guess for capacitance (in fF)

  • Icin_est (float) – Initial guess for critical current (in nA)

  • f01 (float) – Transmon frequency (in GHz)

  • f02on2 (float) – 02/2 frequency (in GHz)

Returns:

[C,Ic] from levels_vs_ng_real_units that gives the specified frequency and anharmonicity

Return type:

tuple

levels_vs_ng_real_units(Cq, IC, N=301, do_disp=0, do_plots=0)#

This numerically computes the exact transmon levels given C and IC as a function of the ng ration – it subtracts the vacuum flucations so that the ground state is set to zero energy.

Parameters:
  • C (float) – In fF

  • Ic (float) – In nA

  • N (int) – Number of charge values to use (needs to be odd)

  • do_disp (int) – Will print out the values

  • do_plots (int) – Will plot the data

Returns:

fqubitGHz, anharMHz, disp, tphi_ms

Return type:

tuple

Raises:

ValueError – If the matrix is not Hermitian

load_q3d_capacitance_matrix(path, user_units='fF', _disp=True)#

Load Q3D capcitance file exported as Maxwell matrix. Do not export conductance. Units are read in automatically and converted to user units.

Parameters:
  • path (str) – Path to file.

  • user_units (str) – Units. Defaults to ‘fF’.

  • _disp (bool) – whehter or not to display messages. Defaults to True.

Returns:

df_cmat, user_units, design_variation, df_cond

Return type:

tupe

lumped_oscillator_from_path(path: str, Lj_nH: float, Cj_fF: float, N: int, fr: list | float, fb: list | float) DataFrame#

Obtain a single result dataframe from a Q3D capacitance file pointed to by path. Similar to member method lumped_oscillator_vs_passes() of QQ3DRenderer but for a user provided capacitance matrix file.

Parameters:
  • path (str) – Path to file.

  • Lj_nH (float) – Junction inductance (in nH)

  • Cj_fF (float) – Junction capacitance (in fF)

  • N (int) – Coupling pads (1 readout, N - 1 bus)

  • fr (Union[list, float]) – Readout frequencies (in GHz). fr can be a list with the order they appear in the capMatrix.

  • fb (Union[list, float]) – Coupling bus frequencies (in GHz). fb can be a list with the order they appear in the capMatrix.

  • g_scale (float, optional) – Scale factor. Defaults to 1..

Returns:

A single dataframe corresponding to a single capacitance matrix

Return type:

dict

move_index_to(i_from: List[int], i_to: List[int], len_)#

Utility function to swap index.

Parameters:
  • i_from (int) – Data frame to swap index

  • i_to (int) – Data frame to index

  • len (int) – Length of array

Returns:

list of indecies, such as array([1, 2, 3, 4, 0, 5])

Return type:

list

readin_q3d_matrix(path: str, delim_whitespace=True)#

Read in the txt file created from q3d export as CSV and output the capacitance matrix file exported by Ansys Q3D.

When exporting pick “save as type: data table”

Parameters:

path (str) – Path to file

Returns:

df_cmat, units, design_variation, df_cond

Return type:

tuple

Example file:

DesignVariation:$BBoxL='650um' $boxH='750um' $boxL='2mm' $QubitGap='30um' $QubitH='90um' $QubitL='450um' Lj_1='13nH'
Setup1:LastAdaptive
Problem Type:C
C Units:farad, G Units:mSie
Reduce Matrix:Original
Frequency: 5.5E+09 Hz

Capacitance Matrix
    ground_plane        Q1_bus_Q0_connector_pad Q1_bus_Q2_connector_pad Q1_pad_bot      Q1_pad_top1     Q1_readout_connector_pad
ground_plane    2.8829E-13      -3.254E-14      -3.1978E-14     -4.0063E-14     -4.3842E-14     -3.0053E-14
Q1_bus_Q0_connector_pad -3.254E-14      4.7257E-14      -2.2765E-16     -1.269E-14      -1.3351E-15     -1.451E-16
Q1_bus_Q2_connector_pad -3.1978E-14     -2.2765E-16     4.5327E-14      -1.218E-15      -1.1552E-14     -5.0414E-17
Q1_pad_bot      -4.0063E-14     -1.269E-14      -1.218E-15      9.5831E-14      -3.2415E-14     -8.3665E-15
Q1_pad_top1     -4.3842E-14     -1.3351E-15     -1.1552E-14     -3.2415E-14     9.132E-14       -1.0199E-15
Q1_readout_connector_pad        -3.0053E-14     -1.451E-16      -5.0414E-17     -8.3665E-15     -1.0199E-15     3.9884E-14

Conductance Matrix
    ground_plane        Q1_bus_Q0_connector_pad Q1_bus_Q2_connector_pad Q1_pad_bot      Q1_pad_top1     Q1_readout_connector_pad
ground_plane    0       0       0       0       0       0
Q1_bus_Q0_connector_pad 0       0       0       0       0       0
Q1_bus_Q2_connector_pad 0       0       0       0       0       0
Q1_pad_bot      0       0       0       0       0       0
Q1_pad_top1     0       0       0       0       0       0
Q1_readout_connector_pad        0       0       0       0       0       0
readin_q3d_matrix_m(path: str) DataFrame#

Read in Q3D cap matrix from a .m file exported by Ansys Q3d.

Parameters:

path (str) – Path to .m file

Returns:

pd.DataFrame of cap matrix, with no names of columns.

transmon_props(Ic: float, Cq: float)#

Properties of a transmon qubit.

Calculate LJ, EJ, EC, wq, eps from Ic,Cq.

Parameters:
  • Ic (float) – Junction Ic (in A)

  • Cq (float) – Junction capacitance (in F)

Returns:

[LJ, EJ, Zqp, EC, wq, wq0, eps1] – Inductance

Return type:

tuple