Commit 78875071c21d0ce0d590da40cfed8795eda4cfb4

Authored by David Mayerich
1 parent c2b9aa35

changes since UIUC move

CMakeLists.txt 100755 → 100644
FindMatplotlib.cmake 100755 → 100644
FindPyQt4.cmake 100755 → 100644
README.md 100755 → 100644
cube27.pos 100755 → 100644
cyl3000fvp5.pos 100755 → 100644
cylslab3000.pos 100755 → 100644
etaGold.txt 100755 → 100644
etaSilver.txt 100755 → 100644
etaSilverAnalytic.txt 100755 → 100644
etaSilverPalik.txt 100755 → 100644
mpidefs-parallel.f90 100755 → 100644
mpidefs-serial.f90 100755 → 100644
msinput.inp 100755 → 100644
mstm-generic-main-v2.2.f90 100755 → 100644
mstm-gui.py 100755 → 100644
@@ -42,6 +42,7 @@ class GuiWindow(QtGui.QMainWindow): @@ -42,6 +42,7 @@ class GuiWindow(QtGui.QMainWindow):
42 self.ui.spinRadius.setValue(self.params.a) 42 self.ui.spinRadius.setValue(self.params.a)
43 43
44 def getParams(self): 44 def getParams(self):
  45 + #get the parameters from the GUI and store them in the params structure
45 self.params.minLambda = self.ui.spinStartLambda.value() 46 self.params.minLambda = self.ui.spinStartLambda.value()
46 self.params.maxLambda = self.ui.spinEndLambda.value() 47 self.params.maxLambda = self.ui.spinEndLambda.value()
47 self.params.snapshotLambda = self.ui.spinNearFieldLambda.value() 48 self.params.snapshotLambda = self.ui.spinNearFieldLambda.value()
@@ -276,15 +277,11 @@ def RunSimulation(spectralSim = True): @@ -276,15 +277,11 @@ def RunSimulation(spectralSim = True):
276 parameters['real_ref_index_scale_factor'] = n.real 277 parameters['real_ref_index_scale_factor'] = n.real
277 parameters['imag_ref_index_scale_factor'] = n.imag 278 parameters['imag_ref_index_scale_factor'] = n.imag
278 parameters['length_scale_factor'] = (2.0 * 3.14159)/l 279 parameters['length_scale_factor'] = (2.0 * 3.14159)/l
  280 + #parameters['length_scale_factor'] = 1.0/l
279 parameters['scattering_plane_angle_deg'] = gamma; 281 parameters['scattering_plane_angle_deg'] = gamma;
280 parameters['near_field_output_data'] = 0 282 parameters['near_field_output_data'] = 0
281 #parameters['number_spheres'] = 1 283 #parameters['number_spheres'] = 1
282 284
283 - #a = parameters.a;  
284 - #d = parameters.d;  
285 - #parameters.clearSpheres()  
286 - #parameters.addSphere(a, -(d + 2*a)/2, 0, 0)  
287 - #parameters.addSphere(a, (d + 2*a)/2, 0, 0)  
288 285
289 #save the scripted input file 286 #save the scripted input file
290 parameters.saveFile(l, 'scriptParams.inp') 287 parameters.saveFile(l, 'scriptParams.inp')
@@ -303,8 +300,8 @@ def RunSimulation(spectralSim = True): @@ -303,8 +300,8 @@ def RunSimulation(spectralSim = True):
303 if parameters['calculate_near_field']: 300 if parameters['calculate_near_field']:
304 results.parseNearField('nf-temp.dat') 301 results.parseNearField('nf-temp.dat')
305 302
306 - #get the scattering amplitude matrix  
307 - results.calcScatteringAmp() 303 + #get the scattering amplitude matrix
  304 + results.calcScatteringAmp()
308 305
309 306
310 #update the progress bar 307 #update the progress bar
mstm-intrinsics.f90 100755 → 100644
mstm-main-v2.2.f90 100755 → 100644
mstm-manual-2011-v2.2.pdf 100755 → 100644
No preview for this file type
mstm-modules-v2.2.f90 100755 → 100644
mstm_gallery.pdf 100755 → 100644
No preview for this file type
mstm_guiwindow.ui 100755 → 100644
mstm_materials.py 100755 → 100644
mstm_parameters.py 100755 → 100644
mstm_simparser.py 100755 → 100644
@@ -3,49 +3,49 @@ from pylab import * @@ -3,49 +3,49 @@ from pylab import *
3 3
4 class SimParserClass: 4 class SimParserClass:
5 5
6 - simResults = dict()  
7 -  
8 - sxNearField = 0  
9 - syNearField = 0  
10 - intersectedNearField = 0  
11 -  
12 - #near field data  
13 - gridNearField = []  
14 - maxNearField = []  
15 -  
16 - #the stokes matrix is read from the output  
17 - stokesMatrix = []  
18 - scatAmpMatrix = []  
19 - 6 + simResults = dict()
  7 +
  8 + sxNearField = 0
  9 + syNearField = 0
  10 + intersectedNearField = 0
  11 +
  12 + #near field data
  13 + gridNearField = []
  14 + maxNearField = []
  15 +
  16 + #the stokes matrix is read from the output
  17 + stokesMatrix = []
  18 + scatAmpMatrix = []
  19 +
