Exemple #1
0
Notes:
    1) materials are described in SI units
    2) materials are stored in datalib
    3) materials are output as m = n+j*k
    4) materials are iterpolated in datalib based on input lda values
"""

m = datalib.Material_RI(lda * nm, 'Si')  #convert lda to SI unit
msi_fn = interp1d(lda, m,
                  kind='quadratic')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'SiO2')  #convert lda to SI unit
msio2_fn = interp1d(lda, m,
                    kind='quadratic')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.15, 'Air', 'SiO2', 'Bruggeman')
msio2np_ideal_fn = interp1d(
    lda, m, kind='quadratic')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.0874, 'Air', 'SiO2', 'Bruggeman')
msio2rough_ideal_fn = interp1d(
    lda, m, kind='quadratic')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.15, 'Air', 'RC0_1B_SiO2', 'Bruggeman')
msio2np_fn = interp1d(
    lda, m, kind='quadratic')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.0874, 'Air', 'RC0_1B_SiO2', 'Bruggeman')
msio2rough_fn = interp1d(
    lda, m, kind='quadratic')  # make mat data a FUNCTION of lda, in nm
Exemple #2
0
    4) materials are iterpolated in datalib based on input lda values
"""

m = datalib.Material_RI(lda * nm, 'SiC')  #convert lda to SI unit
msic_fn = interp1d(lda, m,
                   kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'SiO2')  #convert lda to SI unit
msio2_fn = interp1d(lda, m,
                    kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'Ag')  #convert lda to SI unit
mag_fn = interp1d(lda, m,
                  kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.10, 'Air', 'RC0_1B_SiO2',
                  'Bruggeman')  # 15% ff good
msio2np10_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.30, 'Air', 'RC0_1B_SiO2', 'Bruggeman')
msio2np_fn = interp1d(lda, m,
                      kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.30, 'Air', 'SiC', 'Bruggeman')
msicnp_fn = interp1d(lda, m,
                     kind='linear')  # make mat data a FUNCTION of lda, in nm

d_list = [inf, 900, 1200, 100, 1000, 200,
          inf]  # list of layer thicknesses in nm # 500nm Al2O3 good
d_list = [inf, 1500, 0, 0, 0, 200,
          inf]  # list of layer thicknesses in nm # 500nm Al2O3 good
    3) materials are output as m = n+j*k
    4) materials are iterpolated in datalib based on input lda values
"""

m = datalib.Material_RI(lda * nm, 'RC0_1B_Si')  #convert lda to SI unit
msi_fn = interp1d(lda, m,
                  kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'SiO2')  #convert lda to SI unit
msio2_fn = interp1d(lda, m,
                    kind='linear')  # make mat data a FUNCTION of lda, in nm

#m = datalib.alloy(lda*nm, 0.238, 'Air','SiO2','Bruggeman')
#msio2np_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.238, 'Air', 'RC0_1B_SiO2', 'Bruggeman')
msio2np_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

#m = datalib.alloy(lda*nm, 0.0674, 'Air','SiO2','Bruggeman')
#msio2rough_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.0674, 'Air', 'RC0_1B_SiO2', 'Bruggeman')
msio2rough_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

d_list = [inf, 837.372, 2621.210, 12.848, 525000,
          inf]  # list of layer thicknesses in nm
c_list = ['i', 'c', 'c', 'c', 'i', 'i']
theta = 0
T_list = []
    4) materials are iterpolated in datalib based on input lda values
"""

m = datalib.Material_RI(lda * nm, 'Si3N4')  #convert lda to SI unit
msi3n4_fn = interp1d(lda, m,
                     kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'SiO2')  #convert lda to SI unit
msio2_fn = interp1d(lda, m,
                    kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'Ag')  #convert lda to SI unit
mag_fn = interp1d(lda, m,
                  kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.30, 'Air', 'RC0_1D_Al2O3',
                  'Bruggeman')  # 15% ff good
mal2o3np_fn = interp1d(lda, m,
                       kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.30, 'Air', 'RC0_1B_SiO2', 'Bruggeman')
msio2np_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.30, 'Air', 'Si3N4', 'Bruggeman')
msi3n4np_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

d_list = [inf, 2000, 4000, 2000, 200,
          inf]  # list of layer thicknesses in nm # 500nm Al2O3 good
c_list = ['i', 'c', 'c', 'c', 'c', 'i']
theta = 0
#
#

m = datalib.Material_RI(lda * nm, 'Si3N4')  #convert lda to SI unit
msi3n4_fn = interp1d(lda, m,
                     kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'SiO2')  #convert lda to SI unit
msio2_fn = interp1d(lda, m,
                    kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'Ag')  #convert lda to SI unit
mag_fn = interp1d(lda, m,
                  kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.30, 'Air', 'SiO2', 'Bruggeman')
