def setup_class(cls): cls.qbt = None cls.qbt_type = ZeroPi cls.file_str = 'zeropi' cls.grid = scq.Grid1d(1, 2, 3) cls.op1_str = 'n_theta_operator' cls.op2_str = 'i_d_dphi_operator' cls.param_name = 'flux' cls.param_list = np.linspace(0, 0.5, 15)
def update_grid_qubit_params(self, **params): grid_min, grid_max = params["grid"] updated_grid = scq.Grid1d( min_val=grid_min, max_val=grid_max, pt_count=self.grid_defaults["grid_pt_count"], ) params.update({"grid": updated_grid}) self.qubit_current_params.update(params) del params["grid"] params["grid_min_val"] = grid_min params["grid_max_val"] = grid_max params["grid_pt_count"] = self.grid_defaults["grid_pt_count"] self.active_qubit.set_params(**params)
def get_zero_pi_hamiltonian(flux): phi_grid = scq.Grid1d(-6 * np.pi, 6 * np.pi, 200) EJ_CONST = 1 / 3.95 zero_pi = scq.ZeroPi(grid=phi_grid, EJ=EJ_CONST, EL=10.0**(-2), ECJ=1 / (8.0 * EJ_CONST), EC=None, ECS=10.0**(-3), ng=0.1, flux=flux, ncut=30) ham = zero_pi.hamiltonian() return ham
def initialize_qubit(self, qubit_name: str) -> None: """Initializes self.active_qubit to the user's choice using the chosen qubit's default parameters. Parameters ---------- qubit_name: """ QubitClass = getattr(scq, qubit_name) if self.qubit_change: init_params = QubitClass.default_params() if qubit_name == "ZeroPi" or qubit_name == "FullZeroPi": init_params["grid"] = scq.Grid1d( min_val=self.grid_defaults["grid_min_val"], max_val=self.grid_defaults["grid_max_val"], pt_count=self.grid_defaults["grid_pt_count"], ) self.qubit_current_params = init_params self.qubit_change = False self.active_qubit = QubitClass(**self.qubit_current_params)