import sys import os sys.path.append(os.environ['PYTHON_SUPPORT']) import pymbsolvelib as mb import pysolvercpu import pywriterhdf5 import numpy as np import math import time # vacuum mat_vac = mb.material("Vacuum", None) mb.material.add_to_library(mat_vac) # Ziolkowski active region material qm = mb.qm_desc_2lvl(1e24, 2 * math.pi * 2e14, 6.24e-11, 1.0e10, 1.0e10, -1.0) mat_ar = mb.material("AR_Ziolkowski", qm) mb.material.add_to_library(mat_ar) # Ziolkowski setup 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])
import pymbsolvelib as mb vacuum = mb.material('vacuum') reg = mb.region('Vacuum right', vacuum, 0, 7.5e-6) dev = mb.Device('QCL') dev.add_region(reg)
import sys sys.path.append('./mbsolve-lib/') sys.path.append('./solver-openmp/') sys.path.append('./writer-hdf5/') import pymbsolvelib as mb import pysolveropenmp import pywriterhdf5 import numpy as np import math import time # vacuum mat_vac = mb.material("Vacuum") mb.material.add_to_library(mat_vac) # Ziolkowski active region material qm = mb.qm_desc_2lvl(1e24, 2 * math.pi * 2e14, 6.24e-11, 1.0e10, 1.0e10, -1.0) mat_ar = mb.material("AR_Ziolkowski", qm) mb.material.add_to_library(mat_ar) # Ziolkowski setup 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 ])
# dipole moment operator dipoles = [9.2374e-11 * mb.E0, 9.2374e-11 * math.sqrt(2) * mb.E0, 0] u = mb.qm_operator([0, 0, 0], dipoles) # relaxation superoperator rate = 1e10 rates = [[0, rate, rate], [rate, 0, rate], [rate, rate, 0]] relax_sop = mb.qm_lindblad_relaxation(rates) # initial density matrix rho_init = mb.qm_operator([1, 0, 0]) # quantum mechanical description qm = mb.qm_description(6e24, H, u, relax_sop) mat_ar = mb.material("AR_Song", qm) mb.material.add_to_library(mat_ar) # Ziolkowski setup dev = mb.device("Song") dev.add_region(mb.region("Active region", mat_ar, 0, 150e-6)) # scenario sce = mb.scenario("Basic", 32768, 80e-15, rho_init) sce.add_record(mb.record("e", 0.0, 0.0)) sce.add_record(mb.record("d11", mb.record.density, 1, 1, 0.0, 0.0)) sce.add_record(mb.record("d22", mb.record.density, 2, 2, 0.0, 0.0)) sce.add_record(mb.record("d33", mb.record.density, 3, 3, 0.0, 0.0)) # add source sce.add_source(
sys.path.append('./solver-openmp/') sys.path.append('./writer-matlab/') import pymbsolvelib as mb import pysolveropenmp import pywritermatlab import numpy as np import math import time # absorber material # rel permittivity 1 # overlap factor 1 # losses 3e4/cm -> 3e6/m mat_abs = mb.material("Absorber", None, 1, 1, 3e6) mb.material.add_to_library(mat_abs) # Freeman setup varies cavity length (1.5mm/3mm) if True: # cavity length 1.5mm L = 1.5e-3 # total loss 11/cm loss = 1100.0 else: # cavity length 3mm L = 3.0e-3 # total loss 7/cm loss = 700 print(L)