From da152b9b0f31cb81f25d4781025e77a401aef044 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Tue, 16 Jul 2019 16:30:01 -0500 Subject: [PATCH] Updating DagMC s.t. their temperatures can be set using material temps. Also addressig a bug in closing an hdf5 dataset and adding tests. --- src/dagmc.cpp | 2 +- src/summary.cpp | 1 + tests/regression_tests/dagmc/legacy/dagmc.h5m | Bin 1233372 -> 1233364 bytes .../dagmc/legacy/inputs_true.dat | 4 ++- tests/regression_tests/dagmc/legacy/test.py | 28 ++++++++++++++++++ 5 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/dagmc.cpp b/src/dagmc.cpp index 29e89b4bc..1e6f3d02a 100644 --- a/src/dagmc.cpp +++ b/src/dagmc.cpp @@ -290,7 +290,7 @@ void load_dagmc_geometry() if (c->material_[0] == MATERIAL_VOID) { continue; } - auto& mat = model::materials[c->material_[0]]; + auto& mat = model::materials[model::material_map[c->material_[0]]]; if (model::DAG->has_prop(vol_handle, "temp")) { rval = model::DAG->prop_value(vol_handle, "temp", temp_value); MB_CHK_ERR_CONT(rval); diff --git a/src/summary.cpp b/src/summary.cpp index 500a5c15c..d2721f97e 100644 --- a/src/summary.cpp +++ b/src/summary.cpp @@ -92,6 +92,7 @@ void write_geometry(hid_t file) #ifdef DAGMC if (settings::dagmc) { write_attribute(geom_group, "dagmc", 1); + close_group(geom_group); return; } #endif diff --git a/tests/regression_tests/dagmc/legacy/dagmc.h5m b/tests/regression_tests/dagmc/legacy/dagmc.h5m index c90b6d674d9b016aba5b8614d952d90205c355f2..fbbe9a34a8c01b245375acaffc5e3f2f33fd60aa 100644 GIT binary patch delta 769 zcmcb!*!#+2?+F@=S2k)MmSH(-s24l=gUmyDbA3ZIeM3to1_8i9G_fMs{rxzg4#oqSCwlp zy*WO)rw%H%p>E;knH3LN7W`I^jWbnhD@%W0yBQfE2cjuCihH*IAQaKsY+~2 zKBp%CSqycP!je}^Hm4DMgQbTipPH+|sdGjM5@VCAqa-0#KX9C|dBwaSRz{u4zZXNz z2Wgi%kF5O_(09_ypx$vh&Am#vKP9Ww2Vs0Sj0b*Vt=G%T_9sh><=?a?s9NTB;2{>?Z c@+m-k(lh;`xqx{44+{Yx7To^BLg>j10QS=u!vFvP delta 774 zcmcbz*!#|6?+F@=cQ$GsmSOq)r6*?c2bqWR#`=b4`i7QF3=qHpr41~s49u)dEjNFV zjS&E=-W;G8!wF$+Fqh$gm~g@V72}M_yB!oE+y@RbI0Y0SMhHx9baZ5HU|^hF8zm0W z_rQ^d5yJZ51Z8byES6a*U?faD~wYJqg1 z>I;)sXFye7$gpB(l$p$30Ckf=!7Ii!lcfux(hh}9tW0l?Pp+v|fcSbr?V-u5$~Bn2 z9G~1%2Nl~;w{Y{!iia$WB9p6Yq2?^8eFZeOyAEp3hPq2^lP9$)!3;S(IlE1LGFLBD zz@c!#=7{!9tdphspdtpnuNXt%#%*@!vtnb6nOr>uX8e>_Oe`lS_e_O2Ve^KmN^DFa zrzZbd40V&jl2=SFrxARErH3Y;nybNSaz+RoFbtEcqa-1&dEhu<^NM*vtc)g;e=mlb z57Mr39$EV<}B5$VG@z8VvAgoBRM6r5DyZaoIrS79hz1J=uI?UHgr7 zj6lo;#LPg<0>rF9%m&2lK+FNeoIuP4#N0s41H`;Q%(wl - + @@ -22,6 +22,8 @@ -4 -4 -4 4 4 4 + 7 + 50.0 true diff --git a/tests/regression_tests/dagmc/legacy/test.py b/tests/regression_tests/dagmc/legacy/test.py index b6f2f55e2..38c3c4267 100644 --- a/tests/regression_tests/dagmc/legacy/test.py +++ b/tests/regression_tests/dagmc/legacy/test.py @@ -5,10 +5,19 @@ from openmc.stats import Box import pytest from tests.testing_harness import PyAPITestHarness +import numpy as np + pytestmark = pytest.mark.skipif( not openmc.capi._dagmc_enabled(), reason="DAGMC CAD geometry is not enabled.") + +class DAGMCPyAPITestHarness(PyAPITestHarness): + + def _compare_inputs(self): + super()._compare_inputs() + + def test_dagmc(): model = openmc.model.Model() @@ -16,6 +25,7 @@ def test_dagmc(): model.settings.batches = 5 model.settings.inactive = 0 model.settings.particles = 100 + model.settings.temperature = {'tolerance': 50.0} source = openmc.Source(space=Box([-4, -4, -4], [ 4, 4, 4])) @@ -34,6 +44,7 @@ def test_dagmc(): u235.add_nuclide('U235', 1.0, 'ao') u235.set_density('g/cc', 11) u235.id = 40 + u235.temperature = 320 water = openmc.Material(name="water") water.add_nuclide('H1', 2.0, 'ao') @@ -46,4 +57,21 @@ def test_dagmc(): model.materials = mats harness = PyAPITestHarness('statepoint.5.h5', model=model) + model.settings.verbosity = 1 + harness._build_inputs() + + # check cell temps as well here + openmc.capi.init([]) + + expected_temps = { 1 : 320.0, # assigned by material + 2 : 300.0, # assigned in dagmc file + 3 : 293.6 } # assigned by default + + for cell_id, temp in expected_temps.items(): + capi_cell = openmc.capi.cells[cell_id] + assert np.isclose(capi_cell.get_temperature(), temp) + + openmc.capi.finalize() + + model.settings.verbosity = 7 harness.main()