Commit graph

1413 commits

Author SHA1 Message Date
Paul Romano
bc09d1ef55 adding back files to be reviewed 2019-10-28 11:55:45 -05:00
Paul Romano
ae28233110 deleting all files to prepare for review 2019-10-28 11:48:19 -05:00
Paul Romano
e07fe06323 Remove -dev tag from version number. Small updates to release notes 2019-10-07 10:33:45 -05:00
Paul Romano
1c1fca3d70 Respond to @drewejohnson comments on #1371 2019-10-07 07:40:56 -05:00
Paul Romano
5b195b6e9f Various fixes and updates in documentation 2019-10-04 14:00:22 -05:00
Paul Romano
e869d8eef1 Fix documentation build (deplete module was causing issues) 2019-10-04 12:48:23 -05:00
Paul Romano
c18f845712 Fix broken links in documentation 2019-10-04 09:33:20 -05:00
Paul Romano
db8cdff1c5
Merge pull request #1357 from drewejohnson/internal-tally
Create and use internal tallies for depletion
2019-10-01 08:26:12 -05:00
Paul Romano
ed7123f4e7
Merge pull request #1356 from drewejohnson/dep-solver-class
Provide class-based depletion solvers
2019-09-30 13:23:29 -05:00
Andrew Johnson
d112eddbc3
openmc.deplete.cram.IPFCramSolver accepts coefficients at init
Moved from deplete.abc into openmc.deplete.cram. CRAM16 and CRAM48
are aliases to __call__ methods for two instances of
IPFCramSolver: Cram16Solver and Cram48Solver, created using
16th and 48th order coefficients
2019-09-26 20:31:04 -04:00
Paul Romano
684bc7ef1b
Merge pull request #1355 from drewejohnson/depletion-caveats
Add discussion in user's guide on depletion caveats
2019-09-23 06:53:40 -05:00
Andrew Johnson
1d08279c02
Respond to reviewer comments on depletion caveats 2019-09-20 13:29:46 -05:00
Andrew Johnson
2ead24e172
Teach openmc_statepoint_write about internal tallies
If a tally is marked as not writeable, a tally group
will still be added to the statepoint file. However,
no filter, score, nuclide, or results data will be written to
this tally group. A new attribute is introduced to this tally
group "internal" that is an integer flag: 0 if the tally
is not internal (i.e. is writeable) and 1 if the tally is
internal (i.e. is not writeable).

The internal attribute has been added to the statepoint
io format in the documentation.

Other changes: use
```
const auto& tally : model::tallies

  tally->X
```
to iterate over tallies during the writing process
2019-09-20 10:02:38 -05:00
Andrew Johnson
df387e87dc
Document concrete and abstract depletion solvers 2019-09-19 16:51:38 -05:00
Andrew Johnson
12201f7361
Add discussion in user's guide on depletion caveats
Potential over-depletion using the fission-q
energy deposition mode and some remedies.

