Source code for qdesignoptimizer.estimation.classical_model_decay_into_charge_line

"""Analytical models for computing the decay of a mode in a transmsission line from the capacitance matrix."""

import numpy as np


[docs] def mode_decay_rate_into_transmissionline( mode_freq_GHz: float, mode_capacitance_fF: float, coupling_capacitance_fF: float, impedance_env: float = 50, ) -> float: """Calculate the decay of a grounded mode into a charge line from a classical model for a single decay channel. Reference: `Microwave photonics in superconducting circuits <https://www.research-collection.ethz.ch/handle/20.500.11850/155858>`_ Appendix B Equation B.15. Args: mode_freq_GHz (float): (GHz) eigenfrequency of the oscillator or qubit transistion frequency. mode_capacitance_fF (float): (fF) The total capacitance of the mode. coupling_capacitance_fF (float): (fF) The capacitance between the mode and the charge line. impedance_env (float): (Ohm) The impedance of the charge line. Returns: float: Decay rate to charge line (Hz). """ omega = 2 * np.pi * mode_freq_GHz beta_i = coupling_capacitance_fF / mode_capacitance_fF unit_conversion = 1e3 # GHz_to_Hz^2 * fF_to_F, GHz_to_Hz = 1e9, fF_to_F = 1e-15 gamma = omega**2 * mode_capacitance_fF * beta_i**2 * impedance_env * unit_conversion return gamma
[docs] def calculate_t1_limit_grounded_lumped_mode_decay_into_chargeline( mode_freq_GHz: float, mode_capacitance_fF: float, mode_capacitance_to_charge_line_fF: float, charge_line_impedance: float = 50.0, ) -> float: """Wrapper around :func:`mode_decay_rate_into_transmissionline` for the case of a grounded mode. In this case the coupling capacitance is just the capacitance between the single island and the charge line. Args: mode_freq_GHz (float): (GHz) The frequency of the mode omega/2pi. mode_capacitance_fF (float): (fF) The total capacitance of the mode. The mode should be grounded such that its capacitance is constituted by a single capacitive pad. mode_capacitance_to_charge_line_fF (float): (fF) The capacitance between the mode and the charge line. charge_line_impedance (float): (Ohm) The impedance of the charge line. Returns: float: The T1 limit due to decay into charge line decay (s). """ gamma = mode_decay_rate_into_transmissionline( mode_freq_GHz, mode_capacitance_fF, mode_capacitance_to_charge_line_fF, charge_line_impedance, ) return 1 / gamma
[docs] def calculate_t1_limit_floating_lumped_mode_decay_into_chargeline( mode_freq_GHz: float, cap_island_a_island_b_fF: float, cap_island_a_ground_fF: float, cap_island_a_line_fF: float, cap_island_b_ground_fF: float, cap_island_b_line_fF: float, charge_line_impedance: float = 50.0, ): """Wrapper around :func:`mode_decay_rate_into_transmissionline` for the case of a floating mode. In this case the coupling capacitance is an effective capacitance computed here from the capacitance newtork between two floating islands, a charge line and the ground plane. Args: mode_freq_GHz (float): (GHz) The frequency of the mode omega/2pi. cap_island_a_island_b_fF (float): (fF) The capacitance across the junction from island B to island A. cap_island_a_ground_fF (float): (fF) The capacitance of island A to ground. cap_island_b_ground_fF (float): (fF) The capacitance of island B to ground. cap_island_a_line_fF (float): (fF) The coupling capacitance of the charge line to island A. cap_island_b_line_fF (float): (fF) The coupling capacitance of the charge line to island B. charge_line_impedance (float): (Ohm) The impedance of the charge line. Returns: float: The T1 limit due to decay into charge line decay (s). """ cap_a = cap_island_a_ground_fF + cap_island_a_line_fF cap_b = cap_island_b_ground_fF + cap_island_b_line_fF cap_sum = (cap_a * cap_b) / (cap_a + cap_b) + cap_island_a_island_b_fF coupling_capacitance = np.abs( (cap_a * cap_island_b_line_fF - cap_b * cap_island_a_line_fF) / (cap_a + cap_b) ) gamma = mode_decay_rate_into_transmissionline( mode_freq_GHz, cap_sum, coupling_capacitance, charge_line_impedance ) return 1 / gamma