Capacitive simulation of qubit decay in charge line

Optimize the T1 limit of the qubit as a function of its distance from a charge line.

NOTE: In order for the optimization to work properly, the design variable design_var_cl_pos_x_qubit refers to the relative position between the charge line and the edge of the transmon’s pocket. Check the design file to see how it is parsed when creating the design.

[ ]:
%load_ext autoreload
%autoreload 2

Rendering the design

[ ]:
from chip_initialization import create_chip_and_gui

design, gui = create_chip_and_gui()

from design import render_qiskit_metal_design

render_qiskit_metal_design(design, gui)

Creating the study and optimization targets

[ ]:
import names as n
import mini_studies as ms
import optimization_targets as ot
[ ]:
MINI_STUDY_GROUP = n.NBR_1
MINI_STUDY = ms.get_mini_study_qb_charge_line(group=MINI_STUDY_GROUP)
RENDER_QISKIT_METAL = lambda design, **kwargs: render_qiskit_metal_design(
    design, gui, **kwargs
)

opt_targets = ot.get_opt_targets_qb_charge_line(group=MINI_STUDY_GROUP)

Creating design analysis objects

[ ]:
import time
import parameter_targets as pt
import plot_settings as ps

from qdesignoptimizer.design_analysis import DesignAnalysis, DesignAnalysisState
from qdesignoptimizer.utils.utils import get_save_path

# Closing Ansys hfss
from qdesignoptimizer.utils.utils import close_ansys

close_ansys()
[ ]:
design_analysis_state = DesignAnalysisState(
    design, RENDER_QISKIT_METAL, pt.PARAM_TARGETS
)

design_analysis = DesignAnalysis(
    design_analysis_state,
    mini_study=MINI_STUDY,
    opt_targets=opt_targets,
    save_path=get_save_path("out/", n.CHIP_NAME),
    update_design_variables=False,
    plot_settings=ps.PLOT_SETTINGS_CHARGE_LINE_DECAY,
)

Optimization step

[ ]:
# number of runs of optimization and number of passes for simulation at each run
nbr_iterations = 10
group_passes_cap = 10

for i in range(nbr_iterations):
    design_analysis.update_nbr_passes_capacitance_ministudies(group_passes_cap)
    design_analysis.optimize_target({}, {})
    design_analysis.screenshot(gui=gui, run=i)

Update parameters

[ ]:
design_analysis.overwrite_parameters()

Close

[ ]:
close_ansys()

Example result

image info

[ ]: