Skip to content

Commit 1d09467

Browse files
Convert ranks to top level FOMs
1 parent 4f73789 commit 1d09467

File tree

1 file changed

+31
-3
lines changed

1 file changed

+31
-3
lines changed

var/ramble/repos/builtin/applications/openfoam-org/application.py

+31-3
Original file line numberDiff line numberDiff line change
@@ -210,28 +210,56 @@ class OpenfoamOrg(SpackApplication):
210210

211211
log_prefix = os.path.join(Expander.expansion_str('experiment_run_dir'), 'log.')
212212

213+
config_file = "{experiment_run_dir}/openfoam_config"
214+
213215
figure_of_merit('Number of cells', log_file=(log_prefix + 'snappyHexMesh'),
214216
fom_regex=r'Layer mesh\s+:\s+cells:(?P<ncells>[0-9]+)\s+.*',
215217
group_name='ncells', units='')
216218

217-
figure_of_merit('snappyHexMesh Time ({n_ranks_hex} ranks)', log_file=(log_prefix + 'snappyHexMesh'),
219+
figure_of_merit('snappyHexMesh Time', log_file=(log_prefix + 'snappyHexMesh'),
218220
fom_regex=r'Finished meshing in = (?P<mesh_time>[0-9]+\.?[0-9]*).*',
219221
group_name='mesh_time', units='s')
220222

221-
figure_of_merit('simpleFoam Time ({n_ranks} ranks)', log_file=(log_prefix + 'simpleFoam'),
223+
figure_of_merit('snappyHexMesh Ranks', log_file=config_file,
224+
fom_regex=r'snappyHexMesh ranks: (?P<ranks>[0-9]+)',
225+
group_name='ranks', units='')
226+
227+
figure_of_merit('simpleFoam Time', log_file=(log_prefix + 'simpleFoam'),
222228
fom_regex=r'\s*ExecutionTime = (?P<foam_time>[0-9]+\.?[0-9]*).*',
223229
group_name='foam_time', units='s')
224230

225-
figure_of_merit('potentialFoam Time ({n_ranks} ranks)', log_file=(log_prefix + 'potentialFoam'),
231+
figure_of_merit('simpleFoam Time', log_file=(log_prefix + 'simpleFoam'),
226232
fom_regex=r'\s*ExecutionTime = (?P<foam_time>[0-9]+\.?[0-9]*).*',
227233
group_name='foam_time', units='s')
228234

235+
figure_of_merit('simpleFoam Ranks', log_file=config_file,
236+
fom_regex=r'simpleFoam ranks: (?P<ranks>[0-9]+)',
237+
group_name='ranks', units='')
238+
239+
figure_of_merit('potentialFoam Time', log_file=(log_prefix + 'potentialFoam'),
240+
fom_regex=r'\s*ExecutionTime = (?P<foam_time>[0-9]+\.?[0-9]*).*',
241+
group_name='foam_time', units='s')
242+
243+
figure_of_merit('potentialFoam Ranks', log_file=config_file,
244+
fom_regex=r'potentialFoam ranks: (?P<ranks>[0-9]+)',
245+
group_name='ranks', units='')
246+
229247
success_criteria('snappyHexMesh_completed', mode='string', match='Finalising parallel run',
230248
file='{experiment_run_dir}/log.snappyHexMesh')
231249

232250
success_criteria('simpleFoam_completed', mode='string', match='Finalising parallel run',
233251
file='{experiment_run_dir}/log.simpleFoam')
234252

253+
def _prepare_analysis(self, workspace, app_inst=None):
254+
conf_path = self.expander.expand_var(self.config_file)
255+
256+
with open(conf_path, "w+") as f:
257+
hex_ranks = self.expander.expand_var("{n_ranks_hex}")
258+
simple_ranks = self.expander.expand_var("{n_ranks}")
259+
f.write(f"snappyHexMesh ranks: {hex_ranks}\n")
260+
f.write(f"simpleFoam ranks: {simple_ranks}\n")
261+
f.write(f"potentialFoam ranks: {simple_ranks}\n")
262+
235263
def _define_commands(self, exec_graph):
236264
export_prefix = self.expander.expand_var_name('export_prefix')
237265
export_vars = self.expander.expand_var_name('export_variables').split(',')

0 commit comments

Comments
 (0)