コード例 #1
0
ファイル: test_solver.py プロジェクト: xj361685640/mbsolve
import numpy as np

dev = mb.device("test")

sce = mb.scenario("basic", 32768, 200e-15)

sce.add_record(mb.record("d11"))

sol = mb.solver("generic", dev, sce)

print('Solver ' + sol.get_name() + ' started')

sol.run()

print('Solver ' + sol.get_name() + ' finished')

wri = mb.writer("matlab")

outfile = dev.get_name() + "_" + sce.get_name() + "." + wri.get_extension()

results = sol.get_results()

print("I have " + str(len(results)) + " result(s)")

d11 = np.matrix(results[0].get_data_complex()).reshape(results[0].get_rows(),
                                                       results[0].get_cols())

print(d11)

wri.write(outfile, sol.get_results(), dev, sce)
コード例 #2
0
dev.add_region(mb.region("Vacuum left", mat_vac, 0, 7.5e-6))
dev.add_region(mb.region("Active region", mat_ar, 7.5e-6, 142.5e-6))
dev.add_region(mb.region("Vacuum right", mat_vac, 142.5e-6, 150e-6))

# initial density matrix
rho_init = mb.qm_operator([1, 0])

# scenario
sce = mb.scenario("Basic", 32768, 200e-15, rho_init)
sce.add_record(mb.record("inv12", 2.5e-15))
sce.add_record(mb.record("e", 2.5e-15))

# add source
sce.add_source(
    mb.sech_pulse("sech", 0.0, mb.source.hard_source, 4.2186e9, 2e14, 10,
                  2e14))

# run solver
sol = mb.solver.create_instance("cpu-fdtd-red-2lvl-cvr-rodr", dev, sce)
print('Solver ' + sol.get_name() + ' started')
tic = time.time()
sol.run()
toc = time.time()
print('Solver ' + sol.get_name() + ' finished in ' + str(toc - tic) + ' sec')

# write results
wri = mb.writer("hdf5")
outfile = dev.get_name() + "_" + sce.get_name() + "." + wri.get_extension()
results = sol.get_results()
wri.write(outfile, sol.get_results(), dev, sce)
コード例 #3
0
ファイル: ziolkowski1995.py プロジェクト: mriesch-tum/mbsolve
dev = mb.device("Ziolkowski")
dev.add_region(mb.region("Vacuum left", mat_vac, 0, 7.5e-6))
dev.add_region(mb.region("Active region", mat_ar, 7.5e-6, 142.5e-6))
dev.add_region(mb.region("Vacuum right", mat_vac, 142.5e-6, 150e-6))

# initial density matrix
rho_init = mb.qm_operator([ 1, 0 ])

# scenario
sce = mb.scenario("Basic", 32768, 200e-15, rho_init)
sce.add_record(mb.record("inv12", 2.5e-15))
sce.add_record(mb.record("e", 2.5e-15))

# add source
sce.add_source(mb.sech_pulse("sech", 0.0, mb.source.hard_source, 4.2186e9,
                             2e14, 10, 2e14))

# run solver
sol = mb.solver("openmp-2lvl-os-red", dev, sce)
print('Solver ' + sol.get_name() + ' started')
tic = time.time()
sol.run()
toc = time.time()
print('Solver ' + sol.get_name() + ' finished in ' + str(toc - tic) + ' sec')

# write results
wri = mb.writer("hdf5")
outfile = dev.get_name() + "_" + sce.get_name() + "." + wri.get_extension()
results = sol.get_results()
wri.write(outfile, sol.get_results(), dev, sce)