For large problems, preconditioners have to take advantage of some 
underlying mathematical structure of the operator to perform well (require few 
iterations). Just black-boxing the system with simple preconditioners will not 
be effective. 

   So, one needs to look at the Liouvillian Superoperator's structure to see 
what one can take advantage of. I first noticed that it can be represented as a 
Kronecker product:   A x I or a combination of Kronecker products? In theory, 
one can take advantage of Kronecker structure to solve such systems much more 
efficiently than just directly solving the huge system naively as a huge 
system. In addition it may be possible to use the Kronecker structure of the 
operator to perform matrix-vector products with the operator much more 
efficiently than by first explicitly forming the huge matrix representation and 
doing the multiplies with that. I suggest some googling with linear solver, 
preconditioning, Kronecker product.

> On Jan 31, 2024, at 6:51 AM, Niclas Götting <ngoett...@itp.uni-bremen.de> 
> wrote:
> 
> Hi all,
> 
> I've been trying for the last couple of days to solve a linear system using 
> iterative methods. The system size itself scales exponentially (64^N) with 
> the number of components, so I receive sizes of
> 
> * (64, 64) for one component
> * (4096, 4096) for two components
> * (262144, 262144) for three components
> 
> I can solve the first two cases with direct solvers and don't run into any 
> problems; however, the last case is the first nontrivial and it's too large 
> for a direct solution, which is why I believe that I need an iterative solver.
> 
> As I know the solution for the first two cases, I tried to reproduce them 
> using GMRES and failed on the second, because GMRES didn't converge and seems 
> to have been going in the wrong direction (the vector to which it "tries" to 
> converge is a totally different one than the correct solution). I went as far 
> as -ksp_max_it 1000000, which takes orders of magnitude longer than the LU 
> solution and I'd intuitively think that GMRES should not take *that* much 
> longer than LU. Here is the information I have about this (4096, 4096) system:
> 
> * not symmetric (which is why I went for GMRES)
> * not singular (SVD: condition number 1.427743623238e+06, 0 of 4096 singular 
> values are (nearly) zero)
> * solving without preconditioning does not converge (DIVERGED_ITS)
> * solving with iLU and natural ordering fails due to zeros on the diagonal
> * solving with iLU and RCM ordering does not converge (DIVERGED_ITS)
> 
> After some searching I also found [this](http://arxiv.org/abs/1504.06768) 
> paper, which mentions the use of ILUTP, which I believe in PETSc should be 
> used via hypre, which, however, threw a SEGV for me, and I'm not sure if it's 
> worth debugging at this point in time, because I might be missing something 
> entirely different.
> 
> Does anybody have an idea how this system could be solved in finite time, 
> such that the method also scales to the three component problem?
> 
> Thank you all very much in advance!
> 
> Best regards
> Niclas
> 

Reply via email to