Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

📚 The CoCalc Library - books, templates and other resources

132930 views
License: OTHER
1
#!/usr/bin/env python
2
#
3
# Copyright 2019 the original author or authors.
4
#
5
# Licensed under the Apache License, Version 2.0 (the "License");
6
# you may not use this file except in compliance with the License.
7
# You may obtain a copy of the License at
8
#
9
# http://www.apache.org/licenses/LICENSE-2.0
10
#
11
# Unless required by applicable law or agreed to in writing, software
12
# distributed under the License is distributed on an "AS IS" BASIS,
13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
# See the License for the specific language governing permissions and
15
# limitations under the License.
16
#
17
import pygame
18
from qiskit import BasicAer, execute
19
from qiskit.tools.visualization import plot_state_qsphere
20
21
from vqe_playground.utils.resources import load_image
22
23
24
class QSphere(pygame.sprite.Sprite):
25
"""Displays a qsphere"""
26
def __init__(self, circuit):
27
pygame.sprite.Sprite.__init__(self)
28
self.image = None
29
self.rect = None
30
self.set_circuit(circuit)
31
32
# def update(self):
33
# # Nothing yet
34
# a = 1
35
36
def set_circuit(self, circuit):
37
backend_sv_sim = BasicAer.get_backend('statevector_simulator')
38
job_sim = execute(circuit, backend_sv_sim)
39
result_sim = job_sim.result()
40
41
quantum_state = result_sim.get_statevector(circuit, decimals=3)
42
qsphere = plot_state_qsphere(quantum_state)
43
qsphere.savefig("vqe_playground/utils/data/bell_qsphere.png")
44
45
self.image, self.rect = load_image('bell_qsphere.png', -1)
46
self.rect.inflate_ip(-100, -100)
47
self.image.convert()
48
49