moltres
moltres copied to clipboard
Add support for `Eigenvalue` eigensolver
This issue can be closed when NtAction
supports using the Eigenvalue
executioner and new tests are added for criticality search using Eigenvalue
.
Our existing framework for solving criticality search problems involve using the NonlinearEigen
or InversePowerMethod
executioners. These executioners require EigenKernels
for the neutron source terms, namely the CoupledFissionEigenKernel
and DelayedNeutronEigenSource
.
NonlinearEigen
and InversePowerMethod
still exist, but are now deprecated in favor of the new Eigenvalue
executioner. However, the Eigenvalue
executioner requires:
- SLEPc and PETSc version > 3.13 for optimal solve convergence performance (The cray-optimized PETSc on Blue Waters is only 3.9.3.0)
- regular
Kernels
for the neutron source terms withextra_vector_tags = 'eigen'
, which means we have to edit our automated initializerNtAction
.
While it's technically possible to use the Eigenvalue
executioner in Moltres right now, it would be a tedious process of manually writing the variable, kernel, BC, etc. objects for all neutron groups because NtAction
does not support the right format for Eigenvalue
.
We can't completely remove support for the deprecated Executioners
at this moment because cray-petsc
on Blue Waters is only at 3.9.3.0 and we need Blue Waters for large simulations which need more memory/computing power.