Esempio n. 1
0
 def case(self, filename, kwargs):
     data = 1 - 2 * np.random.rand(_dimension, _dimension)
     if kwargs.get('numtype', 'complex') == 'complex':
         data = data * (0.5 * 0.5j)
     qutip.file_data_store(filename, data, **kwargs)
     out = qutip.file_data_read(filename)
     np.testing.assert_allclose(data, out, atol=1e-8)
Esempio n. 2
0
    def testRWSeparatorDetection(self):
        "Read and write with automatic separator detection"

        # create some random data
        N = 10
        data = (1 - 2 * scipy.rand(N, N)) + 1j * (1 - 2 * scipy.rand(N, N))

        # comma separated values
        file_data_store("test.dat", data, "complex", "exp", ",")
        data2 = file_data_read("test.dat")
        assert_(amax(abs((data - data2))) < 1e-8)

        # semicolon separated values
        file_data_store("test.dat", data, "complex", "exp", ";")
        data2 = file_data_read("test.dat")
        assert_(amax(abs((data - data2))) < 1e-8)

        # tab separated values
        file_data_store("test.dat", data, "complex", "exp", "\t")
        data2 = file_data_read("test.dat")
        assert_(amax(abs((data - data2))) < 1e-8)

        # space separated values
        file_data_store("test.dat", data, "complex", "exp", " ")
        data2 = file_data_read("test.dat")
        assert_(amax(abs((data - data2))) < 1e-8)

        # mixed-whitespace separated values
        file_data_store("test.dat", data, "complex", "exp", " \t ")
        data2 = file_data_read("test.dat")
        assert_(amax(abs((data - data2))) < 1e-8)
        os.remove("test.dat")
Esempio n. 3
0
    def testRWComplexDecimal(self):
        "Read and write complex valued decimal formatted data"

        # create some random data
        N = 10
        data = (1 - 2 * scipy.rand(N, N)) + 1j * (1 - 2 * scipy.rand(N, N))

        file_data_store("test.dat", data, "complex", "decimal")
        data2 = file_data_read("test.dat", ",")
        # make sure the deviation is small:
        assert_(amax(abs((data - data2))) < 1e-8)
        os.remove("test.dat")
Esempio n. 4
0
    def testRWRealExp(self):
        "Read and write real valued exp formatted data"

        # create some random data
        N = 10
        data = (1 - 2 * scipy.rand(N, N))

        file_data_store("test.dat", data, "real", "exp")
        data2 = file_data_read("test.dat", ",")
        # make sure the deviation is small:
        assert_(amax(abs((data - data2))) < 1e-8)
        os.remove("test.dat")
Esempio n. 5
0
def dump_obj(obj, filename, path):
    # TODO: rearrange directory structure so temp doesn't get too crowded!
    #serialize a python object to a file
    #A file takes a single object.
    with cd(path):
        # loading Qobjs
        if type(obj) is qt.qobj.Qobj:
            qt.file_data_store(filename, obj)
        # Loading anything else (probably string)
        else:
            json.dump(obj, open(filename, "w+"))
    return filename
Esempio n. 6
0
    psiEcho = qt.tensor(qt.rx(np.pi), qt.identity(2)) * output1.states[-1]
    output2 = qt.mesolve(Htm, psiEcho, tlist[int(len(tlist) / 2):], [],
                         e_op_list, {})
    return np.array(output2.expect)[:, -1]


# %%
if __name__ == '__main__':
    # Simple CR, in qubit 2 frame
    print('Calculate simple CR gate')
    result_down = CR(tlist_simple, psidown)
    result_up = CR(tlist_simple, psiup)
    # Save result to file
    print('Save data')
    data = np.vstack((tlist_simple, result_down, result_up))
    qt.file_data_store('CR0.dat', data, numtype='real')
    print('Finished')
    # Echoed CR, in qubit 2 frame
    print('Calculate echoed CR gate')
    print('|psi0> = |00>')
    result_down = \
        np.array(qt.parallel_map(CR_echo, tlist_echo, task_args=(psidown,),
                                 progress_bar=True)).T
    print('|psi0> = |10>')
    result_up = \
        np.array(qt.parallel_map(CR_echo, tlist_echo, task_args=(psiup,),
                                 progress_bar=True)).T
    print('Finished')
    # Save result to file
    print('Save data')
    data = np.vstack((tlist_echo, result_down, result_up))
Esempio n. 7
0
    omegazip.extend(zip(omegaDlist, np.repeat(omegaP, len(omegaDlist))))
# Divide into batches
bsize = 4 * len(omegaDlist)
nbatch = int(np.ceil(len(omegazip) / bsize))
filename = 'transSweep.dat'
result = []
# Run simulation and save data batch by batch
for ii in range(0, nbatch):
    print('Calculating batch %d of %d ...' % (ii + 1, nbatch))
    result.extend(
        qt.parallel_map(transmission,
                        omegazip[ii * bsize:(ii + 1) * bsize],
                        task_args=(ampD, ampP),
                        num_cpus=40,
                        progress_bar=True))
    qt.file_data_store(filename,
                       np.array(result).reshape((-1, 1)),
                       numtype='real')
    print('Saved to %s\n' % filename)

# Save data
# data is an numpy array with M rows and N columns
# M = len(omegaPlist)+1, N = len(omegaDlist)+1
# data[0, 1:] = omegaDlist, data[1:, 0] = omegaPlist
# data[1:, 1:] = transmission data
result = np.array(result).reshape((len(omegaPlist), len(omegaDlist)))
data = np.vstack((omegaDlist, result))
data = np.hstack((np.append([0], omegaPlist).reshape(-1, 1), data))
qt.file_data_store(filename, data, numtype='real')
print('Finished.')