Closes #177
This PR transitions Moltres from the old NonlinearEigen/InversePowerMethod executioner implementation to the new Eigenvalue executioner implementation in MOOSE for solving k-eigenvalue problems. The old implementation is deprecated and will eventually be removed from MOOSE. All relevant tests and documentation are updated to reflect the transition to the new implementation.
A k-eigenvalue problem may be formulated as $Lx = \frac{1}{k} Fx$, where the $F$ operator comprises of neutron source terms and the $L$ operator comprises of the streaming, collision, and scattering terms.
Unlike the old implementation which requires a separate EigenKernel class for the $F$ operator, the new implementation uses the regular Kernel class with the extra_vector_tags parameter to indicate whether it belongs in $F$ (otherwise $L$).
This PR also refactors NtAction to reduce code duplication. NtAction is an Action object which streamlines the process of creating Moltres input file by automatically setting up various Kernels, BCs, etc. required in a neutronics simulation.
Thanks for the review @yardasol! I changed the parameters to unsigned int for consistency. All other occurrences of those parameters in Moltres are unsigned ints. Feel free to merge if you (re)approve.
Description
Closes #177 This PR transitions Moltres from the old
NonlinearEigen
/InversePowerMethod
executioner implementation to the newEigenvalue
executioner implementation in MOOSE for solving k-eigenvalue problems. The old implementation is deprecated and will eventually be removed from MOOSE. All relevant tests and documentation are updated to reflect the transition to the new implementation.A k-eigenvalue problem may be formulated as $Lx = \frac{1}{k} Fx$, where the $F$ operator comprises of neutron source terms and the $L$ operator comprises of the streaming, collision, and scattering terms.
Unlike the old implementation which requires a separate
EigenKernel
class for the $F$ operator, the new implementation uses the regularKernel
class with theextra_vector_tags
parameter to indicate whether it belongs in $F$ (otherwise $L$).This PR also refactors
NtAction
to reduce code duplication.NtAction
is an Action object which streamlines the process of creating Moltres input file by automatically setting up various Kernels, BCs, etc. required in a neutronics simulation.Changes
src/
&include/
, i.e.,CoupledFissionEigenKernel
,PrecursorEigenSource
,SelfFissionEigenKernel
doc/
associated with the EigenKernelsNtAction
andPrecursorAction
to use the newEigenProblem
implementationtests/
to use the newEigenProblem
implementationproblems/
to use the newEigenProblem
implementation2021-cnrs-benchmark
input files and the expected computational requirementstutorials/
to use the newEigenProblem
implementationEigenProblem
implementationElmIntegFissPostprocessor
andElmIntegFissNtsPostprocessor
insrc/
andinclude/
NtAction
to reduce code duplicationImpact
Eigenvalue
executioner implementation in MOOSENtAction