def quick_setup(self, filepath: str) -> None: """ Load a quick setup file and create all necessary components. Parameters ---------- filepath : str Location of the configuration file """ with open(filepath, "r") as cfg_file: cfg = hjson.loads(cfg_file.read()) model = Model() model.read_config(cfg["model"]) gen = Generator() gen.read_config(cfg["generator"]) single_gate_time = cfg["single_qubit_gate_time"] v2hz = cfg["v2hz"] instructions = [] sideband = cfg.pop("sideband", None) for gate_name, props in cfg["single_qubit_gates"].items(): target_qubit = model.subsystems[props["target_qubit"]] instr = Instruction( name=gate_name, t_start=0.0, t_end=single_gate_time, channels=[target_qubit.drive_line], ) instr.quick_setup( target_qubit.drive_line, target_qubit.params["freq"].get_value() / 2 / np.pi, single_gate_time, v2hz, sideband, ) instructions.append(instr) for gate_name, props in cfg["two_qubit_gates"].items(): qubit_1 = model.subsystems[props["qubit_1"]] qubit_2 = model.subsystems[props["qubit_2"]] instr = Instruction( name=gate_name, t_start=0.0, t_end=props["gate_time"], channels=[qubit_1.drive_line, qubit_2.drive_line], ) instr.quick_setup( qubit_1.drive_line, qubit_1.params["freq"].get_value() / 2 / np.pi, props["gate_time"], v2hz, sideband, ) instr.quick_setup( qubit_2.drive_line, qubit_2.params["freq"].get_value() / 2 / np.pi, props["gate_time"], v2hz, sideband, ) instructions.append(instr) self.pmap = ParameterMap(instructions, generator=gen, model=model)
def quick_setup(self, cfg) -> None: """ Load a quick setup cfg and create all necessary components. Parameters ---------- cfg : Dict Configuration options """ model = Model() model.read_config(cfg["model"]) gen = Generator() gen.read_config(cfg["generator"]) single_gate_time = cfg["single_qubit_gate_time"] v2hz = cfg["v2hz"] instructions = [] sideband = cfg.pop("sideband", None) for gate_name, props in cfg["single_qubit_gates"].items(): target_qubit = model.subsystems[props["qubits"]] instr = Instruction( name=props["name"], targets=[model.names.index(props["qubits"])], t_start=0.0, t_end=single_gate_time, channels=[target_qubit.drive_line], ) instr.quick_setup( target_qubit.drive_line, target_qubit.params["freq"].get_value() / 2 / np.pi, single_gate_time, v2hz, sideband, ) instructions.append(instr) for gate_name, props in cfg["two_qubit_gates"].items(): qubit_1 = model.subsystems[props["qubit_1"]] qubit_2 = model.subsystems[props["qubit_2"]] instr = Instruction( name=gate_name, targets=[ model.names.index(props["qubit_1"]), model.names.index(props["qubit_2"]), ], t_start=0.0, t_end=props["gate_time"], channels=[qubit_1.drive_line, qubit_2.drive_line], ) instr.quick_setup( qubit_1.drive_line, qubit_1.params["freq"].get_value() / 2 / np.pi, props["gate_time"], v2hz, sideband, ) instr.quick_setup( qubit_2.drive_line, qubit_2.params["freq"].get_value() / 2 / np.pi, props["gate_time"], v2hz, sideband, ) instructions.append(instr) self.pmap = ParameterMap(instructions, generator=gen, model=model)