20 20
21 - def __init__(self, parameters):  
22 -  
23 - self.params = parameters;  
24 -  
25 - self.simResults['lambda'] = list() 21 + def __init__(self, parameters):
  22 +
  23 + self.params = parameters;
  24 +
  25 + self.simResults['lambda'] = list()
26 26
27 - self.simResults['extinction_unpolarized'] = list()  
28 - self.simResults['extinction_parallel'] = list()  
29 - self.simResults['extinction_perpendicular'] = list()  
30 - self.simResults['extinction_total'] = list()  
31 - self.simResults['detector_field'] = list()  
32 -  
33 - self.gridNearField = []  
34 - self.maxNearField = []  
35 -  
36 -  
37 - def parseSimFile(self, l, fileName):  
38 - self.simResults['lambda'].append(l)  
39 - inFile = open(fileName, 'r') 27 + self.simResults['extinction_unpolarized'] = list()
  28 + self.simResults['extinction_parallel'] = list()
  29 + self.simResults['extinction_perpendicular'] = list()
  30 + self.simResults['extinction_total'] = list()
  31 + self.simResults['detector_field'] = list()
  32 +
  33 + self.gridNearField = []
  34 + self.maxNearField = []
  35 +
  36 +
  37 + def parseSimFile(self, l, fileName):
  38 + self.simResults['lambda'].append(l)
  39 + inFile = open(fileName, 'r')
40 40
41 -  
42 - while True:  
43 -  
44 - line = inFile.readline().strip() 41 +
  42 + while True:
  43 +
  44 + line = inFile.readline().strip()
45 45
46 #if the simulation is for a single plane wave 46 #if the simulation is for a single plane wave
47 - if int(self.params['fixed_or_random_orientation']) == 0:  
48 - if line == 'scattering matrix elements': 47 + if int(self.params['fixed_or_random_orientation']) == 0:
  48 + if line == 'scattering matrix elements':
49 #empty the stokes matrix 49 #empty the stokes matrix
50 self.stokesMatrix = [] 50 self.stokesMatrix = []
51 inFile.readline() 51 inFile.readline()
@@ -53,53 +53,54 @@ class SimParserClass: @@ -53,53 +53,54 @@ class SimParserClass:
53 values = map(float, inFile.readline().strip().split()) 53 values = map(float, inFile.readline().strip().split())
54 self.stokesMatrix.append(values) 54 self.stokesMatrix.append(values)
55 break; 55 break;
56 - elif line == 'unpolarized total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm':  
57 - values = inFile.readline().strip().split(' ')  
58 - self.simResults['extinction_unpolarized'].append(values[0])  
59 - elif line == 'parallel total ext, abs, scat efficiencies':  
60 - values = inFile.readline().strip().split(' ')  
61 - self.simResults['extinction_parallel'].append(values[0])  
62 - elif line == 'perpendicular total ext, abs, scat efficiencies':  
63 - values = inFile.readline().strip().split(' ')  
64 - self.simResults['extinction_perpendicular'].append(values[0])  
65 -  
66 - #if the simulation is for random orientations  
67 - else:  
68 - if line == 'scattering matrix elements':  
69 - break  
70 - elif line == 'total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm':  
71 - values = inFile.readline().strip().split(' ')  
72 - self.simResults['extinction_total'].append(values[0])  
73 -  
74 - def parseNearField(self, fileName):  
75 -  
76 - inFile = open(fileName, 'r')  
77 -  
78 - #get the size of the near field grid  
79 - line = inFile.readline().strip()  
80 - self.sxNearField, self.syNearField = map(int, line.split())  
81 -  
82 - #get the number of spheres that are intersected  
83 - line = inFile.readline().strip()  
84 - self.intersectedNearField = int(line)  
85 -  
86 - #process intersections here-----------  
87 - 56 + elif line == 'unpolarized total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm':
  57 + values = inFile.readline().strip().split(' ')
  58 + self.simResults['extinction_unpolarized'].append(values[0])
  59 + elif line == 'parallel total ext, abs, scat efficiencies':
  60 + values = inFile.readline().strip().split(' ')
  61 + self.simResults['extinction_parallel'].append(values[0])
  62 + elif line == 'perpendicular total ext, abs, scat efficiencies':
  63 + values = inFile.readline().strip().split(' ')
  64 + self.simResults['extinction_perpendicular'].append(values[0])
  65 +
  66 + #if the simulation is for random orientations
  67 + else:
  68 + if line == 'scattering matrix elements':
  69 + break
  70 + elif line == 'total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm':
  71 + values = inFile.readline().strip().split(' ')
  72 + self.simResults['extinction_total'].append(values[0])
  73 +
  74 + def parseNearField(self, fileName):
  75 +
  76 + inFile = open(fileName, 'r')
  77 +
  78 + #get the size of the near field grid
  79 + line = inFile.readline().strip()
  80 + self.sxNearField, self.syNearField = map(int, line.split())
  81 +
  82 + #get the number of spheres that are intersected
  83 + line = inFile.readline().strip()
  84 + self.intersectedNearField = int(line)
  85 +
  86 + #process intersections here-----------
  87 +
