In [1]:
#%pylab inline
In [2]:
from stack import *
my_stack = load('io_files/saved_stack.txt')
# stack plotting check:
my_stack.plot()
my_stack.plot(show_inversion=True)
In [3]:
# check eigenmode being correctly solved:
# should get error msg: no emission mode exists here'
lmode = eigenmode('emission',8000.0,1.0,my_stack)
# check incident mode:
pmode = eigenmode('incident',8000.0,1.0,my_stack)
pmode.plot_field(5000)
pmode.plot_intensities()
In [4]:
# check stack setters and getters:
prange = [700,800]; lrange = [900,1000]
my_stack.set_gainlayers([1,3,5],prange,lrange)
print 'gain layers should be [1,3,5]:', my_stack.get_gainlayers()
print 'p=[700,800],l=[900,1000]:', my_stack.get_ranges('p'),my_stack.get_ranges('l')
In [5]:
# visual check on population inversion:
my_stack.add_inversion(0,50)
my_stack.add_inversion(1,10)
my_stack.add_inversion(3,20)
my_stack.add_inversion(5,30)
my_stack.add_inversion(-1,40)
my_stack.plot(show_inversion=True)
In [6]:
# checking which_layer function
print map(lambda j: my_stack.which_layer(my_stack.get_location(j) + 10.0),range(my_stack.get_stacksize()))
In [7]:
# check stack connection function:
my_stack = load('io_files/saved_stack.txt')
my_stack2 = displace(my_stack,0,my_stack.get_location(-1)+500e3)
my_stack2.plot()
my_stack3 = connect(my_stack,my_stack2)
my_stack3.plot()
In [7]: