LogicalQ.Experiments ==================== .. py:module:: LogicalQ.Experiments Attributes ---------- .. autoapisummary:: LogicalQ.Experiments.DEFAULT Functions --------- .. autoapisummary:: LogicalQ.Experiments.execute_circuits LogicalQ.Experiments._basic_experiment_core LogicalQ.Experiments.circuit_scaling_experiment LogicalQ.Experiments.noise_scaling_experiment LogicalQ.Experiments.qec_cycle_efficiency_experiment LogicalQ.Experiments.qec_cycle_circuit_scaling_experiment LogicalQ.Experiments.qec_cycle_noise_scaling_experiment Module Contents --------------- .. py:data:: DEFAULT .. py:function:: execute_circuits(circuit_input, target=None, backend=None, hardware_model=None, noise_model=DEFAULT, noise_params=DEFAULT, coupling_map=DEFAULT, basis_gates=DEFAULT, method='statevector', optimization_level=0, shots=1024, memory=False, save_statevector=False, save_density_matrix=False, return_circuits_transpiled=False) General function to execute a circuit with smart handling of parameters, especially for circuits with QEC. The parameters target, backend, and hardware_model are the preferred input type to this function. If specified, noise_model, noise_params, coupling_map, and basis_gates will try to override anything specified in target, backend, or hardware_model. .. py:function:: _basic_experiment_core(task_id, circuit, noise_model, kwargs) Basic core experiment function useful for multiprocessing .. py:function:: circuit_scaling_experiment(circuit_input, noise_model_input=None, min_n_qubits=1, max_n_qubits=16, min_circuit_length=1, max_circuit_length=16, with_mp=True, save_dir=None, save_filename=None, **kwargs) .. py:function:: noise_scaling_experiment(circuit_input, noise_model_input, error_scan_keys, error_scan_val_lists, basis_gates=None, compute_exact=False, exact_method=None, with_mp=False, save_dir=None, save_filename=None, **kwargs) Simulates physical and logical circuits across a range of noise models. :param circuit_input: The circuit(s) to simulate. Accepts instances or lists of QuantumCircuit objects. :param noise_model_input: The noise model(s) to scan across. Accepts instances or lists of NoiseModel, or error dictionaries from which a NoiseModel can be constructed. :returns: all_data :raises NotImplementedError: if user attempts to provide noise_scaling_experiment with a circuit factory or noise model factory. .. py:function:: qec_cycle_efficiency_experiment(circuit_input, qecc, constraint_scan_keys, constraint_scan_val_lists, with_mp=False, save_dir=None, save_filename=None, **kwargs) .. py:function:: qec_cycle_circuit_scaling_experiment(circuit_input, qecc, constraint_model=None, min_n_qubits=1, max_n_qubits=16, min_circuit_length=1, max_circuit_length=16, with_mp=True, save_dir=None, save_filename=None, **kwargs) .. py:function:: qec_cycle_noise_scaling_experiment(circuit_input, noise_model_input, qecc, constraint_scan_keys, constraint_scan_val_lists, error_scan_keys, error_scan_val_lists, compute_exact=False, with_mp=False, save_dir=None, save_filename=None, **kwargs) An extension of the `noise_scaling_experiment` method specifically for comparisons with QEC cycles scheduled given constraint models. Data format: ``` all_data = [ # for each constraint model: { "circuit_physical": QuantumCircuit, "circuit_logical": LogicalCircuit, "constraint_model": dict, "results_physical": [ # for each circuit: { "circuit": circuit, "density_matrix_exact": density_matrix_exact, "statevector_exact": statevector_exact, "results": [ { "error_dict": error_dict, "result": result }, ] }, ], "results_logical": [ { "circuit": circuit, "density_matrix_exact": density_matrix_exact, "statevector_exact": statevector_exact, "results": [ { "error_dict": error_dict, "result": result }, ] }, ], }, ] ```