mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-29 06:35:48 -04:00
Added pre-defined CASMO energy group structures to openmx.mgxs module
This commit is contained in:
parent
4ae02e3c1b
commit
f52d2ac18c
1 changed files with 62 additions and 0 deletions
|
|
@ -77,6 +77,68 @@ class EnergyGroups(object):
|
|||
cv.check_greater_than('number of group edges', len(edges), 1)
|
||||
self._group_edges = np.array(edges)
|
||||
|
||||
@staticmethod
|
||||
def get_energy_groups(name):
|
||||
"""Returns one of many commonly used and energy group structures.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str
|
||||
The name of the energy group structure. Pre-defined structures
|
||||
include "CASMO-X" (where X is 2, 4, 8, 16, 25, 40 or 70).
|
||||
|
||||
Returns
|
||||
-------
|
||||
EnergyGroups
|
||||
The energy group structure
|
||||
|
||||
"""
|
||||
|
||||
if name == "CASMO-2":
|
||||
group_edges = np.array([
|
||||
0., 6.25e-1, 2.e7])
|
||||
elif name == "CASMO-4":
|
||||
group_edges = np.array([
|
||||
0., 6.25e-1, 5.53e3, 8.21e5, 2.e7])
|
||||
elif name == "CASMO-8":
|
||||
group_edges = np.array([
|
||||
0., 5.8e-2, 1.4e-1, 2.8e-1, 6.25e-1, 4., 5.53e3, 8.21e5, 2.e7])
|
||||
elif name == "CASMO-16":
|
||||
group_edges = np.array([
|
||||
0., 3.e-2, 5.8e-2, 1.4e-1, 2.8e-1, 3.5e-1, 6.25e-1, 8.5e-1,
|
||||
9.72e-1, 1.02, 1.097, 1.15, 1.3, 4., 5.53e3, 8.21e5, 2.e7])
|
||||
elif name == "CASMO-25":
|
||||
group_edges = np.array([
|
||||
0., 3.e-2, 5.8e-2, 1.4e-1, 2.8e-1, 3.5e-1, 6.25e-1, 9.72e-1,
|
||||
1.02, 1.097, 1.15, 1.855, 4., 9.877, 1.5968e1, 1.4873e2,
|
||||
5.53e3, 9.118e3, 1.11e5, 5.e5, 8.21e5, 1.353e6, 2.231e6,
|
||||
3.679e6, 6.0655e6, 2.e7])
|
||||
elif name == "CASMO-40":
|
||||
group_edges = np.array([
|
||||
0., 1.5e-2, 3.e-2, 4.2e-2, 5.8e-2, 8.e-2, 1.e-1, 1.4e-1,
|
||||
1.8e-1, 2.2e-1, 2.8e-1, 3.5e-1, 6.25e-1, 8.5e-1, 9.5e-1,
|
||||
9.72e-1, 1.02, 1.097, 1.15, 1.3, 1.5, 1.855, 2.1, 2.6, 3.3, 4.,
|
||||
9.877, 1.5968e1, 2.77e1, 4.8052e1, 1.4873e2, 5.53e3, 9.118e3,
|
||||
1.11e5, 5.e5, 8.21e5, 1.353e6, 2.231e6, 3.679e6, 6.0655e6,
|
||||
2.e7])
|
||||
elif name == "CASMO-70":
|
||||
group_edges = np.array([
|
||||
0., 5.e-3, 1.e-2, 1.5e-2, 2.e-2, 2.5e-2, 3.e-2, 3.5e-2, 4.2e-2,
|
||||
5.e-2, 5.8e-2, 6.7e-2, 8.e-2, 1.e-1, 1.4e-1, 1.8e-1, 2.2e-1,
|
||||
2.5e-1, 2.8e-1, 3.e-1, 3.2e-1, 3.5e-1, 4.e-1, 5.e-1, 6.25e-1,
|
||||
7.8e-1, 8.5e-1, 9.1e-1, 9.5e-1, 9.72e-1, 9.96e-6, 1.02, 1.045,
|
||||
1.071, 1.097, 1.123, 1.15, 1.3, 1.5, 1.855, 2.1, 2.6, 3.3, 4.,
|
||||
9.877, 1.5968e1, 2.77e1, 4.8052e1, 7.5501e1, 1.4873e2,
|
||||
3.6726e2, 9.069e-2, 1.4251e3, 2.2395e3, 3.5191e3, 5.53e3,
|
||||
9.1183e3, 1.503e4, 2.478e4, 4.085e4, 6.734e4, 1.11e5, 1.83e5,
|
||||
3.025e5, 5.e5, 8.21e5, 1.353e6, 2.231e6, 3.679e6, 6.0655e6,
|
||||
2.e7])
|
||||
else:
|
||||
raise ValueError(f"Energy group structure \"{name}\" is not recognized")
|
||||
|
||||
energy_groups = EnergyGroups(group_edges)
|
||||
return energy_groups
|
||||
|
||||
def get_group(self, energy):
|
||||
"""Returns the energy group in which the given energy resides.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue