Eigenmode simulation of single qubit with readout resonator
[ ]:
%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_res(group=MINI_STUDY_GROUP)
RENDER_QISKIT_METAL = lambda design: render_qiskit_metal_design(design, gui)
opt_targets = ot.get_opt_targets_2qubits_resonator_coupler(
groups=[MINI_STUDY_GROUP],
opt_target_qubit_freq=True,
opt_target_qubit_anharm=True,
opt_target_resonator_freq=True,
opt_target_resonator_kappa=True,
opt_target_resonator_qubit_chi=True,
use_simple_resonator_qubit_chi_relation=True,
)
Creating design analysis objects
[ ]:
import time
import parameter_targets as pt
import plot_settings as ps
from qdesignoptimizer.design_analysis import DesignAnalysis, DesignAnalysisState
from qiskit_metal.qlibrary.couplers.coupled_line_tee import CoupledLineTee
from design import CoupledLineTee_mesh_names
from qdesignoptimizer.design_analysis_types import MeshingMap
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
)
# map for finer meshing
meshing_map = [
MeshingMap(component_class=CoupledLineTee, mesh_names=CoupledLineTee_mesh_names)
]
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,
meshing_map=meshing_map,
)
Optimization step
[ ]:
# number of runs of optimization and number of passes for simulation at each run
nbr_iterations = 15
group_passes = 8
delta_f = 0.001
for i in range(nbr_iterations):
design_analysis.update_nbr_passes(group_passes)
design_analysis.update_delta_f(delta_f)
design_analysis.optimize_target({}, {})
design_analysis.screenshot(gui=gui, run=i)
Results
Eigenmodes
[ ]:
design_analysis.get_eigenmode_results()
Cross Kerr
[ ]:
design_analysis.get_cross_kerr_matrix(iteration=-1)
Update parameters
[ ]:
design_analysis.overwrite_parameters()
Close
[ ]:
close_ansys()