Repeated burnable materials are depleted as a single material
unless diff_burnable_mats=True is given to the Operator
2019-09-19 16:37:26 -05:00
Paul Romano
384954b099
Merge pull request #1352 from drewejohnson/dep-namespace-cleanup
Cleaner depletion module documentation and namespace
2019-09-19 09:42:12 -05:00
Andrew Johnson
7a2b52dd84
Apply suggestions from code review
Co-Authored-By: Paul Romano <paul.k.romano@gmail.com>
2019-09-19 08:05:30 -05:00
Paul Romano
7fe2055b43
Merge pull request #1339 from rockfool/white
White Boundary Condition Implementation
2019-09-18 13:21:53 -05:00
Paul Romano
8f2b0a01b6
Merge pull request #1332 from drewejohnson/depletion-example-notebook
Depletion example notebook
2019-09-18 13:21:34 -05:00
Paul Romano
3e12e363eb Make some fixes/edits in white boundary condition documentation 2019-09-18 09:39:59 -05:00
rockfool
747e87d31a bug fixed in geometry.rst 2019-09-17 16:34:11 -04:00
Andrew Johnson
72471d249f
Expand openmc.deplete documentation: minimal example and ABCs
Slight reformatting of the depletion documentation. The "Primary API"
is presented at the top, including integrators and the Operator.
This section is followed by a "Minimal Example" that demonstrates
how one might instantiate an Operator, and use it for depletion.
The comm communicator is moved into the "Internal Classes and Functions"
section, as the end-user is less likely to interact with this directly.
Lastly, a section on "Abstract Base Classes" is provided and expanded,
documenting the purpose of specific ABCs.
2019-09-17 14:56:31 -05:00
Andrew Johnson
2428702fb6
Improved documentation for depletion module
* __call__ methods for Operator documented
* CRAM16 and CRAM48 are closer to the top of the page
* Document deplete and timed_deplete functions
* Abstract integrators documented as part of abc submodule
* Abstract operator helpers documented as part of abc submodule
2019-09-17 13:38:23 -05:00
Andrew Johnson
17ded50443
Improve energy deposition methodology 2019-09-17 13:01:50 -05:00
rockfool
06ebf7dbad fix math equation in geometry.rst 2019-09-17 12:41:48 -04:00
rockfool
bfba0e6b1b Merge remote-tracking branch 'upstream/develop' into white 2019-09-17 11:30:58 -04:00
Andrew Johnson
016fc0e43e
Use energy deposition score for depletion
Introduce a new subclass of EnergyHelper, EnergyScoreHelper,
that computes the system energy using the energy-deposition score.
This energy is fed back to the Operator to normalize reaction rates.

The energy from the tally is only stored on the helper on the
MPI process 0 as to avoid scaling the system energy by the number
of processes. During the Operator unpacking, the energy reported
by each process is reduced, as the previous implementations took
fission reaction rates from the "local materials", e.g. the
materials each process is responsible for depleting.
The tally results are shared across all processes and only
contains a single quantity, the tallied energy deposition across
all materials.

This mode is controlled by passing the "energy_mode" argument passed
to the Operator. The two options are "fission-q" [default and previous
behavior] and "energy-deposition" [new features]. If energy_mode indicates using
the energy deposition score, the user-supplied fission-q dictionary is not used.

(cherry picked from commit d566f3080f)
2019-09-16 14:04:12 -05:00
Andrew Johnson
0c02e58b78
Documentation for modifications to total heating 2019-09-16 14:01:48 -05:00
rockfool
fbaa780731 remove the surface.py first 2019-09-16 14:03:05 -04:00
rockfool
781cb0eef7 documentation issues fixed 2019-09-16 13:46:51 -04:00
rockfool
4987f5aea0 modify geometry.rst 2019-09-16 13:36:18 -04:00
Paul Romano
348dd74dcc Merge branch 'develop' into local-photon-heating 2019-09-16 11:00:33 -05:00
Jiankai Yu
46367e8369 add more details in documentation of geometry 2019-09-15 16:57:07 -04:00
Jiankai Yu
849524d4dc add draft description to methodology on white boundary condition 2019-09-15 15:45:58 -04:00
Paul Romano
8a58028469 Mention openmc.capi -> openmc.lib name change in release notes 2019-09-13 10:38:30 -05:00
Paul Romano
bbb0b78383 Rename openmc.capi -> openmc.lib 2019-09-13 10:38:26 -05:00
Paul Romano
d84c379007 Fix up heating tally scores 2019-09-13 09:31:08 -05:00
Andrew Johnson
8ca0d35ad6
Add pincell depletion jupyter notebook
The basic structure is borrowed from examples/python/pincell_depletion/
and builds a single pin cell to be depleted. The model building is
expedited, as this assumes the user has read through the
basic user guide on model building. The new openmc.model.pin
function is highlighted, both for building a plain pin
and for subdividing regions for depletion.

The Chain and Operator classes are the focuses of the example,
and the PredictorIntegrator is used to deplete the pin out to
6 months using 30 day depletion steps with 174 W power.
The openmc-make-depletion-chain scripts are introduced as methods
for building initial depletion chains. Use of
openmc.data.DataLibrary.register_file is included, as this allows
the user to not pass the chain_file argument if the depletion chain
is included in OPENMC_CROSS_SECTIONS.

