Commit 78875071c21d0ce0d590da40cfed8795eda4cfb4
1 parent
c2b9aa35
changes since UIUC move
Showing
26 changed files
with
117 additions
and
113 deletions
Show diff stats
... | ... | @@ -42,6 +42,7 @@ class GuiWindow(QtGui.QMainWindow): |
42 | 42 | self.ui.spinRadius.setValue(self.params.a) |
43 | 43 | |
44 | 44 | def getParams(self): |
45 | + #get the parameters from the GUI and store them in the params structure | |
45 | 46 | self.params.minLambda = self.ui.spinStartLambda.value() |
46 | 47 | self.params.maxLambda = self.ui.spinEndLambda.value() |
47 | 48 | self.params.snapshotLambda = self.ui.spinNearFieldLambda.value() |
... | ... | @@ -276,15 +277,11 @@ def RunSimulation(spectralSim = True): |
276 | 277 | parameters['real_ref_index_scale_factor'] = n.real |
277 | 278 | parameters['imag_ref_index_scale_factor'] = n.imag |
278 | 279 | parameters['length_scale_factor'] = (2.0 * 3.14159)/l |
280 | + #parameters['length_scale_factor'] = 1.0/l | |
279 | 281 | parameters['scattering_plane_angle_deg'] = gamma; |
280 | 282 | parameters['near_field_output_data'] = 0 |
281 | 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 | 286 | #save the scripted input file |
290 | 287 | parameters.saveFile(l, 'scriptParams.inp') |
... | ... | @@ -303,8 +300,8 @@ def RunSimulation(spectralSim = True): |
303 | 300 | if parameters['calculate_near_field']: |
304 | 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 | 307 | #update the progress bar | ... | ... |
No preview for this file type
No preview for this file type
... | ... | @@ -3,49 +3,49 @@ from pylab import * |
3 | 3 | |
4 | 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 | 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 | 49 | #empty the stokes matrix |
50 | 50 | self.stokesMatrix = [] |
51 | 51 | inFile.readline() |
... | ... | @@ -53,53 +53,54 @@ class SimParserClass: |
53 | 53 | values = map(float, inFile.readline().strip().split()) |
54 | 54 | self.stokesMatrix.append(values) |
55 | 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 | 104 | #compute the number of entries in the stokes matrix |
104 | 105 | nEntries = len(self.stokesMatrix) |
105 | 106 | |
... | ... | @@ -122,29 +123,35 @@ class SimParserClass: |
122 | 123 | E = [S[0], S[2]] |
123 | 124 | self.simResults['detector_field'].append(E) |
124 | 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 | ... | ... |