moltres icon indicating copy to clipboard operation
moltres copied to clipboard

Add support for `Eigenvalue` eigensolver

Open smpark7 opened this issue 3 years ago • 0 comments

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:

  1. SLEPc and PETSc version > 3.13 for optimal solve convergence performance (The cray-optimized PETSc on Blue Waters is only 3.9.3.0)
  2. regular Kernels for the neutron source terms with extra_vector_tags = 'eigen', which means we have to edit our automated initializer NtAction.

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.

smpark7 avatar Oct 21 '21 19:10 smpark7