Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
c94f2b4
add necessary settings and unit tests
yardasol Dec 28, 2025
bd89b27
preliminary machinery to process chi (total neutron energy spectrum)
yardasol Dec 28, 2025
9cb7b3f
timer, flat source, and source region additions
yardasol Dec 28, 2025
27f4e3b
add kinetic simulation machinery
yardasol Dec 28, 2025
4e04a33
Proper normalization for kinetic simulations
yardasol Dec 29, 2025
85db78b
quality of life updates
yardasol Dec 29, 2025
d745b50
make keff scaling consistent with keff normalization for kinetic simu…
yardasol Dec 29, 2025
b3be206
move some global vars from settings.cpp to simulation.cpp
yardasol Dec 29, 2025
e9cf50b
time consistent seed approach
yardasol Dec 30, 2025
f8183de
add kinetic simulation information to the user guide
yardasol Dec 31, 2025
0c30fd7
minor formatting fix
yardasol Dec 31, 2025
2f1b27b
don't store initial k_eff solve
yardasol Dec 31, 2025
89abd44
add random_ray_k_eff_kinetic regression test
yardasol Dec 31, 2025
5c86858
add kinetic functionality to auto setup feature
yardasol Jan 1, 2026
521cbc0
Add time-dependent mesh regression test
yardasol Jan 1, 2026
326b717
add blurb about kinetic automagic setup
yardasol Jan 1, 2026
808818d
change all source quantities back to floats
yardasol Jan 1, 2026
f22753a
remove cruft comments
yardasol Jan 1, 2026
409847a
autopep8
yardasol Jan 1, 2026
991c0ba
fix tests, memory leak, and add more depth to userguide
yardasol Jan 4, 2026
2530d7a
formatting fixes
yardasol Jan 4, 2026
7e2620a
fix precursor batch reset
yardasol Jan 4, 2026
08bff5d
fix failing unit test due to api change
yardasol Jan 4, 2026
3f46d31
parameterize main random ray function+
yardasol Jan 5, 2026
604653b
prepare for void material support in kinetic simulations
yardasol Jan 5, 2026
ca5969e
use T1 variable instead of source_time_derivative and scalar_flux_tim…
yardasol Jan 5, 2026
ef4ffcb
add SDP void char eqs, simplify SDP scalar flux calc
yardasol Jan 5, 2026
a625083
pincell benchmark doesn't change significantly, so it's safe to updat…
yardasol Jan 5, 2026
22a65e7
typo fix in docs
yardasol Jan 5, 2026
0704979
fix sigma_t division error for sdp T1 term
yardasol Jan 5, 2026
9d62cde
adjust TI method for void regions
yardasol Jan 5, 2026
b36a045
fix SDP
yardasol Jan 6, 2026
928ac8e
use T1 variable instead of source_time_derivative and scalar_flux_tim…
yardasol Jan 5, 2026
9ed3b1e
make source_bd type consistent with other source variables
yardasol Jan 6, 2026
9971315
parameterize main random ray function+
yardasol Jan 5, 2026
8f77d8b
formatting + sdp sigma_t fix
yardasol Jan 6, 2026
08d6709
fix sigma_t division and Q storage
yardasol Jan 6, 2026
22474d1
remove unneeded delta_psi_prime
yardasol Jan 6, 2026
451ae9f
Merge branch 'tdrr-clean-refactor' into kin-rr-sim-simplification
yardasol Jan 6, 2026
3fdf3c5
fix tests??
yardasol Jan 6, 2026
e291899
reset test results
yardasol Jan 6, 2026
93792a9
minor fix for time_step_reset
yardasol Jan 6, 2026
4bad23b
add full kinetic test coverage
yardasol Jan 6, 2026
ec70dac
Merge branch 'tdrr-clean-refactor' into kin-rr-sim-simplification
yardasol Jan 6, 2026
bff9413
update regression test
yardasol Jan 6, 2026
7412a20
autopep8
yardasol Jan 6, 2026
e621259
autopep8
yardasol Jan 6, 2026
63d1f69
allow fixed source simulations
yardasol Jan 7, 2026
98dff82
update mesh kinetic tests
yardasol Jan 8, 2026
6f17182
Revert explicit void treatment in kinetic random ray
yardasol Jan 12, 2026
f28c57a
more explicitly prohibit void regions in kinetic simuations (for now)
yardasol Jan 12, 2026
649d071
Merge branch 'tdrr-clean-refactor' into kin-rr-sim-simplification
yardasol Jan 12, 2026
7aa1a80
Merge pull request #16 from yardasol/kin-rr-sim-simplification
yardasol Jan 12, 2026
80e4cff
fix test results overwritten by merge
yardasol Jan 12, 2026
c2b9da6
Merge branch 'develop' into tdrr-clean-refactor
yardasol Jan 14, 2026
e9f5348
implement density multipliers for time-dependent machinery
yardasol Jan 14, 2026
3496790
fix incorrect header printed
yardasol Jan 14, 2026
d0e7252
update regression test function names
yardasol Jan 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions docs/source/io_formats/materials.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@ Each ``material`` element can have the following attributes or sub-elements:
<temperature_default>` is used.

:density:
An element with attributes/sub-elements called ``value`` and ``units``. The
``value`` attribute is the numeric value of the density while the ``units``
An element with attributes/sub-elements called ``value``, ``units``, and
(optionally) ``value_timeseries``. The ``value`` attribute is the numeric
value of the density while the ``units``
can be "g/cm3", "kg/m3", "atom/b-cm", "atom/cm3", or "sum". The "sum" unit
indicates that values appearing in ``ao`` or ``wo`` attributes for ``<nuclide>``
and ``<element>`` sub-elements are to be interpreted as absolute nuclide/element
Expand All @@ -59,14 +60,21 @@ Each ``material`` element can have the following attributes or sub-elements:
a ``macroscopic`` quantity to indicate that the density is already included
in the library and thus not needed here. However, if a value is provided
for the ``value``, then this is treated as a number density multiplier on
the macroscopic cross sections in the multi-group data. This can be used,
for example, when perturbing the density slightly.
the macroscopic cross sections in the multi-group data. This can be used,
for example, when perturbing the density slightly. The ``value_timeseries``
element indicates a material density changing in time. This can be used to
simulate various benchmark problems in kinetic simulations. The
``value_timeseries`` attribute is assumed to use the same units specified
in the ``units`` attribute.

*Default*: None

.. note:: A ``macroscopic`` quantity can not be used in conjunction with a
``nuclide``, ``element``, or ``sab`` quantity.

.. note:: The ``value_timeseries`` attribute cannot be used with ``sum``
densities.

:nuclide:
An element with attributes/sub-elements called ``name``, and ``ao``
or ``wo``. The ``name`` attribute is the name of the cross-section for a
Expand Down
57 changes: 57 additions & 0 deletions docs/source/io_formats/settings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,18 @@ the estimated eigenvalue. It has the following attributes/sub-elements:

.. note:: See section on the :ref:`trigger` for more information.

-------------------------------------
``<kinetic_simulation>`` Element
-------------------------------------

The ``<kinetic_simulation>`` element indicates whether to run a static or
time-dependent simulation (with no feedbacks). If this element is set to
"true", a kinetic simulation will be run; otherwise a static simulation is run.

*Default*: false

.. _kinetic_simulation:

---------------------------
``<log_grid_bins>`` Element
---------------------------
Expand Down Expand Up @@ -612,6 +624,25 @@ found in the :ref:`random ray user guide <random_ray>`.

*Default*: 1.0

If a kinetic simulation is active, two additional settings are available:

:bd_order:
Order for backwards difference approximation used in numerically estimating
time derivatives. The backwards difference approximation is stable for
orders less than or equal to 6, and is relatively straightforward to
implement. The default value of 3 balances higher precision with speed.

*Default*: 3

:time_derivative_method:
The method used to resolve the angular flux time-derivative in the time-dependent
characteristic equation. The ``isotropic`` method utilizes an isotropic approximation
to resolve the angular flux time derivative. The ``propagation`` method
uses a technique called Time Derivative Propagation to resolve the angular
flux time derivative.

*Default*: ``isotropic``

----------------------------------
``<resonance_scattering>`` Element
----------------------------------
Expand Down Expand Up @@ -1339,6 +1370,32 @@ despite not being bounded on both sides.

.. _trace:

---------------------------------
``<timestep_parameters>`` Element
---------------------------------

The ``<timestep_parameters>`` element can be used specify for how long and
at what resolution to run a kinetic simulation. This element has the
following attributes/sub-elements:

:n_timesteps:
The number of timesteps. Must be specified by the user.

:dt:
Time step size. Must be specified by the user.

:timestep_units:
Time step units. Available options are ``ms`` for milliseconds, ``s`` for seconds,
and ``min`` for minutes.

*Default*: ``s``

.. note:: This element is required if the :ref:`kinetic_simulation` is ``true``.

*Default*: None

.. _timestep_parameters:

-------------------
``<trace>`` Element
-------------------
Expand Down
21 changes: 21 additions & 0 deletions docs/source/io_formats/statepoint.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ The current version of the statepoint file format is 18.1.
'continuous-energy' or 'multi-group'.
- **run_mode** (*char[]*) -- Run mode used, either 'eigenvalue' or
'fixed source'.
- **solver_type** (*char[]*) -- Solver used, either 'monte carlo' or
'random ray'.
- **kinetic_simulation** (*int*) -- Flag indicating whether a kinetic (1)
or static (0) simulation was run.
- **n_particles** (*int8_t*) -- Number of particles used per generation.
- **n_batches** (*int*) -- Number of batches to simulate.
- **current_batch** (*int*) -- The number of batches already simulated.
Expand All @@ -49,6 +53,10 @@ The current version of the statepoint file format is 18.1.
combined estimate of k-effective.
- **n_realizations** (*int*) -- Number of realizations for global
tallies.
- **n_energy_groups** (*int*) -- Number of energy groups used if
**energy_mode** is 'multi-group'.
- **n_delay_groups** (*int*) -- Number of delay groups used if
**energy_mode** is 'multi-group'.
- **global_tallies** (*double[][2]*) -- Accumulated sum and
sum-of-squares for each global tally.
- **source_bank** (Compound type) -- Source bank information for each
Expand Down Expand Up @@ -197,3 +205,16 @@ All values are given in seconds and are measured on the master process.
tally results and evaluating their statistics.
- **writing statepoints** (*double*) -- Time spent writing statepoint
files

If random ray mode is used, the following times are also recorded:
- **source_update** (*double*) -- Time spent updating the neutron source.
- **precursor_update** (*double*) -- Time spent updating the precursors
(only written for kinetic simulations).

**/timestep_data/**

Time step information for kinetic simulation. All values are given in seconds.

:Datasets: - **dt** (*double*) -- Length of the time step.
- **current_timestep** (*int*) -- Numbered time step.
- **current_time** (*double*) -- Simulated elapsed time.
Loading
Loading