msio2np_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.30, 'Air', 'Si3N4', 'Bruggeman')
msi3n4np_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

d_list = [inf, 800, 2000, 200, inf]  # list of layer thicknesses in nm
c_list = ['i', 'c', 'c', 'c', 'i']
theta = 0
T_list = []
R_list = []
A_list = []
for lda0 in lda:
Exemple #6
0
plt.plot(lda/1000, real(m2),'k:', label = 'n VASE stock')
plt.plot(lda/1000, imag(m1),'r', label = 'k model')
plt.plot(lda/1000, imag(m2),'r:', label = 'k VASE stock')
plt.xlabel('Wavelength (um)')
plt.ylabel('')
#plt.title('Refractive index of Al2O3')
plt.legend()
plt.show() 

#m = datalib.alloy(lda*nm, 0.36, 'Air','RC0_1D_Al2O3','Bruggeman')
#mal2o3np_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm
#
#m = datalib.alloy(lda*nm, 0.12, 'Air','RC0_1D_Al2O3','Bruggeman')
#mal2o3rough_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda*nm, 0.36, 'Air','RC0_1D_Al2O3','Bruggeman')
mal2o3np_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda*nm, 0.11, 'Air','RC0_1D_Al2O3','Bruggeman')
mal2o3rough_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm


d_list = [inf, 376.30, 2300.39, 4.86, 525000, inf] # list of layer thicknesses in nm
c_list = ['i','c','c','c','i','i']
theta = 0
T_list = [];
R_list = [];
A_list = [];
for lda0 in lda:
#    msi = msi_fn(lda0)
#    if (msi.imag < 0):
Define materials of interest for layered film simulation

Notes:
    1) materials are described in SI units
    2) materials are stored in datalib
    3) materials are output as m = n+j*k
    4) materials are iterpolated in datalib based on input lda values
"""

m = datalib.Material_RI(lda*nm, 'RC0_1B_Si') #convert lda to SI unit
msi_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda*nm, 'SiO2') #convert lda to SI unit
msio2_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda*nm, 0.36, 'Air','RC0_1D_Al2O3','MG')
mal2o3np_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda*nm, 0.12, 'Air','RC0_1D_Al2O3','MG')
mal2o3rough_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

d_list = [inf, 576.30, 2773.39, 4.86, 525000, inf] # list of layer thicknesses in nm
c_list = ['i','i','i','c','i','i']
theta = 0
T_list = [];
R_list = [];
A_list = [];
for lda0 in lda:
    n_list = [1, mal2o3rough_ideal_fn(lda0), mal2o3np_ideal_fn(lda0), msio2_fn(lda0), msi_fn(lda0), 1]
    inc_tmm_data = tmm.inc_tmm('s',n_list,d_list,c_list,theta,lda0)
    A_list.append(tmm.inc_absorp_in_each_layer(inc_tmm_data)) #stores as list of np.arrays
Exemple #8
0
    4) materials are iterpolated in datalib based on input lda values
"""

m = datalib.Material_RI(lda * nm, 'Si3N4')  #convert lda to SI unit
msi3n4_fn = interp1d(lda, m,
                     kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'SiO2')  #convert lda to SI unit
msio2_fn = interp1d(lda, m,
                    kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'Ag')  #convert lda to SI unit
mag_fn = interp1d(lda, m,
                  kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.15, 'Air', 'a-Al2O3', 'Bruggeman')  # 15% ff good
mal2o3np_fn = interp1d(lda, m,
                       kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.30, 'Air', 'SiO2', 'Bruggeman')
msio2np_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.30, 'Air', 'Si3N4', 'Bruggeman')
msi3n4np_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

d_list = [inf, 100, 1500, 3000, 200,
          inf]  # list of layer thicknesses in nm # 500nm Al2O3 good
c_list = ['i', 'c', 'c', 'c', 'c', 'i']
theta = 0
Exemple #9
0
"""

"""
Define materials of interest for layered film simulation

Notes:
    1) materials are described in SI units
    2) materials are stored in datalib
    3) materials are output as m = n+j*k
    4) materials are iterpolated in datalib based on input lda values
"""

m = datalib.Material_RI(lda*nm, 'AlOxChar3_1C_Au') #convert lda to SI unit
mau_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda*nm, 0.416, 'Air','AlOxChar3_1A','Bruggeman')
mnp_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm


d_list = [inf, 5600, 300, inf] # list of layer thicknesses in nm
c_list = ['i','c','c','i']
theta = 0
T_list = [];
R_list = [];
A_list = [];
for lda0 in lda:
#    msi = msi_fn(lda0)
#    if (msi.imag < 0):
#        msi.imag = -msi.imag
#    if (msi.real < 0):
#        msi.real = -msi.real
Exemple #10
0
    2) materials are stored in datalib
    3) materials are output as m = n+j*k
    4) materials are iterpolated in datalib based on input lda values
"""
#m = datalib.alloy(lda*nm, 0.252, 'Air','Si3N4','Bruggeman')
#msi3n4np_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'RC0_1B_Si')  #convert lda to SI unit
msi_fn = interp1d(lda, m,
                  kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'SiO2')  #convert lda to SI unit