88 88
89 - #get the field values  
90 - self.gridNearField = []  
91 - for y in range(self.syNearField):  
92 - self.gridNearField.append([])  
93 - for x in range(self.sxNearField):  
94 - line = inFile.readline().strip()  
95 - values = map(float, line.split())  
96 - self.gridNearField[y].append(values[2])  
97 -  
98 - E = array(self.gridNearField)  
99 - self.maxNearField.append(abs(E).max())  
100 -  
101 - #calculate and return the scattering amplitude matrix  
102 - def calcScatteringAmp(self): 89 + #get the field values
  90 + self.gridNearField = []
  91 + for y in range(self.syNearField):
  92 + self.gridNearField.append([])
  93 + for x in range(self.sxNearField):
  94 + line = inFile.readline().strip()
  95 + values = map(float, line.split())
  96 + self.gridNearField[y].append(values[2])
  97 +
  98 + E = array(self.gridNearField)
  99 + #the enhancement is E^4 (so (E^2)^2)
  100 + self.maxNearField.append(pow(abs(E).max(), 2))
  101 +
  102 + #calculate and return the scattering amplitude matrix
  103 + def calcScatteringAmp(self):
103 #compute the number of entries in the stokes matrix 104 #compute the number of entries in the stokes matrix
104 nEntries = len(self.stokesMatrix) 105 nEntries = len(self.stokesMatrix)
105 106
@@ -122,29 +123,35 @@ class SimParserClass: @@ -122,29 +123,35 @@ class SimParserClass:
122 E = [S[0], S[2]] 123 E = [S[0], S[2]]
123 self.simResults['detector_field'].append(E) 124 self.simResults['detector_field'].append(E)
124 print(E) 125 print(E)
125 - 126 +
126 127
127 - def saveFile(self, fileName):  
128 - outFile = open(fileName, 'w')  
129 - outFile.write(str(self))  
130 - outFile.close() 128 + def saveFile(self, fileName):
  129 + outFile = open(fileName, 'w')
  130 + outFile.write(str(self))
  131 + outFile.close()
131 132
132 - def __getitem__(self, key):  
133 - return self.simResults[key]; 133 + def __getitem__(self, key):
  134 + return self.simResults[key];
134 135
135 - def __str__(self):  
136 - result = ''; 136 + def __str__(self):
  137 + result = '';
137 138
138 - for i in range(len(self.simResults['lambda'])):  
139 - result += str(self.simResults['lambda'][i])  
140 - result += '\t' + str(self.simResults['extinction_unpolarized'][i])  
141 - result += '\t' + str(self.simResults['extinction_parallel'][i])  
142 - result += '\t' + str(self.simResults['extinction_perpendicular'][i])  
143 - result += '\t' + str(self.simResults['detector_field'][i][0]) + '\t' + str(self.simResults['detector_field'][i][1])  
144 -  
145 - #parse the near field if it is included in the simulation  
146 - #if int(parameters['calculate_near_field']) == 1:  
147 - # result += '\t' + str(maxNearField)  
148 -  
149 - result += '\n'  
150 - return result 139 + for i in range(len(self.simResults['lambda'])):
  140 + result += str(self.simResults['lambda'][i])
  141 + if int(self.params['fixed_or_random_orientation']) == 0:
  142 + result += '\t' + str(self.simResults['extinction_unpolarized'][i])
  143 + result += '\t' + str(self.simResults['extinction_parallel'][i])
  144 + result += '\t' + str(self.simResults['extinction_perpendicular'][i])
  145 + else:
  146 + result += '\t' + str(self.simResults['extinction_total'][i])
  147 +
  148 + #result += '\t' + str(self.simResults['detector_field'][i][0]) + '\t' + str(self.simResults['detector_field'][i][1])
  149 +
  150 +
  151 +
  152 + #parse the near field if it is included in the simulation
  153 + #if int(parameters['calculate_near_field']) == 1:
  154 + # result += '\t' + str(maxNearField)
  155 +
  156 + result += '\n'
  157 + return result
spectralOut.txt 100755 → 100644