def __init__(self): configuration = PulseBackendConfiguration( backend_name='fake_openpulse_2q', backend_version='0.0.0', n_qubits=2, meas_levels=[0, 1, 2], basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], simulator=False, local=True, conditional=True, open_pulse=True, memory=False, max_shots=65536, gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], coupling_map=[[1, 0]], n_registers=2, n_uchannels=2, u_channel_lo=[[UchannelLO(q=0, scale=1. + 0.j)], [ UchannelLO(q=0, scale=-1. + 0.j), UchannelLO(q=1, scale=1. + 0.j) ]], meas_level=[1, 2], qubit_lo_range=[[4.5, 5.5], [4.5, 5.5]], meas_lo_range=[[6.0, 7.0], [6.0, 7.0]], dt=1.3333, dtm=10.5, rep_times=[100., 250., 500., 1000.], meas_map=[[0], [1, 2]], channel_bandwidth=[[-0.2, 0.4], [-0.3, 0.3], [-0.3, 0.3], [-0.02, 0.02], [-0.02, 0.02], [-0.02, 0.02]], meas_kernels=['kernel1'], discriminators=['max_1Q_fidelity'], acquisition_latency=[[100, 100], [100, 100]], conditional_latency=[[100, 1000], [1000, 100], [100, 1000], [1000, 100], [100, 1000], [1000, 100]]) self._defaults = PulseDefaults(qubit_freq_est=[4.9, 5.0], meas_freq_est=[6.5, 6.6], buffer=10, pulse_library=[], cmd_def=[]) super().__init__(configuration)
def __init__(self): configuration = PulseBackendConfiguration( backend_name='fake_openpulse_2q', backend_version='0.0.0', n_qubits=2, meas_levels=[0, 1, 2], basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], simulator=False, local=True, conditional=True, open_pulse=True, memory=False, max_shots=65536, gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], coupling_map=[[0, 1]], n_registers=2, n_uchannels=2, u_channel_lo=[ [UchannelLO(q=0, scale=1. + 0.j)], [UchannelLO(q=0, scale=-1. + 0.j), UchannelLO(q=1, scale=1. + 0.j)] ], qubit_lo_range=[[4.5, 5.5], [4.5, 5.5]], meas_lo_range=[[6.0, 7.0], [6.0, 7.0]], dt=1.3333, dtm=10.5, rep_times=[100, 250, 500, 1000], meas_map=[[0, 1]], channel_bandwidth=[ [-0.2, 0.4], [-0.3, 0.3], [-0.3, 0.3], [-0.02, 0.02], [-0.02, 0.02], [-0.02, 0.02] ], meas_kernels=['kernel1'], discriminators=['max_1Q_fidelity'], acquisition_latency=[[100, 100], [100, 100]], conditional_latency=[ [100, 1000], [1000, 100], [100, 1000], [1000, 100], [100, 1000], [1000, 100] ], hamiltonian={ 'h_str': ["np.pi*(2*v0-alpha0)*O0", "np.pi*alpha0*O0*O0", "2*np.pi*r*X0||D0", "2*np.pi*r*X0||U1", "2*np.pi*r*X1||U0", "np.pi*(2*v1-alpha1)*O1", "np.pi*alpha1*O1*O1", "2*np.pi*r*X1||D1", "2*np.pi*j*(Sp0*Sm1+Sm0*Sp1)"], 'description': "A hamiltonian for a mocked 2Q device, with 1Q and 2Q terms.", 'qub': {'0': 3, '1': 3}, 'vars': {'v0': 5.00, 'v1': 5.1, 'j': 0.01, 'r': 0.02, 'alpha0': -0.33, 'alpha1': -0.33} }, channels={ 'acquire0': { 'operates': {'qubits': [0]}, 'purpose': 'acquire', 'type': 'acquire' }, 'acquire1': { 'operates': {'qubits': [1]}, 'purpose': 'acquire', 'type': 'acquire' }, 'd0': { 'operates': {'qubits': [0]}, 'purpose': 'drive', 'type': 'drive' }, 'd1': { 'operates': {'qubits': [1]}, 'purpose': 'drive', 'type': 'drive' }, 'm0': { 'type': 'measure', 'purpose': 'measure', 'operates': {'qubits': [0]} }, 'm1': { 'type': 'measure', 'purpose': 'measure', 'operates': {'qubits': [1]} }, 'u0': { 'operates': {'qubits': [0, 1]}, 'purpose': 'cross-resonance', 'type': 'control' }, 'u1': { 'operates': {'qubits': [1, 0]}, 'purpose': 'cross-resonance', 'type': 'control' } } ) self._defaults = PulseDefaults.from_dict({ 'qubit_freq_est': [4.9, 5.0], 'meas_freq_est': [6.5, 6.6], 'buffer': 10, 'pulse_library': [ { 'name': 'test_pulse_1', 'samples': [[0.0, 0.0], [0.0, 0.1]] }, { 'name': 'test_pulse_2', 'samples': [[0.0, 0.0], [0.0, 0.1], [0.0, 1.0]] }, { 'name': 'test_pulse_3', 'samples': [[0.0, 0.0], [0.0, 0.1], [0.0, 1.0], [0.5, 0.0]] }, { 'name': 'test_pulse_4', 'samples': 7 * [ [0.0, 0.0], [0.0, 0.1], [0.0, 1.0], [0.5, 0.0] ] } ], 'cmd_def': [ Command.from_dict({ 'name': 'u1', 'qubits': [0], 'sequence': [ PulseQobjInstruction(name='fc', ch='d0', t0=0, phase='-P0').to_dict() ]}).to_dict(), Command.from_dict({ 'name': 'u1', 'qubits': [1], 'sequence': [ PulseQobjInstruction(name='fc', ch='d1', t0=0, phase='-P0').to_dict() ]}).to_dict(), Command.from_dict({ 'name': 'u2', 'qubits': [0], 'sequence': [ PulseQobjInstruction(name='fc', ch='d0', t0=0, phase='-P1').to_dict(), PulseQobjInstruction(name='test_pulse_4', ch='d0', t0=0).to_dict(), PulseQobjInstruction(name='fc', ch='d0', t0=0, phase='-P0').to_dict() ]}).to_dict(), Command.from_dict({ 'name': 'u2', 'qubits': [1], 'sequence': [ PulseQobjInstruction(name='fc', ch='d1', t0=0, phase='-P1').to_dict(), PulseQobjInstruction(name='test_pulse_4', ch='d1', t0=0).to_dict(), PulseQobjInstruction(name='fc', ch='d1', t0=0, phase='-P0').to_dict() ]}).to_dict(), Command.from_dict({ 'name': 'u3', 'qubits': [0], 'sequence': [ PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0).to_dict() ]}).to_dict(), Command.from_dict({ 'name': 'u3', 'qubits': [1], 'sequence': [ PulseQobjInstruction(name='test_pulse_3', ch='d1', t0=0).to_dict() ]}).to_dict(), Command.from_dict({ 'name': 'cx', 'qubits': [0, 1], 'sequence': [ PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0).to_dict(), PulseQobjInstruction(name='test_pulse_2', ch='u0', t0=10).to_dict(), PulseQobjInstruction(name='test_pulse_1', ch='d1', t0=20).to_dict(), PulseQobjInstruction(name='fc', ch='d1', t0=20, phase=2.1).to_dict() ]}).to_dict(), Command.from_dict({ 'name': 'ParametrizedGate', 'qubits': [0, 1], 'sequence': [ PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0).to_dict(), PulseQobjInstruction(name='test_pulse_2', ch='u0', t0=10).to_dict(), PulseQobjInstruction(name='pv', ch='d1', t0=2, val='cos(P2)').to_dict(), PulseQobjInstruction(name='test_pulse_1', ch='d1', t0=20).to_dict(), PulseQobjInstruction(name='fc', ch='d1', t0=20, phase=2.1).to_dict() ]}).to_dict(), Command.from_dict({ 'name': 'measure', 'qubits': [0, 1], 'sequence': [ PulseQobjInstruction(name='test_pulse_1', ch='m0', t0=0).to_dict(), PulseQobjInstruction(name='test_pulse_1', ch='m1', t0=0).to_dict(), PulseQobjInstruction(name='acquire', duration=10, t0=0, qubits=[0, 1], memory_slot=[0, 1]).to_dict() ]}).to_dict() ] }) mock_time = datetime.datetime.now() dt = 1.3333 # pylint: disable=invalid-name self._properties = BackendProperties( backend_name='fake_openpulse_2q', backend_version='0.0.0', last_update_date=mock_time, qubits=[ [Nduv(date=mock_time, name='T1', unit='µs', value=71.9500421005539), Nduv(date=mock_time, name='frequency', unit='MHz', value=4919.96800692)], [Nduv(date=mock_time, name='T1', unit='µs', value=81.9500421005539), Nduv(date=mock_time, name='frequency', unit='GHz', value=5.01996800692)] ], gates=[ Gate(gate='u1', qubits=[0], parameters=[ Nduv(date=mock_time, name='gate_error', unit='', value=0.06), Nduv(date=mock_time, name='gate_length', unit='ns', value=0.)]), Gate(gate='u3', qubits=[0], parameters=[ Nduv(date=mock_time, name='gate_error', unit='', value=0.06), Nduv(date=mock_time, name='gate_length', unit='ns', value=2 * dt)]), Gate(gate='u3', qubits=[1], parameters=[ Nduv(date=mock_time, name='gate_error', unit='', value=0.06), Nduv(date=mock_time, name='gate_length', unit='ns', value=4 * dt)]), Gate(gate='cx', qubits=[0, 1], parameters=[ Nduv(date=mock_time, name='gate_error', unit='', value=1.0), Nduv(date=mock_time, name='gate_length', unit='ns', value=22 * dt)]), ], general=[] ) super().__init__(configuration)
def __init__(self): configuration = PulseBackendConfiguration( backend_name='fake_openpulse_2q', backend_version='0.0.0', n_qubits=2, meas_levels=[0, 1, 2], basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], simulator=False, local=True, conditional=True, open_pulse=True, memory=False, max_shots=65536, gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], coupling_map=[[1, 0]], n_registers=2, n_uchannels=2, u_channel_lo=[ [UchannelLO(q=0, scale=1. + 0.j)], [UchannelLO(q=0, scale=-1. + 0.j), UchannelLO(q=1, scale=1. + 0.j)] ], meas_level=[1, 2], qubit_lo_range=[[4.5, 5.5], [4.5, 5.5]], meas_lo_range=[[6.0, 7.0], [6.0, 7.0]], dt=1.3333, dtm=10.5, rep_times=[100, 250, 500, 1000], meas_map=[[0, 1]], channel_bandwidth=[ [-0.2, 0.4], [-0.3, 0.3], [-0.3, 0.3], [-0.02, 0.02], [-0.02, 0.02], [-0.02, 0.02] ], meas_kernels=['kernel1'], discriminators=['max_1Q_fidelity'], acquisition_latency=[[100, 100], [100, 100]], conditional_latency=[ [100, 1000], [1000, 100], [100, 1000], [1000, 100], [100, 1000], [1000, 100] ] ) self._defaults = PulseDefaults( qubit_freq_est=[4.9, 5.0], meas_freq_est=[6.5, 6.6], buffer=10, pulse_library=[PulseLibraryItem(name='test_pulse_1', samples=[0.j, 0.1j]), PulseLibraryItem(name='test_pulse_2', samples=[0.j, 0.1j, 1j]), PulseLibraryItem(name='test_pulse_3', samples=[0.j, 0.1j, 1j, 0.5 + 0j])], cmd_def=[Command(name='u1', qubits=[0], sequence=[PulseQobjInstruction(name='fc', ch='d0', t0=0, phase='-P1*np.pi')]), Command(name='u3', qubits=[0], sequence=[PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0)]), Command(name='u3', qubits=[1], sequence=[PulseQobjInstruction(name='test_pulse_3', ch='d1', t0=0)]), Command(name='cx', qubits=[0, 1], sequence=[PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0), PulseQobjInstruction(name='test_pulse_2', ch='u0', t0=10), PulseQobjInstruction(name='pv', ch='d1', t0=2, val='cos(P2)'), PulseQobjInstruction(name='test_pulse_1', ch='d1', t0=20), PulseQobjInstruction(name='fc', ch='d1', t0=20, phase=2.1)]), Command(name='measure', qubits=[0], sequence=[PulseQobjInstruction(name='test_pulse_1', ch='m0', t0=0), PulseQobjInstruction(name='acquire', duration=10, t0=0, qubits=[0], memory_slot=[0])])] ) super().__init__(configuration)
def __init__(self): configuration = PulseBackendConfiguration( backend_name='fake_openpulse_3q', backend_version='0.0.0', n_qubits=3, meas_levels=[0, 1, 2], basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], simulator=False, local=True, conditional=True, open_pulse=True, memory=False, max_shots=65536, gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], coupling_map=[[0, 1], [1, 2]], n_registers=3, n_uchannels=3, u_channel_lo=[ [UchannelLO(q=0, scale=1. + 0.j)], [UchannelLO(q=0, scale=-1. + 0.j), UchannelLO(q=1, scale=1. + 0.j)], [UchannelLO(q=0, scale=1. + 0.j)] ], qubit_lo_range=[[4.5, 5.5], [4.5, 5.5], [4.5, 5.5]], meas_lo_range=[[6.0, 7.0], [6.0, 7.0], [6.0, 7.0]], dt=1.3333, dtm=10.5, rep_times=[100, 250, 500, 1000], meas_map=[[0, 1, 2]], channel_bandwidth=[ [-0.2, 0.4], [-0.3, 0.3], [-0.3, 0.3], [-0.02, 0.02], [-0.02, 0.02], [-0.02, 0.02], [-0.2, 0.4], [-0.3, 0.3], [-0.3, 0.3] ], meas_kernels=['kernel1'], discriminators=['max_1Q_fidelity'], acquisition_latency=[[100, 100], [100, 100], [100, 100]], conditional_latency=[ [100, 1000], [1000, 100], [100, 1000], [100, 1000], [1000, 100], [100, 1000], [1000, 100], [100, 1000], [1000, 100] ], channels={ 'acquire0': { 'type': 'acquire', 'purpose': 'acquire', 'operates': {'qubits': [0]} }, 'acquire1': { 'type': 'acquire', 'purpose': 'acquire', 'operates': {'qubits': [1]} }, 'acquire2': { 'type': 'acquire', 'purpose': 'acquire', 'operates': {'qubits': [2]} }, 'd0': { 'type': 'drive', 'purpose': 'drive', 'operates': {'qubits': [0]} }, 'd1': { 'type': 'drive', 'purpose': 'drive', 'operates': {'qubits': [1]} }, 'd2': { 'type': 'drive', 'purpose': 'drive', 'operates': {'qubits': [2]} }, 'm0': { 'type': 'measure', 'purpose': 'measure', 'operates': {'qubits': [0]} }, 'm1': { 'type': 'measure', 'purpose': 'measure', 'operates': {'qubits': [1]} }, 'm2': { 'type': 'measure', 'purpose': 'measure', 'operates': {'qubits': [2]} }, 'u0': { 'type': 'control', 'purpose': 'cross-resonance', 'operates': {'qubits': [0, 1]} }, 'u1': { 'type': 'control', 'purpose': 'cross-resonance', 'operates': {'qubits': [1, 0]} }, 'u2': { 'type': 'control', 'purpose': 'cross-resonance', 'operates': {'qubits': [2, 1]} } } ) self._defaults = PulseDefaults.from_dict({ 'qubit_freq_est': [4.9, 5.0, 4.8], 'meas_freq_est': [6.5, 6.6, 6.4], 'buffer': 10, 'pulse_library': [ { 'name': 'test_pulse_1', 'samples': [[0.0, 0.0], [0.0, 0.1]] }, { 'name': 'test_pulse_2', 'samples': [[0.0, 0.0], [0.0, 0.1], [0.0, 1.0]] }, { 'name': 'test_pulse_3', 'samples': [[0.0, 0.0], [0.0, 0.1], [0.0, 1.0], [0.5, 0.0]] }, { 'name': 'test_pulse_4', 'samples': 7 * [ [0.0, 0.0], [0.0, 0.1], [0.0, 1.0], [0.5, 0.0] ] } ], 'cmd_def': [ Command.from_dict({ 'name': 'u1', 'qubits': [0], 'sequence': [ PulseQobjInstruction(name='fc', ch='d0', t0=0, phase='-P0').to_dict()]}).to_dict(), Command.from_dict({ 'name': 'u1', 'qubits': [1], 'sequence': [ PulseQobjInstruction(name='fc', ch='d1', t0=0, phase='-P0').to_dict()]}).to_dict(), Command.from_dict({ 'name': 'u1', 'qubits': [2], 'sequence': [ PulseQobjInstruction(name='fc', ch='d2', t0=0, phase='-P0').to_dict()]}).to_dict(), Command.from_dict({ 'name': 'u2', 'qubits': [0], 'sequence': [ PulseQobjInstruction(name='fc', ch='d0', t0=0, phase='-P1').to_dict(), PulseQobjInstruction(name='test_pulse_4', ch='d0', t0=0).to_dict(), PulseQobjInstruction(name='fc', ch='d0', t0=0, phase='-P0').to_dict()]}).to_dict(), Command.from_dict({ 'name': 'u2', 'qubits': [1], 'sequence': [ PulseQobjInstruction(name='fc', ch='d1', t0=0, phase='-P1').to_dict(), PulseQobjInstruction(name='test_pulse_4', ch='d1', t0=0).to_dict(), PulseQobjInstruction(name='fc', ch='d1', t0=0, phase='-P0').to_dict()]}).to_dict(), Command.from_dict({ 'name': 'u2', 'qubits': [2], 'sequence': [ PulseQobjInstruction(name='test_pulse_3', ch='d2', t0=0).to_dict(), PulseQobjInstruction(name='fc', ch='d2', t0=0, phase='-P0').to_dict()]}).to_dict(), Command.from_dict({ 'name': 'u3', 'qubits': [0], 'sequence': [ PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0).to_dict()]}).to_dict(), Command.from_dict({ 'name': 'u3', 'qubits': [1], 'sequence': [ PulseQobjInstruction(name='test_pulse_3', ch='d1', t0=0).to_dict()]}).to_dict(), Command.from_dict({ 'name': 'cx', 'qubits': [0, 1], 'sequence': [ PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0).to_dict(), PulseQobjInstruction(name='test_pulse_2', ch='u0', t0=10).to_dict(), PulseQobjInstruction(name='test_pulse_1', ch='d1', t0=20).to_dict(), PulseQobjInstruction(name='fc', ch='d1', t0=20, phase=2.1).to_dict()]}).to_dict(), Command.from_dict({ 'name': 'cx', 'qubits': [1, 2], 'sequence': [ PulseQobjInstruction(name='test_pulse_1', ch='d1', t0=0).to_dict(), PulseQobjInstruction(name='test_pulse_2', ch='u1', t0=10).to_dict(), PulseQobjInstruction(name='test_pulse_1', ch='d2', t0=20).to_dict(), PulseQobjInstruction(name='fc', ch='d2', t0=20, phase=2.1).to_dict()]}).to_dict(), Command.from_dict({ 'name': 'ParametrizedGate', 'qubits': [0, 1], 'sequence': [ PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0).to_dict(), PulseQobjInstruction(name='test_pulse_2', ch='u0', t0=10).to_dict(), PulseQobjInstruction(name='pv', ch='d1', t0=2, val='cos(P2)').to_dict(), PulseQobjInstruction(name='test_pulse_1', ch='d1', t0=20).to_dict(), PulseQobjInstruction(name='fc', ch='d1', t0=20, phase=2.1).to_dict()]}).to_dict(), Command.from_dict({ 'name': 'measure', 'qubits': [0, 1, 2], 'sequence': [ PulseQobjInstruction(name='test_pulse_1', ch='m0', t0=0).to_dict(), PulseQobjInstruction(name='test_pulse_1', ch='m1', t0=0).to_dict(), PulseQobjInstruction(name='test_pulse_1', ch='m2', t0=0).to_dict(), PulseQobjInstruction(name='acquire', duration=10, t0=0, qubits=[0, 1, 2], memory_slot=[0, 1, 2]).to_dict()] }).to_dict() ] }) super().__init__(configuration)
def _build_conf(self) -> PulseBackendConfiguration: """Build configuration for backend.""" h_str = [ ",".join([ "_SUM[i,0,{n_qubits}".format(n_qubits=self.n_qubits), "wq{i}/2*(I{i}-Z{i})]" ]), ",".join([ "_SUM[i,0,{n_qubits}".format(n_qubits=self.n_qubits), "omegad{i}*X{i}||D{i}]" ]) ] variables = [] for (qubit1, qubit2) in self.coupling_map: h_str += [ "jq{q1}q{q2}*Sp{q1}*Sm{q2}".format(q1=qubit1, q2=qubit2), "jq{q1}q{q2}*Sm{q1}*Sp{q2}".format(q1=qubit1, q2=qubit2) ] variables.append(("jq{q1}q{q2}".format(q1=qubit1, q2=qubit2), 0)) for i, (qubit1, qubit2) in enumerate(self.coupling_map): h_str.append("omegad{0}*X{1}||U{2}".format(qubit1, qubit2, i)) for i in range(self.n_qubits): variables += [("omegad{}".format(i), 0), ("wq{}".format(i), 0)] hamiltonian = { 'h_str': h_str, 'description': 'Hamiltonian description for {} qubits backend.'.format( self.n_qubits), 'qub': {i: 2 for i in range(self.n_qubits)}, 'vars': dict(variables) } meas_map = [list(range(self.n_qubits))] qubit_lo_range = [[freq - 0.5, freq + 0.5] for freq in self.qubit_frequency] meas_lo_range = [[6.5, 7.5] for _ in range(self.n_qubits)] u_channel_lo = [[UchannelLO(q=i, scale=1.0 + 0.0j)] for i in range(len(self.coupling_map))] return PulseBackendConfiguration(backend_name=self.name, backend_version=self.version, n_qubits=self.n_qubits, meas_levels=[0, 1, 2], basis_gates=self.basis_gates, simulator=False, local=True, conditional=True, open_pulse=True, memory=False, max_shots=65536, gates=[], coupling_map=self.coupling_map, n_registers=self.n_qubits, n_uchannels=self.n_qubits, u_channel_lo=u_channel_lo, meas_level=[1, 2], qubit_lo_range=qubit_lo_range, meas_lo_range=meas_lo_range, dt=self.dt, dtm=10.5, rep_times=[1000], meas_map=meas_map, channel_bandwidth=[], meas_kernels=['kernel1'], discriminators=['max_1Q_fidelity'], acquisition_latency=[], conditional_latency=[], hamiltonian=hamiltonian)
def __init__(self): configuration = PulseBackendConfiguration( backend_name="fake_openpulse_3q", backend_version="0.0.0", n_qubits=3, meas_levels=[0, 1, 2], basis_gates=["u1", "u2", "u3", "cx", "id"], simulator=False, local=True, conditional=True, open_pulse=True, memory=False, max_shots=65536, gates=[GateConfig(name="TODO", parameters=[], qasm_def="TODO")], coupling_map=[[0, 1], [1, 2]], n_registers=3, n_uchannels=3, u_channel_lo=[ [UchannelLO(q=0, scale=1.0 + 0.0j)], [ UchannelLO(q=0, scale=-1.0 + 0.0j), UchannelLO(q=1, scale=1.0 + 0.0j) ], [UchannelLO(q=0, scale=1.0 + 0.0j)], ], qubit_lo_range=[[4.5, 5.5], [4.5, 5.5], [4.5, 5.5]], meas_lo_range=[[6.0, 7.0], [6.0, 7.0], [6.0, 7.0]], dt=1.3333, dtm=10.5, rep_times=[100, 250, 500, 1000], meas_map=[[0, 1, 2]], channel_bandwidth=[ [-0.2, 0.4], [-0.3, 0.3], [-0.3, 0.3], [-0.02, 0.02], [-0.02, 0.02], [-0.02, 0.02], [-0.2, 0.4], [-0.3, 0.3], [-0.3, 0.3], ], meas_kernels=["kernel1"], discriminators=["max_1Q_fidelity"], acquisition_latency=[[100, 100], [100, 100], [100, 100]], conditional_latency=[ [100, 1000], [1000, 100], [100, 1000], [100, 1000], [1000, 100], [100, 1000], [1000, 100], [100, 1000], [1000, 100], ], channels={ "acquire0": { "type": "acquire", "purpose": "acquire", "operates": { "qubits": [0] } }, "acquire1": { "type": "acquire", "purpose": "acquire", "operates": { "qubits": [1] } }, "acquire2": { "type": "acquire", "purpose": "acquire", "operates": { "qubits": [2] } }, "d0": { "type": "drive", "purpose": "drive", "operates": { "qubits": [0] } }, "d1": { "type": "drive", "purpose": "drive", "operates": { "qubits": [1] } }, "d2": { "type": "drive", "purpose": "drive", "operates": { "qubits": [2] } }, "m0": { "type": "measure", "purpose": "measure", "operates": { "qubits": [0] } }, "m1": { "type": "measure", "purpose": "measure", "operates": { "qubits": [1] } }, "m2": { "type": "measure", "purpose": "measure", "operates": { "qubits": [2] } }, "u0": { "type": "control", "purpose": "cross-resonance", "operates": { "qubits": [0, 1] }, }, "u1": { "type": "control", "purpose": "cross-resonance", "operates": { "qubits": [1, 0] }, }, "u2": { "type": "control", "purpose": "cross-resonance", "operates": { "qubits": [2, 1] }, }, }, ) self._defaults = PulseDefaults.from_dict({ "qubit_freq_est": [4.9, 5.0, 4.8], "meas_freq_est": [6.5, 6.6, 6.4], "buffer": 10, "pulse_library": [ { "name": "x90p_d0", "samples": 2 * [0.1 + 0j] }, { "name": "x90p_d1", "samples": 2 * [0.1 + 0j] }, { "name": "x90p_d2", "samples": 2 * [0.1 + 0j] }, { "name": "x90m_d0", "samples": 2 * [-0.1 + 0j] }, { "name": "x90m_d1", "samples": 2 * [-0.1 + 0j] }, { "name": "x90m_d2", "samples": 2 * [-0.1 + 0j] }, { "name": "y90p_d0", "samples": 2 * [0.1j] }, { "name": "y90p_d1", "samples": 2 * [0.1j] }, { "name": "y90p_d2", "samples": 2 * [0.1j] }, { "name": "xp_d0", "samples": 2 * [0.2 + 0j] }, { "name": "ym_d0", "samples": 2 * [-0.2j] }, { "name": "xp_d1", "samples": 2 * [0.2 + 0j] }, { "name": "ym_d1", "samples": 2 * [-0.2j] }, { "name": "cr90p_u0", "samples": 9 * [0.1 + 0j] }, { "name": "cr90m_u0", "samples": 9 * [-0.1 + 0j] }, { "name": "cr90p_u1", "samples": 9 * [0.1 + 0j] }, { "name": "cr90m_u1", "samples": 9 * [-0.1 + 0j] }, { "name": "measure_m0", "samples": 10 * [0.1 + 0j] }, { "name": "measure_m1", "samples": 10 * [0.1 + 0j] }, { "name": "measure_m2", "samples": 10 * [0.1 + 0j] }, ], "cmd_def": [ Command.from_dict({ "name": "u1", "qubits": [0], "sequence": [ PulseQobjInstruction(name="fc", ch="d0", t0=0, phase="-P0").to_dict() ], }).to_dict(), Command.from_dict({ "name": "u1", "qubits": [1], "sequence": [ PulseQobjInstruction(name="fc", ch="d1", t0=0, phase="-P0").to_dict() ], }).to_dict(), Command.from_dict({ "name": "u1", "qubits": [2], "sequence": [ PulseQobjInstruction(name="fc", ch="d2", t0=0, phase="-P0").to_dict() ], }).to_dict(), Command.from_dict({ "name": "u2", "qubits": [0], "sequence": [ PulseQobjInstruction(name="fc", ch="d0", t0=0, phase="-P1").to_dict(), PulseQobjInstruction(name="y90p_d0", ch="d0", t0=0).to_dict(), PulseQobjInstruction(name="fc", ch="d0", t0=2, phase="-P0").to_dict(), ], }).to_dict(), Command.from_dict({ "name": "u2", "qubits": [1], "sequence": [ PulseQobjInstruction(name="fc", ch="d1", t0=0, phase="-P1").to_dict(), PulseQobjInstruction(name="y90p_d1", ch="d1", t0=0).to_dict(), PulseQobjInstruction(name="fc", ch="d1", t0=2, phase="-P0").to_dict(), ], }).to_dict(), Command.from_dict({ "name": "u2", "qubits": [2], "sequence": [ PulseQobjInstruction(name="fc", ch="d2", t0=0, phase="-P1").to_dict(), PulseQobjInstruction(name="y90p_d2", ch="d2", t0=0).to_dict(), PulseQobjInstruction(name="fc", ch="d2", t0=2, phase="-P0").to_dict(), ], }).to_dict(), Command.from_dict({ "name": "u3", "qubits": [0], "sequence": [ PulseQobjInstruction(name="fc", ch="d0", t0=0, phase="-P2").to_dict(), PulseQobjInstruction(name="x90p_d0", ch="d0", t0=0).to_dict(), PulseQobjInstruction(name="fc", ch="d0", t0=2, phase="-P0").to_dict(), PulseQobjInstruction(name="x90m_d0", ch="d0", t0=2).to_dict(), PulseQobjInstruction(name="fc", ch="d0", t0=4, phase="-P1").to_dict(), ], }).to_dict(), Command.from_dict({ "name": "u3", "qubits": [1], "sequence": [ PulseQobjInstruction(name="fc", ch="d1", t0=0, phase="-P2").to_dict(), PulseQobjInstruction(name="x90p_d1", ch="d1", t0=0).to_dict(), PulseQobjInstruction(name="fc", ch="d1", t0=2, phase="-P0").to_dict(), PulseQobjInstruction(name="x90m_d1", ch="d1", t0=2).to_dict(), PulseQobjInstruction(name="fc", ch="d1", t0=4, phase="-P1").to_dict(), ], }).to_dict(), Command.from_dict({ "name": "u3", "qubits": [2], "sequence": [ PulseQobjInstruction(name="fc", ch="d2", t0=0, phase="-P2").to_dict(), PulseQobjInstruction(name="x90p_d2", ch="d2", t0=0).to_dict(), PulseQobjInstruction(name="fc", ch="d2", t0=2, phase="-P0").to_dict(), PulseQobjInstruction(name="x90m_d2", ch="d2", t0=2).to_dict(), PulseQobjInstruction(name="fc", ch="d2", t0=4, phase="-P1").to_dict(), ], }).to_dict(), Command.from_dict({ "name": "cx", "qubits": [0, 1], "sequence": [ PulseQobjInstruction(name="fc", ch="d0", t0=0, phase=1.57).to_dict(), PulseQobjInstruction(name="ym_d0", ch="d0", t0=0).to_dict(), PulseQobjInstruction(name="xp_d0", ch="d0", t0=11).to_dict(), PulseQobjInstruction(name="x90p_d1", ch="d1", t0=0).to_dict(), PulseQobjInstruction(name="cr90p_u0", ch="u0", t0=2).to_dict(), PulseQobjInstruction(name="cr90m_u0", ch="u0", t0=13).to_dict(), ], }).to_dict(), Command.from_dict({ "name": "cx", "qubits": [1, 2], "sequence": [ PulseQobjInstruction(name="fc", ch="d1", t0=0, phase=1.57).to_dict(), PulseQobjInstruction(name="ym_d1", ch="d1", t0=0).to_dict(), PulseQobjInstruction(name="xp_d1", ch="d1", t0=11).to_dict(), PulseQobjInstruction(name="x90p_d2", ch="d2", t0=0).to_dict(), PulseQobjInstruction(name="cr90p_u1", ch="u1", t0=2).to_dict(), PulseQobjInstruction(name="cr90m_u1", ch="u1", t0=13).to_dict(), ], }).to_dict(), Command.from_dict({ "name": "measure", "qubits": [0, 1, 2], "sequence": [ PulseQobjInstruction(name="measure_m0", ch="m0", t0=0).to_dict(), PulseQobjInstruction(name="measure_m1", ch="m1", t0=0).to_dict(), PulseQobjInstruction(name="measure_m2", ch="m2", t0=0).to_dict(), PulseQobjInstruction( name="acquire", duration=10, t0=0, qubits=[0, 1, 2], memory_slot=[0, 1, 2], ).to_dict(), ], }).to_dict(), ], }) super().__init__(configuration)
def __init__(self): configuration = PulseBackendConfiguration( backend_name="fake_openpulse_2q", backend_version="0.0.0", n_qubits=2, meas_levels=[0, 1, 2], basis_gates=["u1", "u2", "u3", "cx", "id"], simulator=False, local=True, conditional=True, open_pulse=True, memory=False, max_shots=65536, gates=[GateConfig(name="TODO", parameters=[], qasm_def="TODO")], coupling_map=[[0, 1]], n_registers=2, n_uchannels=2, u_channel_lo=[ [UchannelLO(q=0, scale=1.0 + 0.0j)], [ UchannelLO(q=0, scale=-1.0 + 0.0j), UchannelLO(q=1, scale=1.0 + 0.0j) ], ], qubit_lo_range=[[4.5, 5.5], [4.5, 5.5]], meas_lo_range=[[6.0, 7.0], [6.0, 7.0]], dt=1.3333, dtm=10.5, rep_times=[100, 250, 500, 1000], meas_map=[[0, 1]], channel_bandwidth=[ [-0.2, 0.4], [-0.3, 0.3], [-0.3, 0.3], [-0.02, 0.02], [-0.02, 0.02], [-0.02, 0.02], ], meas_kernels=["kernel1"], discriminators=["max_1Q_fidelity"], acquisition_latency=[[100, 100], [100, 100]], conditional_latency=[ [100, 1000], [1000, 100], [100, 1000], [1000, 100], [100, 1000], [1000, 100], ], hamiltonian={ "h_str": [ "np.pi*(2*v0-alpha0)*O0", "np.pi*alpha0*O0*O0", "2*np.pi*r*X0||D0", "2*np.pi*r*X0||U1", "2*np.pi*r*X1||U0", "np.pi*(2*v1-alpha1)*O1", "np.pi*alpha1*O1*O1", "2*np.pi*r*X1||D1", "2*np.pi*j*(Sp0*Sm1+Sm0*Sp1)", ], "description": "A hamiltonian for a mocked 2Q device, with 1Q and 2Q terms.", "qub": { "0": 3, "1": 3 }, "vars": { "v0": 5.00, "v1": 5.1, "j": 0.01, "r": 0.02, "alpha0": -0.33, "alpha1": -0.33, }, }, channels={ "acquire0": { "operates": { "qubits": [0] }, "purpose": "acquire", "type": "acquire" }, "acquire1": { "operates": { "qubits": [1] }, "purpose": "acquire", "type": "acquire" }, "d0": { "operates": { "qubits": [0] }, "purpose": "drive", "type": "drive" }, "d1": { "operates": { "qubits": [1] }, "purpose": "drive", "type": "drive" }, "m0": { "type": "measure", "purpose": "measure", "operates": { "qubits": [0] } }, "m1": { "type": "measure", "purpose": "measure", "operates": { "qubits": [1] } }, "u0": { "operates": { "qubits": [0, 1] }, "purpose": "cross-resonance", "type": "control", }, "u1": { "operates": { "qubits": [1, 0] }, "purpose": "cross-resonance", "type": "control", }, }, processor_type={ "family": "Canary", "revision": "1.0", "segment": "A", }, ) self._defaults = PulseDefaults.from_dict({ "qubit_freq_est": [4.9, 5.0], "meas_freq_est": [6.5, 6.6], "buffer": 10, "pulse_library": [ { "name": "x90p_d0", "samples": 2 * [0.1 + 0j] }, { "name": "x90p_d1", "samples": 2 * [0.1 + 0j] }, { "name": "x90m_d0", "samples": 2 * [-0.1 + 0j] }, { "name": "x90m_d1", "samples": 2 * [-0.1 + 0j] }, { "name": "y90p_d0", "samples": 2 * [0.1j] }, { "name": "y90p_d1", "samples": 2 * [0.1j] }, { "name": "xp_d0", "samples": 2 * [0.2 + 0j] }, { "name": "ym_d0", "samples": 2 * [-0.2j] }, { "name": "cr90p_u0", "samples": 9 * [0.1 + 0j] }, { "name": "cr90m_u0", "samples": 9 * [-0.1 + 0j] }, { "name": "measure_m0", "samples": 10 * [0.1 + 0j] }, { "name": "measure_m1", "samples": 10 * [0.1 + 0j] }, ], "cmd_def": [ Command.from_dict({ "name": "u1", "qubits": [0], "sequence": [ PulseQobjInstruction(name="fc", ch="d0", t0=0, phase="-P0").to_dict() ], }).to_dict(), Command.from_dict({ "name": "u1", "qubits": [1], "sequence": [ PulseQobjInstruction(name="fc", ch="d1", t0=0, phase="-P0").to_dict() ], }).to_dict(), Command.from_dict({ "name": "u2", "qubits": [0], "sequence": [ PulseQobjInstruction(name="fc", ch="d0", t0=0, phase="-P1").to_dict(), PulseQobjInstruction(name="y90p_d0", ch="d0", t0=0).to_dict(), PulseQobjInstruction(name="fc", ch="d0", t0=2, phase="-P0").to_dict(), ], }).to_dict(), Command.from_dict({ "name": "u2", "qubits": [1], "sequence": [ PulseQobjInstruction(name="fc", ch="d1", t0=0, phase="-P1").to_dict(), PulseQobjInstruction(name="y90p_d1", ch="d1", t0=0).to_dict(), PulseQobjInstruction(name="fc", ch="d1", t0=2, phase="-P0").to_dict(), ], }).to_dict(), Command.from_dict({ "name": "u3", "qubits": [0], "sequence": [ PulseQobjInstruction(name="fc", ch="d0", t0=0, phase="-P2").to_dict(), PulseQobjInstruction(name="x90p_d0", ch="d0", t0=0).to_dict(), PulseQobjInstruction(name="fc", ch="d0", t0=2, phase="-P0").to_dict(), PulseQobjInstruction(name="x90m_d0", ch="d0", t0=2).to_dict(), PulseQobjInstruction(name="fc", ch="d0", t0=4, phase="-P1").to_dict(), ], }).to_dict(), Command.from_dict({ "name": "u3", "qubits": [1], "sequence": [ PulseQobjInstruction(name="fc", ch="d1", t0=0, phase="-P2").to_dict(), PulseQobjInstruction(name="x90p_d1", ch="d1", t0=0).to_dict(), PulseQobjInstruction(name="fc", ch="d1", t0=2, phase="-P0").to_dict(), PulseQobjInstruction(name="x90m_d1", ch="d1", t0=2).to_dict(), PulseQobjInstruction(name="fc", ch="d1", t0=4, phase="-P1").to_dict(), ], }).to_dict(), Command.from_dict({ "name": "cx", "qubits": [0, 1], "sequence": [ PulseQobjInstruction(name="fc", ch="d0", t0=0, phase=1.57).to_dict(), PulseQobjInstruction(name="ym_d0", ch="d0", t0=0).to_dict(), PulseQobjInstruction(name="xp_d0", ch="d0", t0=11).to_dict(), PulseQobjInstruction(name="x90p_d1", ch="d1", t0=0).to_dict(), PulseQobjInstruction(name="cr90p_u0", ch="u0", t0=2).to_dict(), PulseQobjInstruction(name="cr90m_u0", ch="u0", t0=13).to_dict(), ], }).to_dict(), Command.from_dict({ "name": "measure", "qubits": [0, 1], "sequence": [ PulseQobjInstruction(name="measure_m0", ch="m0", t0=0).to_dict(), PulseQobjInstruction(name="measure_m1", ch="m1", t0=0).to_dict(), PulseQobjInstruction( name="acquire", duration=10, t0=0, qubits=[0, 1], memory_slot=[0, 1], ).to_dict(), ], }).to_dict(), ], }) mock_time = datetime.datetime.now() dt = 1.3333 self._properties = BackendProperties( backend_name="fake_openpulse_2q", backend_version="0.0.0", last_update_date=mock_time, qubits=[ [ Nduv(date=mock_time, name="T1", unit="µs", value=71.9500421005539), Nduv(date=mock_time, name="T2", unit="µs", value=69.4240447362455), Nduv(date=mock_time, name="frequency", unit="MHz", value=4919.96800692), Nduv(date=mock_time, name="readout_error", unit="", value=0.02), ], [ Nduv(date=mock_time, name="T1", unit="µs", value=81.9500421005539), Nduv(date=mock_time, name="T2", unit="µs", value=75.5598482446578), Nduv(date=mock_time, name="frequency", unit="GHz", value=5.01996800692), Nduv(date=mock_time, name="readout_error", unit="", value=0.02), ], ], gates=[ Gate( gate="u1", qubits=[0], parameters=[ Nduv(date=mock_time, name="gate_error", unit="", value=0.06), Nduv(date=mock_time, name="gate_length", unit="ns", value=0.0), ], ), Gate( gate="u3", qubits=[0], parameters=[ Nduv(date=mock_time, name="gate_error", unit="", value=0.06), Nduv(date=mock_time, name="gate_length", unit="ns", value=2 * dt), ], ), Gate( gate="u3", qubits=[1], parameters=[ Nduv(date=mock_time, name="gate_error", unit="", value=0.06), Nduv(date=mock_time, name="gate_length", unit="ns", value=4 * dt), ], ), Gate( gate="cx", qubits=[0, 1], parameters=[ Nduv(date=mock_time, name="gate_error", unit="", value=1.0), Nduv(date=mock_time, name="gate_length", unit="ns", value=22 * dt), ], ), ], general=[], ) super().__init__(configuration)
def __init__(self): configuration = PulseBackendConfiguration( backend_name='fake_openpulse_2q', backend_version='0.0.0', n_qubits=2, meas_levels=[0, 1, 2], basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], simulator=False, local=True, conditional=True, open_pulse=True, memory=False, max_shots=65536, gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], coupling_map=[[0, 1]], n_registers=2, n_uchannels=2, u_channel_lo=[[UchannelLO(q=0, scale=1. + 0.j)], [ UchannelLO(q=0, scale=-1. + 0.j), UchannelLO(q=1, scale=1. + 0.j) ]], meas_level=[1, 2], qubit_lo_range=[[4.5, 5.5], [4.5, 5.5]], meas_lo_range=[[6.0, 7.0], [6.0, 7.0]], dt=1.3333, dtm=10.5, rep_times=[100, 250, 500, 1000], meas_map=[[0, 1]], channel_bandwidth=[[-0.2, 0.4], [-0.3, 0.3], [-0.3, 0.3], [-0.02, 0.02], [-0.02, 0.02], [-0.02, 0.02]], meas_kernels=['kernel1'], discriminators=['max_1Q_fidelity'], acquisition_latency=[[100, 100], [100, 100]], conditional_latency=[[100, 1000], [1000, 100], [100, 1000], [1000, 100], [100, 1000], [1000, 100]]) self._defaults = PulseDefaults( qubit_freq_est=[4.9, 5.0], meas_freq_est=[6.5, 6.6], buffer=10, pulse_library=[ PulseLibraryItem(name='test_pulse_1', samples=[0.j, 0.1j]), PulseLibraryItem(name='test_pulse_2', samples=[0.j, 0.1j, 1j]), PulseLibraryItem(name='test_pulse_3', samples=[0.j, 0.1j, 1j, 0.5 + 0j]), PulseLibraryItem(name='test_pulse_4', samples=7 * [0.j, 0.1j, 1j, 0.5 + 0j]) ], cmd_def=[ Command(name='u1', qubits=[0], sequence=[ PulseQobjInstruction(name='fc', ch='d0', t0=0, phase='-P1*np.pi') ]), Command(name='u1', qubits=[1], sequence=[ PulseQobjInstruction(name='fc', ch='d1', t0=0, phase='-P1*np.pi') ]), Command(name='u2', qubits=[0], sequence=[ PulseQobjInstruction(name='fc', ch='d0', t0=0, phase='-P0*np.pi'), PulseQobjInstruction(name='test_pulse_4', ch='d0', t0=0), PulseQobjInstruction(name='fc', ch='d0', t0=0, phase='-P1*np.pi') ]), Command(name='u2', qubits=[1], sequence=[ PulseQobjInstruction(name='fc', ch='d1', t0=0, phase='-P0*np.pi'), PulseQobjInstruction(name='test_pulse_4', ch='d1', t0=0), PulseQobjInstruction(name='fc', ch='d1', t0=0, phase='-P0*np.pi') ]), Command(name='u3', qubits=[0], sequence=[ PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0) ]), Command(name='u3', qubits=[1], sequence=[ PulseQobjInstruction(name='test_pulse_3', ch='d1', t0=0) ]), Command(name='cx', qubits=[0, 1], sequence=[ PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0), PulseQobjInstruction(name='test_pulse_2', ch='u0', t0=10), PulseQobjInstruction(name='test_pulse_1', ch='d1', t0=20), PulseQobjInstruction(name='fc', ch='d1', t0=20, phase=2.1) ]), Command(name='ParametrizedGate', qubits=[0, 1], sequence=[ PulseQobjInstruction(name='test_pulse_1', ch='d0', t0=0), PulseQobjInstruction(name='test_pulse_2', ch='u0', t0=10), PulseQobjInstruction(name='pv', ch='d1', t0=2, val='cos(P2)'), PulseQobjInstruction(name='test_pulse_1', ch='d1', t0=20), PulseQobjInstruction(name='fc', ch='d1', t0=20, phase=2.1) ]), Command(name='measure', qubits=[0, 1], sequence=[ PulseQobjInstruction(name='test_pulse_1', ch='m0', t0=0), PulseQobjInstruction(name='test_pulse_1', ch='m1', t0=0), PulseQobjInstruction(name='acquire', duration=10, t0=0, qubits=[0, 1], memory_slot=[0, 1]) ]) ]) mock_time = datetime.datetime.now() dt = 1.3333 # pylint: disable=invalid-name self._properties = BackendProperties( backend_name='fake_openpulse_2q', backend_version='0.0.0', last_update_date=mock_time, qubits=[[ Nduv(date=mock_time, name='T1', unit='µs', value=71.9500421005539), Nduv(date=mock_time, name='frequency', unit='MHz', value=4919.96800692) ], [ Nduv(date=mock_time, name='T1', unit='µs', value=81.9500421005539), Nduv(date=mock_time, name='frequency', unit='GHz', value=5.01996800692) ]], gates=[ Gate(gate='u1', name='u1_0', qubits=[0], parameters=[ Nduv(date=mock_time, name='gate_error', unit='', value=1.0), Nduv(date=mock_time, name='gate_length', unit='ns', value=0.) ]), Gate(gate='u3', name='u3_0', qubits=[0], parameters=[ Nduv(date=mock_time, name='gate_error', unit='', value=1.0), Nduv(date=mock_time, name='gate_length', unit='ns', value=2 * dt) ]), Gate(gate='u3', name='u3_1', qubits=[1], parameters=[ Nduv(date=mock_time, name='gate_error', unit='', value=1.0), Nduv(date=mock_time, name='gate_length', unit='ns', value=4 * dt) ]), Gate(gate='cx', name='cx0_1', qubits=[0, 1], parameters=[ Nduv(date=mock_time, name='gate_error', unit='', value=1.0), Nduv(date=mock_time, name='gate_length', unit='ns', value=22 * dt) ]), ], general=[]) super().__init__(configuration)