mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-24 03:55:38 -04:00
69 lines
2.6 KiB
Python
69 lines
2.6 KiB
Python
import os
|
|
from tests.regression_tests.mg_temperature.build_2g import *
|
|
from tests.testing_harness import *
|
|
import shutil
|
|
|
|
|
|
class MgTemperatureTestHarness(TestHarness):
|
|
|
|
def execute_test(self, update=False):
|
|
"""Run OpenMC with the appropriate arguments and check the outputs."""
|
|
base_dir = os.getcwd()
|
|
overall_results = []
|
|
macro_xs = create_openmc_2mg_libs(names)
|
|
types = ('micro', 'micro',
|
|
'micro', 'micro',
|
|
'micro',
|
|
'macro', 'macro',
|
|
'macro', 'macro',
|
|
'macro')
|
|
temperatures = (300., 600., 900.,
|
|
520., 600.,
|
|
300., 600., 900.,
|
|
520., 600)
|
|
methods = 2 * (3 * ('nearest',) + 2 * ('interpolation',))
|
|
analyt_interp = 10 * [None]
|
|
analyt_interp[3] = (600. - 520.) / 300.
|
|
analyt_interp[8] = (600. - 520.) / 300.
|
|
try:
|
|
if (os.path.isdir("./temp")):
|
|
shutil.rmtree("./temp")
|
|
os.mkdir("temp")
|
|
os.chdir(os.path.join(base_dir, "temp"))
|
|
for cs, t, m, ai in zip(types, temperatures, methods, analyt_interp):
|
|
if (cs == 'macro'):
|
|
build_inf_model(['macro'], '../macro_2g.h5', t, m)
|
|
else:
|
|
build_inf_model(names, '../micro_2g.h5', t, m)
|
|
if not ai:
|
|
kanalyt = analytical_solution_2g_therm(macro_xs[t])
|
|
else:
|
|
kanalyt = analytical_solution_2g_therm(macro_xs[300],
|
|
macro_xs[600], ai)
|
|
self._run_openmc()
|
|
self._test_output_created()
|
|
string = "{}, method: {}, t: {}, {}kanalyt\n{:12.6E}\n"
|
|
results = string.format(cs, m, t, self._get_results(), kanalyt)
|
|
overall_results.append(results)
|
|
os.chdir(base_dir)
|
|
self._write_results("".join(overall_results))
|
|
if update:
|
|
self._overwrite_results()
|
|
else:
|
|
self._compare_results()
|
|
finally:
|
|
os.chdir(base_dir)
|
|
if (os.path.isdir("./temp")):
|
|
shutil.rmtree("./temp")
|
|
self._cleanup()
|
|
for f in ['micro_2g.h5', 'macro_2g.h5']:
|
|
if os.path.exists(f):
|
|
os.remove(f)
|
|
|
|
def update_results(self):
|
|
self.execute_test(update=True)
|
|
|
|
|
|
def test_mg_temperature():
|
|
harness = MgTemperatureTestHarness('statepoint.200.h5')
|
|
harness.main()
|