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 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
... ...
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 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
... ...
spectralOut.txt 100755 → 100644