msio2_fn = interp1d(lda, m,
                    kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.245, 'Air', 'RC1_1B_Si3N4', 'Bruggeman')
msi3n4np_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

#m = datalib.Material_RI(lda*nm, 'RC1_1B_Si3N4') #convert lda to SI unit
plt.plot(lda, real(m))
plt.plot(lda, imag(m))

#%%
d_list = [inf, 173.603, 0.848, 525000, inf]  # list of layer thicknesses in nm
c_list = ['i', 'i', 'c', 'i', 'i']
theta = 0
T_list = []
R_list = []
A_list = []
for lda0 in lda:
"""

nm = 1e-9
lda = linspace(400, 500, 100)  # list of wavelengths in nm

m = datalib.Material_RI(lda * nm, 'Si')  #convert lda to SI unit
msi_fn = interp1d(lda, m,
                  kind='linear')  # make mat data a FUNCTION of lda, in nm

ff = np.array([20, 30, 40, 50, 60, 100]) / 100
A = np.zeros((len(lda), len(ff)), dtype=np.float64)
T = np.zeros((len(lda), len(ff)), dtype=np.float64)
R = np.zeros((len(lda), len(ff)), dtype=np.float64)

for idx in range(0, len(ff)):
    m = datalib.alloy(lda * nm, ff[idx], 'Air', 'Si', 'Bruggeman')
    msi_fn = interp1d(lda, m,
                      kind='linear')  # make mat data a FUNCTION of lda, in nm

    d_list = [inf, 88,
              inf]  # list of layer thicknesses in nm # 500nm Al2O3 good

    c_list = ['i', 'c', 'i']
    theta = 0
    T_list = []
    R_list = []
    A_list = []
    for lda0 in lda:
        n_list = [1, msi_fn(lda0), 1]
        inc_tmm_data = tmm.inc_tmm('s', n_list, d_list, c_list, theta, lda0)
        A_list.append(tmm.inc_absorp_in_each_layer(
Exemple #12
0
Notes:
    1) materials are described in SI units
    2) materials are stored in datalib
    3) materials are output as m = n+j*k
    4) materials are iterpolated in datalib based on input lda values
"""
#m = datalib.alloy(lda*nm, 0.252, 'Air','Si3N4','Bruggeman')
#msi3n4np_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda*nm, 'RC0_1B_Si') #convert lda to SI unit
msi_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda*nm, 'SiO2') #convert lda to SI unit
msio2_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda*nm, 0.252, 'Air','Si3N4','Bruggeman')
msi3n4np_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

d_list = [inf, 183.798, 12.848, 525000, inf] # list of layer thicknesses in nm
c_list = ['i','i','c','i','i']
theta = 0
T_list = [];
R_list = [];
A_list = [];
for lda0 in lda:
#    msi = msi_fn(lda0)
#    if (msi.imag < 0):
#        msi.imag = -msi.imag
#    if (msi.real < 0):
#        msi.real = -msi.real
    n_list = [1, msi3n4np_ideal_fn(lda0), msio2_fn(lda0), msi_fn(lda0), 1]
Exemple #13
0
from scipy.interpolate import interp1d, InterpolatedUnivariateSpline

nm = 1e-9
lda = linspace(8500, 9500, 1000)  # list of wavelengths in nm


def norm(m):
    return (real(m) - min(real(m))) / (max(real(m)) - min(real(m))), (
        imag(m) - min(imag(m))) / (max(imag(m)) - min(imag(m)))


#%%
import numpy as np
t_atmosphere = datalib.ATData(lda * 1e-9)
m_mat = datalib.Material_RI(lda * nm, 'SiO2')  #convert lda to SI unit
m_MG1 = datalib.alloy(lda * nm, 0.1, 'Air', 'SiO2', 'MG')
#m_MG2 = datalib.alloy(lda*nm, 0.8, 'Air','SiO2','MG')
m_MG2 = datalib.alloy(lda * nm, 0.1, 'SiO2', 'Air', 'MG')

n_mat, k_mat = norm(m_mat)
idx_max_k_mat = np.argmax(k_mat)

n_MG1, k_MG1 = norm(m_MG1)
idx_max_k_MG1 = np.argmax(k_MG1)

n_MG2, k_MG2 = norm(m_MG2)
idx_max_k_MG2 = np.argmax(k_MG2)

