I am attempting to implement this algorithm for efficiently computing the solution to a sparse linear system of equations when small changes are made to the input matrix A by updating only the matrix L in the LDLT factorization of A. However, from what I have seen there is no documentation about accessing L and D in the pardiso solver. Ideally, my code would look roughly like this:
1. run solver on matrix A with phase 13
2. use solution to compute modification to matrix A
3. use the linked algorithm to directly modify L and D, still in pardiso's memory
4. run solve on matrix A with phase 33, which should use the modified L and D to instead solve the system for the modified matrix A
5. repeat steps 2 through 4
How would I go about doing this? Is it even possible with pardiso?
You may get the diagonal elements of initial or factorized matrix by using pardiso_getdiag() routine and with regard to L: you couldn't obtained and the update L part of factorized matrix.