mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 06:05:58 -04:00
Merge pull request #705 from paulromano/anl-ne-requests
An assortment of fixes
This commit is contained in:
commit
e35b01d9ab
11 changed files with 129 additions and 107 deletions
|
|
@ -204,20 +204,22 @@ should be used:
|
|||
Compiling with MPI
|
||||
++++++++++++++++++
|
||||
|
||||
To compile with MPI, set the :envvar:`FC` environment variable to the path to
|
||||
the MPI Fortran wrapper. For example, in a bash shell:
|
||||
To compile with MPI, set the :envvar:`FC` and :envvar:`CC` environment variables
|
||||
to the path to the MPI Fortran and C wrappers, respectively. For example, in a
|
||||
bash shell:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
export FC=mpif90
|
||||
export CC=mpicc
|
||||
cmake /path/to/openmc
|
||||
|
||||
Note that in many shells, an environment variable can be set for a single
|
||||
command, i.e.
|
||||
Note that in many shells, environment variables can be set for a single command,
|
||||
i.e.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
FC=mpif90 cmake /path/to/openmc
|
||||
FC=mpif90 CC=mpicc cmake /path/to/openmc
|
||||
|
||||
Selecting HDF5 Installation
|
||||
+++++++++++++++++++++++++++
|
||||
|
|
@ -343,7 +345,7 @@ compiler, it is necessary to specify that all objects be compiled with the
|
|||
.. code-block:: sh
|
||||
|
||||
mkdir build && cd build
|
||||
FC=ifort FFLAGS=-mmic cmake -Dopenmp=on ..
|
||||
FC=ifort CC=icc FFLAGS=-mmic cmake -Dopenmp=on ..
|
||||
make
|
||||
|
||||
Note that unless an HDF5 build for the Intel Xeon Phi is already on your target
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ _THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27',
|
|||
'orthod': 'c_ortho_D', 'dortho': 'c_ortho_D',
|
||||
'orthoh': 'c_ortho_H', 'hortho': 'c_ortho_H',
|
||||
'ouo2': 'c_O_in_UO2', 'o2-u': 'c_O_in_UO2', 'o2/u': 'c_O_in_UO2',
|
||||
'sio2': 'c_SiO2',
|
||||
'parad': 'c_para_D', 'dpara': 'c_para_D',
|
||||
'parah': 'c_para_H', 'hpara': 'c_para_H',
|
||||
'sch4': 'c_solid_CH4', 'smeth': 'c_solid_CH4',
|
||||
|
|
|
|||
|
|
@ -793,7 +793,8 @@ class MDGXS(MGXS):
|
|||
|
||||
df.rename(columns={'energyout low [MeV]': 'group out'},
|
||||
inplace=True)
|
||||
out_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size))
|
||||
out_groups = np.repeat(all_groups, self.xs_tally.num_scores)
|
||||
out_groups = np.tile(out_groups, int(df.shape[0] / out_groups.size))
|
||||
df['group out'] = out_groups
|
||||
del df['energyout high [MeV]']
|
||||
columns = ['group in', 'group out']
|
||||
|
|
|
|||
|
|
@ -548,12 +548,6 @@ class MGXS(object):
|
|||
float
|
||||
The atomic number density (atom/b-cm) for the nuclide of interest
|
||||
|
||||
Raises
|
||||
-------
|
||||
ValueError
|
||||
When the density is requested for a nuclide which is not found in
|
||||
the spatial domain.
|
||||
|
||||
"""
|
||||
|
||||
cv.check_type('nuclide', nuclide, basestring)
|
||||
|
|
@ -561,13 +555,7 @@ class MGXS(object):
|
|||
# Get list of all nuclides in the spatial domain
|
||||
nuclides = self.domain.get_nuclide_densities()
|
||||
|
||||
if nuclide not in nuclides:
|
||||
msg = 'Unable to get density for nuclide "{0}" which is not in ' \
|
||||
'{1} "{2}"'.format(nuclide, self.domain_type, self.domain.id)
|
||||
ValueError(msg)
|
||||
|
||||
density = nuclides[nuclide][1]
|
||||
return density
|
||||
return nuclides[nuclide][1] if nuclide in nuclides else 0.0
|
||||
|
||||
def get_nuclide_densities(self, nuclides='all'):
|
||||
"""Get an array of atomic number densities in units of atom/b-cm for all
|
||||
|
|
@ -1535,7 +1523,8 @@ class MGXS(object):
|
|||
|
||||
df.rename(columns={'energyout low [MeV]': 'group out'},
|
||||
inplace=True)
|
||||
out_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size))
|
||||
out_groups = np.repeat(all_groups, self.xs_tally.num_scores)
|
||||
out_groups = np.tile(out_groups, int(df.shape[0] / out_groups.size))
|
||||
df['group out'] = out_groups
|
||||
del df['energyout high [MeV]']
|
||||
columns = ['group in', 'group out']
|
||||
|
|
@ -1573,6 +1562,10 @@ class MGXS(object):
|
|||
df['mean'] /= np.tile(densities, tile_factor)
|
||||
df['std. dev.'] /= np.tile(densities, tile_factor)
|
||||
|
||||
# Replace NaNs by zeros (happens if nuclide density is zero)
|
||||
df['mean'].replace(np.nan, 0.0, inplace=True)
|
||||
df['std. dev.'].replace(np.nan, 0.0, inplace=True)
|
||||
|
||||
# Sort the dataframe by domain type id (e.g., distribcell id) and
|
||||
# energy groups such that data is from fast to thermal
|
||||
if self.domain_type == 'mesh':
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
from collections import Iterable, Mapping
|
||||
from numbers import Real, Integral
|
||||
from xml.etree import ElementTree as ET
|
||||
from warnings import warn
|
||||
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
|
|
@ -68,10 +69,26 @@ class VolumeCalculation(object):
|
|||
self.samples = samples
|
||||
|
||||
if lower_left is not None:
|
||||
self.lower_left = lower_left
|
||||
if upper_right is None:
|
||||
raise ValueError('Both lower-left and upper-right coordinates '
|
||||
'should be specified')
|
||||
|
||||
# For cell domains, try to compute bounding box and make sure
|
||||
# user-specified one is valid
|
||||
if self.domain_type == 'cell':
|
||||
for c in domains:
|
||||
if c.region is None:
|
||||
continue
|
||||
ll, ur = c.region.bounding_box
|
||||
if np.any(np.isinf(ll)) or np.any(np.isinf(ur)):
|
||||
continue
|
||||
if (np.any(np.asarray(lower_left) > ll) or
|
||||
np.any(np.asarray(upper_right) < ur)):
|
||||
warn("Specified bounding box is smaller than computed "
|
||||
"bounding box for cell {}. Volume calculation may "
|
||||
"be incorrect!".format(c.id))
|
||||
|
||||
self.lower_left = lower_left
|
||||
self.upper_right = upper_right
|
||||
else:
|
||||
if self.domain_type == 'cell':
|
||||
|
|
|
|||
|
|
@ -54,7 +54,8 @@ module constants
|
|||
|
||||
! Maximum number of external source spatial resamples to encounter before an
|
||||
! error is thrown.
|
||||
integer, parameter :: MAX_EXTSRC_RESAMPLES = 10000
|
||||
integer, parameter :: EXTSRC_REJECT_THRESHOLD = 10000
|
||||
real(8), parameter :: EXTSRC_REJECT_FRACTION = 0.05
|
||||
|
||||
! ============================================================================
|
||||
! PHYSICAL CONSTANTS
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ element settings {
|
|||
attribute lower_left { list { xsd:double+ } }) &
|
||||
(element upper_right { list { xsd:double+ } } |
|
||||
attribute upper_right { list { xsd:double+ } })
|
||||
}+ &
|
||||
}* &
|
||||
|
||||
element uniform_fs{
|
||||
(element dimension { list { xsd:positiveInteger+ } } |
|
||||
|
|
|
|||
|
|
@ -625,7 +625,7 @@
|
|||
<data type="positiveInteger"/>
|
||||
</element>
|
||||
</optional>
|
||||
<oneOrMore>
|
||||
<zeroOrMore>
|
||||
<element name="volume_calc">
|
||||
<interleave>
|
||||
<choice>
|
||||
|
|
@ -694,7 +694,7 @@
|
|||
</choice>
|
||||
</interleave>
|
||||
</element>
|
||||
</oneOrMore>
|
||||
</zeroOrMore>
|
||||
<optional>
|
||||
<element name="uniform_fs">
|
||||
<interleave>
|
||||
|
|
|
|||
|
|
@ -107,7 +107,8 @@ contains
|
|||
real(8) :: r(3) ! sampled coordinates
|
||||
logical :: found ! Does the source particle exist within geometry?
|
||||
type(Particle) :: p ! Temporary particle for using find_cell
|
||||
integer, save :: num_resamples = 0 ! Number of resamples encountered
|
||||
integer, save :: n_accept = 0 ! Number of samples accepted
|
||||
integer, save :: n_reject = 0 ! Number of samples rejected
|
||||
|
||||
! Set weight to one by default
|
||||
site % wgt = ONE
|
||||
|
|
@ -143,13 +144,6 @@ contains
|
|||
|
||||
! Now search to see if location exists in geometry
|
||||
call find_cell(p, found)
|
||||
if (.not. found) then
|
||||
num_resamples = num_resamples + 1
|
||||
if (num_resamples == MAX_EXTSRC_RESAMPLES) then
|
||||
call fatal_error("Maximum number of external source spatial &
|
||||
&resamples reached!")
|
||||
end if
|
||||
end if
|
||||
|
||||
! Check if spatial site is in fissionable material
|
||||
select type (space => external_source(i) % space)
|
||||
|
|
@ -162,8 +156,21 @@ contains
|
|||
end if
|
||||
end if
|
||||
end select
|
||||
|
||||
! Check for rejection
|
||||
if (.not. found) then
|
||||
n_reject = n_reject + 1
|
||||
if (n_reject >= EXTSRC_REJECT_THRESHOLD .and. &
|
||||
real(n_accept, 8)/n_reject <= EXTSRC_REJECT_FRACTION) then
|
||||
call fatal_error("More than 95% of external source sites sampled &
|
||||
&were rejected. Please check your external source definition.")
|
||||
end if
|
||||
end if
|
||||
end do
|
||||
|
||||
! Increment number of accepted samples
|
||||
n_accept = n_accept + 1
|
||||
|
||||
call p % clear()
|
||||
|
||||
! Sample angle
|
||||
|
|
|
|||
|
|
@ -29,39 +29,39 @@
|
|||
1 10000 1 total 0.385188 0.026946
|
||||
0 10000 2 total 0.412389 0.015425
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
9 10000 1 1 total P0 -0.000207 0.000149
|
||||
11 10000 1 1 total P1 0.000234 0.000128
|
||||
13 10000 1 1 total P2 0.051870 0.006983
|
||||
12 10000 1 1 total P0 0.384199 0.027001
|
||||
13 10000 1 1 total P1 0.051870 0.006983
|
||||
14 10000 1 1 total P2 0.020069 0.002846
|
||||
15 10000 1 1 total P3 0.009478 0.002234
|
||||
8 10000 1 2 total P0 0.000989 0.000482
|
||||
10 10000 1 2 total P1 -0.000103 0.000184
|
||||
12 10000 1 2 total P2 0.384199 0.027001
|
||||
14 10000 1 2 total P3 0.020069 0.002846
|
||||
1 10000 2 1 total P0 0.016482 0.004502
|
||||
3 10000 2 1 total P1 -0.010499 0.010438
|
||||
5 10000 2 1 total P2 -0.000768 0.000768
|
||||
9 10000 1 2 total P1 -0.000207 0.000149
|
||||
10 10000 1 2 total P2 -0.000103 0.000184
|
||||
11 10000 1 2 total P3 0.000234 0.000128
|
||||
4 10000 2 1 total P0 0.000925 0.000925
|
||||
5 10000 2 1 total P1 -0.000768 0.000768
|
||||
6 10000 2 1 total P2 0.000494 0.000494
|
||||
7 10000 2 1 total P3 -0.000171 0.000172
|
||||
0 10000 2 2 total P0 0.411465 0.015245
|
||||
2 10000 2 2 total P1 0.006371 0.010551
|
||||
4 10000 2 2 total P2 0.000925 0.000925
|
||||
6 10000 2 2 total P3 0.000494 0.000494
|
||||
1 10000 2 2 total P1 0.016482 0.004502
|
||||
2 10000 2 2 total P2 0.006371 0.010551
|
||||
3 10000 2 2 total P3 -0.010499 0.010438
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
9 10000 1 1 total P0 -0.000207 0.000149
|
||||
11 10000 1 1 total P1 0.000234 0.000128
|
||||
13 10000 1 1 total P2 0.051870 0.006983
|
||||
12 10000 1 1 total P0 0.384199 0.027001
|
||||
13 10000 1 1 total P1 0.051870 0.006983
|
||||
14 10000 1 1 total P2 0.020069 0.002846
|
||||
15 10000 1 1 total P3 0.009478 0.002234
|
||||
8 10000 1 2 total P0 0.000989 0.000482
|
||||
10 10000 1 2 total P1 -0.000103 0.000184
|
||||
12 10000 1 2 total P2 0.384199 0.027001
|
||||
14 10000 1 2 total P3 0.020069 0.002846
|
||||
1 10000 2 1 total P0 0.016482 0.004502
|
||||
3 10000 2 1 total P1 -0.010499 0.010438
|
||||
5 10000 2 1 total P2 -0.000768 0.000768
|
||||
9 10000 1 2 total P1 -0.000207 0.000149
|
||||
10 10000 1 2 total P2 -0.000103 0.000184
|
||||
11 10000 1 2 total P3 0.000234 0.000128
|
||||
4 10000 2 1 total P0 0.000925 0.000925
|
||||
5 10000 2 1 total P1 -0.000768 0.000768
|
||||
6 10000 2 1 total P2 0.000494 0.000494
|
||||
7 10000 2 1 total P3 -0.000171 0.000172
|
||||
0 10000 2 2 total P0 0.411465 0.015245
|
||||
2 10000 2 2 total P1 0.006371 0.010551
|
||||
4 10000 2 2 total P2 0.000925 0.000925
|
||||
6 10000 2 2 total P3 0.000494 0.000494
|
||||
1 10000 2 2 total P1 0.016482 0.004502
|
||||
2 10000 2 2 total P2 0.006371 0.010551
|
||||
3 10000 2 2 total P3 -0.010499 0.010438
|
||||
material group in group out nuclide mean std. dev.
|
||||
3 10000 1 1 total 1.0 0.078516
|
||||
2 10000 1 2 total 1.0 0.687184
|
||||
|
|
@ -154,39 +154,39 @@
|
|||
1 10001 1 total 0.310121 0.033788
|
||||
0 10001 2 total 0.296264 0.043792
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
9 10001 1 1 total P0 0.000000 0.000000
|
||||
11 10001 1 1 total P1 0.000000 0.000000
|
||||
13 10001 1 1 total P2 0.038230 0.008484
|
||||
12 10001 1 1 total P0 0.310121 0.033788
|
||||
13 10001 1 1 total P1 0.038230 0.008484
|
||||
14 10001 1 1 total P2 0.020745 0.004696
|
||||
15 10001 1 1 total P3 0.007964 0.003732
|
||||
8 10001 1 2 total P0 0.000000 0.000000
|
||||
10 10001 1 2 total P1 0.000000 0.000000
|
||||
12 10001 1 2 total P2 0.310121 0.033788
|
||||
14 10001 1 2 total P3 0.020745 0.004696
|
||||
1 10001 2 1 total P0 -0.011214 0.016180
|
||||
3 10001 2 1 total P1 -0.003270 0.007329
|
||||
5 10001 2 1 total P2 0.000000 0.000000
|
||||
9 10001 1 2 total P1 0.000000 0.000000
|
||||
10 10001 1 2 total P2 0.000000 0.000000
|
||||
11 10001 1 2 total P3 0.000000 0.000000
|
||||
4 10001 2 1 total P0 0.000000 0.000000
|
||||
5 10001 2 1 total P1 0.000000 0.000000
|
||||
6 10001 2 1 total P2 0.000000 0.000000
|
||||
7 10001 2 1 total P3 0.000000 0.000000
|
||||
0 10001 2 2 total P0 0.296264 0.043792
|
||||
2 10001 2 2 total P1 0.008837 0.011504
|
||||
4 10001 2 2 total P2 0.000000 0.000000
|
||||
6 10001 2 2 total P3 0.000000 0.000000
|
||||
1 10001 2 2 total P1 -0.011214 0.016180
|
||||
2 10001 2 2 total P2 0.008837 0.011504
|
||||
3 10001 2 2 total P3 -0.003270 0.007329
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
9 10001 1 1 total P0 0.000000 0.000000
|
||||
11 10001 1 1 total P1 0.000000 0.000000
|
||||
13 10001 1 1 total P2 0.038230 0.008484
|
||||
12 10001 1 1 total P0 0.310121 0.033788
|
||||
13 10001 1 1 total P1 0.038230 0.008484
|
||||
14 10001 1 1 total P2 0.020745 0.004696
|
||||
15 10001 1 1 total P3 0.007964 0.003732
|
||||
8 10001 1 2 total P0 0.000000 0.000000
|
||||
10 10001 1 2 total P1 0.000000 0.000000
|
||||
12 10001 1 2 total P2 0.310121 0.033788
|
||||
14 10001 1 2 total P3 0.020745 0.004696
|
||||
1 10001 2 1 total P0 -0.011214 0.016180
|
||||
3 10001 2 1 total P1 -0.003270 0.007329
|
||||
5 10001 2 1 total P2 0.000000 0.000000
|
||||
9 10001 1 2 total P1 0.000000 0.000000
|
||||
10 10001 1 2 total P2 0.000000 0.000000
|
||||
11 10001 1 2 total P3 0.000000 0.000000
|
||||
4 10001 2 1 total P0 0.000000 0.000000
|
||||
5 10001 2 1 total P1 0.000000 0.000000
|
||||
6 10001 2 1 total P2 0.000000 0.000000
|
||||
7 10001 2 1 total P3 0.000000 0.000000
|
||||
0 10001 2 2 total P0 0.296264 0.043792
|
||||
2 10001 2 2 total P1 0.008837 0.011504
|
||||
4 10001 2 2 total P2 0.000000 0.000000
|
||||
6 10001 2 2 total P3 0.000000 0.000000
|
||||
1 10001 2 2 total P1 -0.011214 0.016180
|
||||
2 10001 2 2 total P2 0.008837 0.011504
|
||||
3 10001 2 2 total P3 -0.003270 0.007329
|
||||
material group in group out nuclide mean std. dev.
|
||||
3 10001 1 1 total 1.0 0.108779
|
||||
2 10001 1 2 total 0.0 0.000000
|
||||
|
|
@ -279,39 +279,39 @@
|
|||
1 10002 1 total 0.671269 0.026186
|
||||
0 10002 2 total 2.035388 0.258060
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
9 10002 1 1 total P0 0.008758 0.000926
|
||||
11 10002 1 1 total P1 -0.003785 0.000817
|
||||
13 10002 1 1 total P2 0.381167 0.016243
|
||||
12 10002 1 1 total P0 0.639901 0.024709
|
||||
13 10002 1 1 total P1 0.381167 0.016243
|
||||
14 10002 1 1 total P2 0.152392 0.008156
|
||||
15 10002 1 1 total P3 0.009148 0.003889
|
||||
8 10002 1 2 total P0 0.031368 0.001728
|
||||
10 10002 1 2 total P1 -0.002568 0.001014
|
||||
12 10002 1 2 total P2 0.639901 0.024709
|
||||
14 10002 1 2 total P3 0.152392 0.008156
|
||||
1 10002 2 1 total P0 0.509941 0.051236
|
||||
3 10002 2 1 total P1 0.024988 0.008312
|
||||
5 10002 2 1 total P2 0.000400 0.000401
|
||||
9 10002 1 2 total P1 0.008758 0.000926
|
||||
10 10002 1 2 total P2 -0.002568 0.001014
|
||||
11 10002 1 2 total P3 -0.003785 0.000817
|
||||
4 10002 2 1 total P0 0.000443 0.000445
|
||||
5 10002 2 1 total P1 0.000400 0.000401
|
||||
6 10002 2 1 total P2 0.000320 0.000321
|
||||
7 10002 2 1 total P3 0.000214 0.000215
|
||||
0 10002 2 2 total P0 2.034945 0.257800
|
||||
2 10002 2 2 total P1 0.111175 0.013020
|
||||
4 10002 2 2 total P2 0.000443 0.000445
|
||||
6 10002 2 2 total P3 0.000320 0.000321
|
||||
1 10002 2 2 total P1 0.509941 0.051236
|
||||
2 10002 2 2 total P2 0.111175 0.013020
|
||||
3 10002 2 2 total P3 0.024988 0.008312
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
9 10002 1 1 total P0 0.008758 0.000926
|
||||
11 10002 1 1 total P1 -0.003785 0.000817
|
||||
13 10002 1 1 total P2 0.381167 0.016243
|
||||
12 10002 1 1 total P0 0.639901 0.024709
|
||||
13 10002 1 1 total P1 0.381167 0.016243
|
||||
14 10002 1 1 total P2 0.152392 0.008156
|
||||
15 10002 1 1 total P3 0.009148 0.003889
|
||||
8 10002 1 2 total P0 0.031368 0.001728
|
||||
10 10002 1 2 total P1 -0.002568 0.001014
|
||||
12 10002 1 2 total P2 0.639901 0.024709
|
||||
14 10002 1 2 total P3 0.152392 0.008156
|
||||
1 10002 2 1 total P0 0.509941 0.051236
|
||||
3 10002 2 1 total P1 0.024988 0.008312
|
||||
5 10002 2 1 total P2 0.000400 0.000401
|
||||
9 10002 1 2 total P1 0.008758 0.000926
|
||||
10 10002 1 2 total P2 -0.002568 0.001014
|
||||
11 10002 1 2 total P3 -0.003785 0.000817
|
||||
4 10002 2 1 total P0 0.000443 0.000445
|
||||
5 10002 2 1 total P1 0.000400 0.000401
|
||||
6 10002 2 1 total P2 0.000320 0.000321
|
||||
7 10002 2 1 total P3 0.000214 0.000215
|
||||
0 10002 2 2 total P0 2.034945 0.257800
|
||||
2 10002 2 2 total P1 0.111175 0.013020
|
||||
4 10002 2 2 total P2 0.000443 0.000445
|
||||
6 10002 2 2 total P3 0.000320 0.000321
|
||||
1 10002 2 2 total P1 0.509941 0.051236
|
||||
2 10002 2 2 total P2 0.111175 0.013020
|
||||
3 10002 2 2 total P3 0.024988 0.008312
|
||||
material group in group out nuclide mean std. dev.
|
||||
3 10002 1 1 total 1.0 0.038609
|
||||
2 10002 1 2 total 1.0 0.067667
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
8142ae4e107002a835999e4ace85c17376f262a7059fc224f3756a2de19aba6ca4c4fa14ca2085c87d7729aa8d6d6f78fdae21ac6dfe33ca303449c769076074
|
||||
e494320a213b5704a2ac915a2ba504857be91961ceb6735b6ad05d81eb31c44c9584d5bd9d40baececf1dcb5b030e6ecec63cfbd20639baf69bcb596c5c46591
|
||||
Loading…
Add table
Add a link
Reference in a new issue