Skip to content

Consider using more efficient linear system solver #6

Description

@wcdawn

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions