Source code for qiskit_aqt_provider._offline_sim.provider

# This code is part of Qiskit.
#
# (C) Copyright Alpine Quantum Technologies GmbH 2023
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0).
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.

from qiskit_aer import AerSimulator
from qiskit_aer.noise import NoiseModel, depolarizing_error

from qiskit_aqt_provider._offline_sim.resource import OfflineSimulatorResource, OfflineSimulatorResourceConfig


[docs] class OfflineSimulatorProvider: """A provider for offline simulators."""
[docs] def noisy(self) -> OfflineSimulatorResource: """Returns a noisy offline simulator resource.""" noise_model = NoiseModel(basis_gates=["r", "rz", "rxx"]) noise_model.add_all_qubit_quantum_error(depolarizing_error(0.003, 1), ["r"]) noise_model.add_all_qubit_quantum_error(depolarizing_error(0.01, 2), ["rxx"]) return OfflineSimulatorResource( config=OfflineSimulatorResourceConfig( name="offline_simulator_noise", number_of_ions=20, simulator=AerSimulator(method="statevector", noise_model=noise_model), ) )
[docs] def ideal(self) -> OfflineSimulatorResource: """Returns an ideal offline simulator resource.""" return OfflineSimulatorResource( config=OfflineSimulatorResourceConfig( name="offline_simulator_no_noise", number_of_ions=20, simulator=AerSimulator(method="statevector"), ) )