I must admit, this is based on a cursory read of the repository.
Right now, KOMODO is using the BiCGStab method for solving the underlying linear system of equations. However, it looks like the linear system of equations is being solved for one energy group at-a-time. This is based on my understanding of this comment in the source code.
|
! vector(8) because at each row there are 7 non zero elements |
If the linear system of equations is being solved one-group at-a-time, then the Conjugate Gradient (CG) method will be stable as the underlying system of equations must be Symmetric Positive Definite (SPD). Switching from BiCGStab to CG will almost immediately decrease the runtime by half since the BiCGStab iteration is basically two CG iterations.
Furthermore, classical methods like Gauss-Seidel iterations with Successive Over Relaxation (SOR) and red-black ordering can be very fast for this numerical system. This can be very fast for this type of equation.
Finally, both CG and red-black solvers can be easily parallelized to improve the computational throughput of KOMODO.
If this is something that you’re interested in, I would be happy to investigate some alternative methods for solving the linear systems of equations as my time allows.
I must admit, this is based on a cursory read of the repository.
Right now, KOMODO is using the BiCGStab method for solving the underlying linear system of equations. However, it looks like the linear system of equations is being solved for one energy group at-a-time. This is based on my understanding of this comment in the source code.
KOMODO/src/mod_cmfd.f90
Line 1306 in b112e01
If the linear system of equations is being solved one-group at-a-time, then the Conjugate Gradient (CG) method will be stable as the underlying system of equations must be Symmetric Positive Definite (SPD). Switching from BiCGStab to CG will almost immediately decrease the runtime by half since the BiCGStab iteration is basically two CG iterations.
Furthermore, classical methods like Gauss-Seidel iterations with Successive Over Relaxation (SOR) and red-black ordering can be very fast for this numerical system. This can be very fast for this type of equation.
Finally, both CG and red-black solvers can be easily parallelized to improve the computational throughput of KOMODO.
If this is something that you’re interested in, I would be happy to investigate some alternative methods for solving the linear systems of equations as my time allows.