#plt.figure()
#
#plt.plot(lda/1000, k_MG1,'k', label = 'MG1')
m = datalib.Material_RI(lda * nm, 'Si3N4')  #convert lda to SI unit
msi3n4_fn = interp1d(lda, m,
                     kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'SiO2')  #convert lda to SI unit
msio2_fn = interp1d(lda, m,
                    kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'Ag')  #convert lda to SI unit
mag_fn = interp1d(lda, m,
                  kind='linear')  # make mat data a FUNCTION of lda, in nm

#m = datalib.alloy(lda*nm, 0.30, 'Air','SiO2','Bruggeman')
#msio2np_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.238, 'Air', 'RC0_1B_SiO2', 'Bruggeman')
msio2np_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.3, 'Air', 'Si3N4', 'Bruggeman')
msi3n4np_ideal_fn = interp1d(
    lda, m, kind='linear')  # make mat data a FUNCTION of lda, in nm

d_list = [inf, 1000, 2500, 2000, 0, 200,
          inf]  # list of layer thicknesses in nm
c_list = ['i', 'c', 'c', 'c', 'c', 'c', 'i']
theta = 0
T_list = []
R_list = []
A_list = []
for lda0 in lda:
Exemple #15
0
Define materials of interest for layered film simulation

Notes:
    1) materials are described in SI units
    2) materials are stored in datalib
    3) materials are output as m = n+j*k
    4) materials are iterpolated in datalib based on input lda values
"""

m = datalib.Material_RI(lda*nm, 'RC0_1B_Si') #convert lda to SI unit
msi_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda*nm, 'SiO2') #convert lda to SI unit
msio2_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda*nm, 0.10, 'Air','SiO2','Bruggeman')
msio2np_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda*nm, 0.0674, 'Air','SiO2','Bruggeman')
msio2rough_ideal_fn = interp1d(lda, m, kind='linear') # make mat data a FUNCTION of lda, in nm

d_list = [inf, 359.944, 35089.86, 15.62, 525000, inf] # list of layer thicknesses in nm
c_list = ['i','c','c','c','i','i']
theta = 0
T_list = [];
R_list = [];
A_list = [];
for lda0 in lda:
#    msi = msi_fn(lda0)
#    if (msi.imag < 0):
#        msi.imag = -msi.imag
fig1 = plt.figure()
plt.plot(lda, real(m), 'k')
plt.plot(lda, imag(m), 'r')

#sio.savemat('P_SiO2_SiN_Ag.mat', {'P_cool_sio2_sin_np': P_cool_sio2_sin_np})

#%% INTERP MATERIALS!!

ff = np.array([
    0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90,
    95, 100
]) / 100

m_sio2 = np.zeros((len(lda), len(ff)), dtype=np.complex64)
for idx in range(0, len(ff)):
    m_sio2[:, idx] = datalib.alloy(lda * nm, ff[idx], 'Air', 'SiO2',
                                   'Bruggeman')

m_sin = np.zeros((len(lda), len(ff)), dtype=np.complex64)
for idx in range(0, len(ff)):
    m_sin[:, idx] = datalib.alloy(lda * nm, ff[idx], 'Air', 'Si3N4',
                                  'Bruggeman')

sio.savemat(
    'SiO2_Brugg_FF_0_5_100_lda.mat', {
        'n_sio2': real(m_sio2),
        'k_sio2': imag(m_sio2),
        'Wavelengths': lda,
        'Fill_Fraction': ff
    })
sio.savemat(
    'SiN_Brugg_FF_0_5_100_lda.mat', {
Exemple #17
0
Notes:
    1) materials are described in SI units
    2) materials are stored in datalib
    3) materials are output as m = n+j*k
    4) materials are iterpolated in datalib based on input lda values
"""

m = datalib.Material_RI(lda * nm, 'AlOxChar_2C_Si')  #convert lda to SI unit
msi_fn = interp1d(lda, m,
                  kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.Material_RI(lda * nm, 'AlOxChar_2C_Oxide')  #convert lda to SI unit
moxide_fn = interp1d(lda, m,
                     kind='linear')  # make mat data a FUNCTION of lda, in nm

m = datalib.alloy(lda * nm, 0.0687, 'Air', 'AlOxChar_2A', 'Bruggeman')
malox_fn = interp1d(lda, m,
                    kind='linear')  # make mat data a FUNCTION of lda, in nm

d_list = [inf, 1463.42, 492.117, 525000,
          inf]  # list of layer thicknesses in nm
c_list = ['i', 'c', 'c', 'i', 'i']
theta = 0
T_list = []
R_list = []
A_list = []
for lda0 in lda:
    #    msi = msi_fn(lda0)
    #    if (msi.imag < 0):
    #        msi.imag = -msi.imag
    #    if (msi.real < 0):