Exemple #1
0
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])
Exemple #2
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 ])
Exemple #4
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(
Exemple #5
0
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)