Simulator
QuICT.simulation.Simulator ¶
Simulator(device: str = 'CPU', backend: str = 'state_vector', precision: str = 'double', circuit_record: bool = False, amplitude_record: bool = False, output_path: str = None, hidden_empty_qubits: bool = False, **options)
The high-level simulation class, including all QuICT simulator mode.
Parameters:
-
device(str, default:'CPU') –The device of the simulator. One of [CPU, GPU]
-
backend(str, default:'state_vector') –The backend for the simulator. One of [unitary, state_vector, density_matrix]
-
precision(str, default:'double') –The precision of simulator, one of [single, double], default to double.
-
circuit_record(bool, default:False) –whether record circuit's qasm in output, default to False.
-
amplitude_record(bool, default:False) –whether record the amplitude of qubits, default to False.
-
output_path(str, default:None) –The output path for simulation result, default to None.
-
**options(dict, default:{}) –other optional parameters for the simulator. state_vector: [gpu_device_id] (only for gpu) density_matrix: [accumulated_mode] unitary: None
Source code in QuICT/simulation/simulator.py
run ¶
run(circuit: Union[Circuit, ndarray], shots: int = 1, quantum_state: ndarray = None, quantum_machine_model: Union[NoiseModel, VirtualQuantumMachine] = None, use_previous: bool = False)
start simulator with given circuit
Parameters:
-
circuit(Union[Circuit, ndarray]) –The quantum Circuit or Unitary Matrix.
-
shots(int, default:1) –The sample times for current Circuit.
-
quantum_state(ndarray, default:None) –The initial Quantum State Vector/Density Matrix.
-
quantum_machine_model(Union[NoiseModel, VirtualQuantumMachine], default:None) –The model of quantum machine
-
use_previous(bool, default:False) –Using the previous state vector. Defaults to False.
Yields:
-
–
[dict]: The Result Dict.