Skip to content

Commit faf1e27

Browse files
committed
Renames stored probe data and marks it as private.
1 parent ddff666 commit faf1e27

File tree

7 files changed

+64
-89
lines changed

7 files changed

+64
-89
lines changed

src_pyWrapper/pyWrapper.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,34 +38,34 @@ def __init__(self, probe_filename):
3838

3939
tag = self._getTagFromFilename(self.filename)
4040
if tag not in Probe.MOVIE_TAGS:
41-
self.df = pd.read_csv(self.filename, sep='\\s+')
41+
self._recordedData = pd.read_csv(self.filename, sep='\\s+')
4242

4343
position_str = self._getPositionStrFromFilename(self.filename)
4444
if tag in Probe.CURRENT_PROBE_TAGS:
4545
self.type = 'wire'
4646
self.cell = self._positionStrToCell(position_str)
4747
self.segment = int(position_str.split('_s')[1])
4848
if self.domainType == 'time':
49-
self.df = self.df.rename(columns={
49+
self._recordedData = self._recordedData.rename(columns={
5050
't': 'time',
51-
self.df.columns[1]: 'current'
51+
self._recordedData.columns[1]: 'current'
5252
})
5353
elif self.domainType == 'frequency':
54-
self.df = self.df.rename(columns={
55-
self.df.columns[0]: 'frequency',
56-
self.df.columns[1]: 'magnitude',
57-
self.df.columns[2]: 'phase'
54+
self._recordedData = self._recordedData.rename(columns={
55+
self._recordedData.columns[0]: 'frequency',
56+
self._recordedData.columns[1]: 'magnitude',
57+
self._recordedData.columns[2]: 'phase'
5858
})
5959
elif tag in Probe.POINT_PROBE_TAGS:
6060
self.type = 'point'
6161
self.cell = self._positionStrToCell(position_str)
6262
self.field = tag[1]
6363
self.direction = tag[2]
6464
if self.domainType == 'time':
65-
self.df = self.df.rename(columns={
65+
self._recordedData = self._recordedData.rename(columns={
6666
't': 'time',
67-
self.df.columns[1]: 'field',
68-
self.df.columns[2]: 'incident'
67+
self._recordedData.columns[1]: 'field',
68+
self._recordedData.columns[2]: 'incident'
6969
})
7070
elif tag in Probe.FAR_FIELD_TAG:
7171
self.type = 'farField'
@@ -81,11 +81,10 @@ def __init__(self, probe_filename):
8181
self.type = 'mtln'
8282
self.cell = self._positionStrToCell(position_str)
8383
else:
84-
raise ValueError(
85-
"Unable to determine probe name or type for a probe with name:" + basename)
84+
raise ValueError("Unable to determine probe type")
8685

8786
def __getitem__(self, key):
88-
return self.df[key]
87+
return self._recordedData[key]
8988

9089
@staticmethod
9190
def _getCaseNameFromFilename(fn):
@@ -224,7 +223,9 @@ def run(self):
224223
case_name = self.getCaseName() + ".json"
225224
self.output = subprocess.run(
226225
[self.path_to_exe, "-i", case_name]+self.flags)
226+
227227
self._hasRun = True
228+
assert self.hasFinishedSuccessfully()
228229

229230
def hasFinishedSuccessfully(self):
230231
if self._hasRun and (self.output.returncode == 0):

test/pyWrapper/test_full_system.py

Lines changed: 26 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ def test_shieldedPair(tmp_path):
1010
flags=['-mtlnwires'],
1111
run_in_folder=tmp_path)
1212
solver.run()
13-
assert solver.hasFinishedSuccessfully() == True
1413

1514
probe_files = ['shieldedPair.fdtd_wire_start_bundle_line_0_V_75_74_74.dat',
1615
'shieldedPair.fdtd_wire_start_bundle_line_0_I_75_74_74.dat',
@@ -25,11 +24,11 @@ def test_shieldedPair(tmp_path):
2524

2625
for i in [2, 3]:
2726
p_solved = Probe(probe_files[i])
28-
assert np.allclose(p_expected[i].df.to_numpy()[:, 0:3], p_solved.df.to_numpy()[
27+
assert np.allclose(p_expected[i].df.to_numpy()[:, 0:3], p_solved._recordedData.to_numpy()[
2928
:, 0:3], rtol=5e-2, atol=0.2)
3029
for i in [0, 1, 4, 5]:
3130
p_solved = Probe(probe_files[i])
32-
assert np.allclose(p_expected[i].df.to_numpy()[:, 0:4], p_solved.df.to_numpy()[
31+
assert np.allclose(p_expected[i].df.to_numpy()[:, 0:4], p_solved._recordedData.to_numpy()[
3332
:, 0:4], rtol=5e-2, atol=0.2)
3433

3534

@@ -44,7 +43,6 @@ def test_coated_antenna(tmp_path):
4443
flags=['-mtlnwires'],
4544
run_in_folder=tmp_path)
4645
solver.run()
47-
assert solver.hasFinishedSuccessfully() == True
4846

4947
probe_current = solver.getSolvedProbeFilenames("mid_point_Wz")[0]
5048
probe_files = [probe_current]
@@ -54,16 +52,16 @@ def test_coated_antenna(tmp_path):
5452

5553
p_solved = Probe(probe_files[0])
5654
assert np.allclose(
57-
p_expected.df.to_numpy()[:, 0],
58-
p_solved.df.to_numpy()[:, 0],
55+
p_expected._recordedData.to_numpy()[:, 0],
56+
p_solved._recordedData.to_numpy()[:, 0],
5957
rtol=0.0, atol=10e-8)
6058
assert np.allclose(
61-
p_expected.df.to_numpy()[:, 1],
62-
p_solved.df.to_numpy()[:, 1],
59+
p_expected._recordedData.to_numpy()[:, 1],
60+
p_solved._recordedData.to_numpy()[:, 1],
6361
rtol=0.0, atol=10e-8)
6462
assert np.allclose(
65-
p_expected.df.to_numpy()[:, 2],
66-
p_solved.df.to_numpy()[:, 2],
63+
p_expected._recordedData.to_numpy()[:, 2],
64+
p_solved._recordedData.to_numpy()[:, 2],
6765
rtol=0.0, atol=10e-6)
6866

6967

@@ -74,7 +72,6 @@ def test_holland(tmp_path):
7472
run_in_folder=tmp_path)
7573

7674
solver.run()
77-
assert solver.hasFinishedSuccessfully() == True
7875

7976
probe_current = solver.getSolvedProbeFilenames("mid_point_Wz")[0]
8077
probe_files = [probe_current]
@@ -84,8 +81,8 @@ def test_holland(tmp_path):
8481

8582
p_solved = Probe(probe_files[0])
8683
assert np.allclose(
87-
p_expected.df.to_numpy()[:, 0:3],
88-
p_solved.df.to_numpy()[:, 0:3],
84+
p_expected._recordedData.to_numpy()[:, 0:3],
85+
p_solved._recordedData.to_numpy()[:, 0:3],
8986
rtol=1e-5, atol=1e-6)
9087

9188

@@ -97,7 +94,6 @@ def test_holland_mtln(tmp_path):
9794
flags=['-mtlnwires'], run_in_folder=tmp_path)
9895

9996
solver.run()
100-
assert solver.hasFinishedSuccessfully() == True
10197

10298
probe_current = solver.getSolvedProbeFilenames("mid_point_Wz")[0]
10399
probe_files = [probe_current]
@@ -107,8 +103,8 @@ def test_holland_mtln(tmp_path):
107103

108104
p_solved = Probe(probe_files[0])
109105
assert np.allclose(
110-
p_expected.df.to_numpy()[:, 0:3],
111-
p_solved.df.to_numpy()[:, 0:3],
106+
p_expected._recordedData.to_numpy()[:, 0:3],
107+
p_solved._recordedData.to_numpy()[:, 0:3],
112108
rtol=1e-5, atol=1e-6)
113109

114110

@@ -117,7 +113,6 @@ def test_towelHanger(tmp_path):
117113
solver = FDTD(input_filename=fn, path_to_exe=SEMBA_EXE,
118114
run_in_folder=tmp_path)
119115
solver.run()
120-
assert solver.hasFinishedSuccessfully() == True
121116

122117
probe_files = [solver.getSolvedProbeFilenames("wire_start")[0],
123118
solver.getSolvedProbeFilenames("wire_mid")[0],
@@ -130,7 +125,7 @@ def test_towelHanger(tmp_path):
130125

131126
for i in range(3):
132127
p_solved = Probe(probe_files[i])
133-
assert np.allclose(p_expected[i].df.to_numpy()[:, 0:3], p_solved.df.to_numpy()[
128+
assert np.allclose(p_expected[i]._recordedData.to_numpy()[:, 0:3], p_solved._recordedData.to_numpy()[
134129
:, 0:3], rtol=5e-2, atol=5e-2)
135130

136131

@@ -145,18 +140,16 @@ def test_sphere(tmp_path):
145140
solver['probes'][0]['domain']['finalFrequency'] = 1e9
146141

147142
solver.run()
148-
assert solver.hasFinishedSuccessfully()
149143

150144
# semba-fdtd seems to always use the name Far for "far field" probes.
151145
far_field_probe_files = solver.getSolvedProbeFilenames("Far")
152-
assert solver.hasFinishedSuccessfully() == True
146+
assert
153147
assert len(far_field_probe_files) == 1
154148
p = Probe(far_field_probe_files[0])
155149
assert p.type == 'farField'
156150

157151
electric_field_movie_files = solver.getSolvedProbeFilenames(
158152
"electric_field_movie")
159-
assert solver.hasFinishedSuccessfully() == True
160153
assert len(electric_field_movie_files) == 3
161154
p = Probe(electric_field_movie_files[0])
162155
assert p.type == 'movie'
@@ -168,7 +161,6 @@ def test_movie_in_planewave_in_box(tmp_path):
168161
fn = CASES_FOLDER + 'planewave/pw-in-box-with-movie.fdtd.json'
169162
solver = FDTD(fn, path_to_exe=SEMBA_EXE, run_in_folder=tmp_path)
170163
solver.run()
171-
assert solver.hasFinishedSuccessfully()
172164

173165
h5file = solver.getSolvedProbeFilenames("electric_field_movie")[2]
174166
with h5py.File(h5file, "r") as f:
@@ -186,50 +178,48 @@ def test_planewave_in_box(tmp_path):
186178
solver = FDTD(fn, path_to_exe=SEMBA_EXE, run_in_folder=tmp_path)
187179

188180
solver.run()
189-
assert solver.hasFinishedSuccessfully()
190181

191182
before = Probe(solver.getSolvedProbeFilenames("before")[0])
192183
inbox = Probe(solver.getSolvedProbeFilenames("inbox")[0])
193184
after = Probe(solver.getSolvedProbeFilenames("after")[0])
194185

195-
np.allclose(inbox.df['field'], inbox.df['incident'])
196-
zeros = np.zeros_like(before.df['field'])
197-
np.allclose(before.df['field'], zeros)
198-
np.allclose(after.df['field'], zeros)
186+
np.allclose(inbox._recordedData['field'], inbox._recordedData['incident'])
187+
zeros = np.zeros_like(before._recordedData['field'])
188+
np.allclose(before._recordedData['field'], zeros)
189+
np.allclose(after._recordedData['field'], zeros)
199190

200191

201192
def test_planewave_with_periodic_boundaries(tmp_path):
202193
fn = CASES_FOLDER + 'planewave/pw-with-periodic.fdtd.json'
203194
solver = FDTD(fn, path_to_exe=SEMBA_EXE, run_in_folder=tmp_path)
204195

205196
solver.run()
206-
assert solver.hasFinishedSuccessfully()
197+
assert
207198

208199
before = Probe(solver.getSolvedProbeFilenames("before")[0])
209200
inbox = Probe(solver.getSolvedProbeFilenames("inbox")[0])
210201
after = Probe(solver.getSolvedProbeFilenames("after")[0])
211202

212-
np.allclose(inbox.df['field'], inbox.df['incident'])
213-
zeros = np.zeros_like(before.df['field'])
214-
np.allclose(before.df['field'], zeros)
215-
np.allclose(after.df['field'], zeros)
203+
np.allclose(inbox._recordedData['field'], inbox._recordedData['incident'])
204+
zeros = np.zeros_like(before._recordedData['field'])
205+
np.allclose(before._recordedData['field'], zeros)
206+
np.allclose(after._recordedData['field'], zeros)
216207

217208

218209
def test_sgbc_shielding_effectiveness(tmp_path):
219210
fn = CASES_FOLDER + 'sgbcShieldingEffectiveness/shieldingEffectiveness.fdtd.json'
220211
solver = FDTD(fn, path_to_exe=SEMBA_EXE, run_in_folder=tmp_path)
221212

222213
solver.run()
223-
assert solver.hasFinishedSuccessfully()
224214

225215
# FDTD results
226216
back = Probe(solver.getSolvedProbeFilenames("back")[0])
227217

228-
t = back.df['time']
218+
t = back._recordedData['time']
229219
dt = t[1] - t[0]
230220
fq = fftfreq(len(t))/dt
231-
INC = fft(back.df['incident'])
232-
BACK = fft(back.df['field'])
221+
INC = fft(back._recordedData['incident'])
222+
BACK = fft(back._recordedData['field'])
233223
S21 = BACK/INC
234224

235225
fmin = 8e6

test/pyWrapper/test_integration.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,9 @@ def test_holland_case_checking_number_of_outputs(tmp_path):
99
solver['general']['numberOfSteps'] = number_of_steps
1010

1111
solver.run()
12-
assert solver.hasFinishedSuccessfully()
1312

1413
probe_files = solver.getSolvedProbeFilenames("mid_point")
1514

16-
assert solver.hasFinishedSuccessfully() == True
1715
assert len(probe_files) == 1
1816
assert 'holland1981.fdtd_mid_point_Wz_11_11_12_s2.dat' == probe_files[0]
1917
assert countLinesInFile(probe_files[0]) == number_of_steps + 2
@@ -30,7 +28,6 @@ def test_towel_hanger_case_creates_output_probes(tmp_path):
3028
probe_mid = solver.getSolvedProbeFilenames("wire_mid")
3129
probe_end = solver.getSolvedProbeFilenames("wire_end")
3230

33-
assert solver.hasFinishedSuccessfully() == True
3431
assert len(probe_start) == 1
3532
assert len(probe_mid) == 1
3633
assert len(probe_end) == 1
@@ -69,8 +66,7 @@ def test_sgbc_with_mapvtk_checking_tagnumbers(tmp_path):
6966
solver['general']['numberOfSteps'] = 1
7067

7168
solver.run()
72-
assert solver.hasFinishedSuccessfully() == True
73-
69+
7470
vtkmapfile = solver.getVTKMap()
7571
assert os.path.isfile(vtkmapfile)
7672

0 commit comments

Comments
 (0)