Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update action and tests for the Eigenvalue executioner #228

Merged
merged 13 commits into from
Mar 20, 2024

Conversation

smpark7
Copy link
Collaborator

@smpark7 smpark7 commented Feb 27, 2023

Description

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.

Changes

  • Remove deprecated EigenKernels in src/ & include/, i.e., CoupledFissionEigenKernel, PrecursorEigenSource, SelfFissionEigenKernel
  • Remove documentation files in doc/ associated with the EigenKernels
  • Update NtAction and PrecursorAction to use the new EigenProblem implementation
  • Update test input and output files in tests/ to use the new EigenProblem implementation
  • Update input files in problems/ to use the new EigenProblem implementation
  • Update the instructions on how to run the 2021-cnrs-benchmark input files and the expected computational requirements
  • Update tutorial input files in tutorials/ to use the new EigenProblem implementation
  • Update the input syntax and eigenvalue tutorials to use the new EigenProblem implementation
  • Fix wrong int signedness in ElmIntegFissPostprocessor and ElmIntegFissNtsPostprocessor in src/ and include/
  • Refactor NtAction to reduce code duplication

Impact

  • Brings Moltres up to date with the new Eigenvalue executioner implementation in MOOSE
  • Improved code cleanliness in NtAction

@smpark7 smpark7 changed the title [WIP] Update action and tests for the Eigenvalue executioner Update action and tests for the Eigenvalue executioner Feb 4, 2024
yardasol
yardasol previously approved these changes Mar 19, 2024
Copy link
Contributor

@yardasol yardasol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @smpark7,

Good work on this code update and refactor. You did a good job updating the docpages. I'm going to approve, but am curious why many int variables were changed to unsigned int.

doc/content/getting_started/input_syntax.md Outdated Show resolved Hide resolved
src/actions/NtAction.C Show resolved Hide resolved
@smpark7
Copy link
Collaborator Author

smpark7 commented Mar 19, 2024

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.

@smpark7 smpark7 requested a review from yardasol March 20, 2024 17:07
Copy link
Contributor

@yardasol yardasol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work @smpark7!

@yardasol yardasol merged commit 6b88398 into arfc:devel Mar 20, 2024
2 checks passed
github-actions bot pushed a commit that referenced this pull request Mar 20, 2024
Update action and tests for the Eigenvalue executioner 6b88398
github-actions bot pushed a commit to khurrumsaleem/moltres that referenced this pull request Apr 16, 2024
Update action and tests for the Eigenvalue executioner 6b88398
github-actions bot pushed a commit to smpark7/moltres that referenced this pull request May 6, 2024
Update action and tests for the Eigenvalue executioner 6b88398
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add support for Eigenvalue eigensolver
2 participants