mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-24 20:15:26 -04:00
55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
import os
|
|
|
|
import numpy as np
|
|
|
|
import openmc
|
|
from openmc.examples import slab_mg
|
|
|
|
from tests.testing_harness import PyAPITestHarness
|
|
|
|
|
|
def create_library():
|
|
# Instantiate the energy group data and file object
|
|
groups = openmc.mgxs.EnergyGroups(group_edges=[0.0, 0.625, 20.0e6])
|
|
|
|
mg_cross_sections_file = openmc.MGXSLibrary(groups)
|
|
|
|
# Make the base, isotropic data
|
|
nu = [2.50, 2.50]
|
|
fiss = np.array([0.002817, 0.097])
|
|
capture = [0.008708, 0.02518]
|
|
absorption = np.add(capture, fiss)
|
|
scatter = np.array(
|
|
[[[0.31980, 0.06694, 0.003], [0.004555, -0.0003972, 0.00002]],
|
|
[[0.00000, 0.00000, 0.000], [0.424100, 0.05439000, 0.0025]]])
|
|
total = [0.33588, 0.54628]
|
|
chi = [1., 0.]
|
|
|
|
mat_1 = openmc.XSdata('mat_1', groups)
|
|
mat_1.order = 2
|
|
mat_1.set_nu_fission(np.multiply(nu, fiss))
|
|
mat_1.set_absorption(absorption)
|
|
mat_1.set_scatter_matrix(scatter)
|
|
mat_1.set_total(total)
|
|
mat_1.set_chi(chi)
|
|
mg_cross_sections_file.add_xsdata(mat_1)
|
|
|
|
# Write the file
|
|
mg_cross_sections_file.export_to_hdf5('2g.h5')
|
|
|
|
|
|
class MGXSTestHarness(PyAPITestHarness):
|
|
def _cleanup(self):
|
|
super()._cleanup()
|
|
f = '2g.h5'
|
|
if os.path.exists(f):
|
|
os.remove(f)
|
|
|
|
|
|
def test_mg_max_order():
|
|
create_library()
|
|
model = slab_mg()
|
|
model.settings.max_order = 1
|
|
|
|
harness = PyAPITestHarness('statepoint.10.h5', model)
|
|
harness.main()
|