The jupyter notebook is included in the documentation similar
to other examples.
2019-09-05 16:50:17 -05:00
Andrew Johnson
269b3bf2d1
Update user's guide on depletion
Indicate class-based integration, and pull results from file
using `ResultsList.from_hdf5`
2019-09-05 16:50:16 -05:00
Paul Romano
cb73c87d9c Respond to comments on #1330 2019-09-05 16:30:42 -05:00
Paul Romano
5f7bf87631 Update release notes for 0.11.0 2019-09-05 06:50:22 -05:00
Paul Romano
33d7166aef Various fixes for building documentation (esp. latexpdf) 2019-09-04 10:35:55 -05:00
Andrew Johnson
93d68a24df
Merge branch 'develop' into chain-fission-yields 2019-08-21 17:32:14 -05:00
Paul Romano
a0bff1194f
Merge pull request #1314 from drewejohnson/chain-fixes
Provide validation for depletion chain
2019-08-21 08:15:10 -05:00
Andrew Johnson
37c871cbad
Add hyperlink to CASL depletion benchmark in scripts documentation
https://doi.org/10.2172/1256820
2019-08-19 10:08:15 -05:00
Andrew Johnson
aa86aa5262
Improve documentation for FissionYieldHelpers
Add a separate section in the documentation describing
the helpers.

Reword purpose of mat_indexes in generate_tallies
2019-08-15 09:18:56 -05:00
Andrew Johnson
454e6cc6b6
Add AveragedFissionYieldHelper operator helper
Computes the effective fission yields for nuclides
with multiple sets of yields by
1) Tallying fission rate and energy-weighted fission rate
2) Determining average energy at which fission events occur
3) Interpolating [lin-lin] between adjacent fission yields based
   on this average energy

Uses a second tally with an EnergyFunctionFilter to tally
E * sigma_f * phi.

Added unit tests with the proxy-style class that doesn't use the
C API to generate tallies but tests all other aspects of the
implementation. Tests cover three possible average energies
(below minimum supplied yield energy, above max supplied yield energy,
and between two)

The Operator uses fission_yield_mode="average" to select this helper.
The helper also has a from_operator class method.
2019-08-14 17:39:57 -05:00
Andrew Johnson
6b87ada752
Apply suggestions from code review
Co-Authored-By: Paul Romano <paul.k.romano@gmail.com>
2019-08-13 16:59:25 -05:00
Andrew Johnson
f82dc83473
Add FissionYieldCutoffHelper for weighting yields by a cutoff energy
This helper performs the following tasks to weight fission yields:
1) Determine a set of "fast" and "thermal" yields
based on a user specified cutoff energy,
2) Tally fission rates above and below the cutoff, and
3) Compute the effective yield by weighting the fast and
thermal yields by the fraction of fast and thermal fissions
for all nuclides in all burnable materials.

The user is allowed to specify the cutoff energy and energies
preferred for the fast and thermal yields. By default, the
cutoff is 112 eV, chosen as it is the logarithmic mean of
0.0253 eV and 500 keV. These two values are the default energies
for thermal and fast yields.

Tests are added to check for failure in constructing this
helper (thermal energy > cutoff, non-real values passed, etc.),
selection of yields given a range of user data, and
a proxy class that emulates a variety of thermal and fast splits
to check the eventual computed yield libraries.
2019-08-13 16:38:24 -05:00
Andrew Johnson
ca435b0bda
Add TalliedFissionYieldHelper abstract helper
Designed to be subclassed by helpers that aim to compute
effective fission yields with tallied data.
Constructs a tally in all burnable materials, scoring the
fission rate in all nuclides that have non-zero density
(as reported by the Operator) and have multiple sets of yields.
For nuclides with non-zero densities and a single set of
yields, those yields are assumed to be constant across incident
neutron energies.

The unpack method is now abstract, as each subclass should have
its own data layout, some with different energy structures
perhaps?? Maybe some weighting functions?
2019-08-13 16:20:55 -05:00