On Tue, Jun 5, 2018 at 6:46 PM, Adrián Amor <[email protected]> wrote:
> Hi all, > > I think this is a basic question that I am pretty sure that it can be done > in PETSC but I don't know the way, so sorry for wasting your time if it's > too basic! > > I have a big system of equations (say 1M of unknowns) which I divide into > 25 blocks and I use a block-Jacobi preconditioner to get the solution from > KSPBICG. However, I know that I can build a reduced matrix with the > nonzeros of the big preconditioned matrix, solve this reduced problem, and > then recover the solution for the original big system with the factorized > matrices from block Jacobi. How can I do this with PETSC? Since using > KSPComputeExplicitOperator and then copy blocks of this matrix to build the > reduced surface problem in PETSC is definitely not an option. > Its a little hard to understand what algorithm you are describing. Do you mean something like https://en.wikipedia.org/wiki/SPIKE_algorithm We do not have that. We can do additive/multiplicative iterations on these blocks using PCFIELDSPLIT (however the block operations would be serialized). If you want something direct like this, have you tried just applying SuperLU_dist or MUMPS? Thanks, Matt > I was doing this by hand using MUMPS to build the reduced system of > equations, then using PETSC without preconditioner and then, recover the > full solution. However, the burden in time and memory is not negligible so > I wanted to explore a different way with PETSC (using maybe some ILU). I > think that the performance in memory is going to be similar but I expect a > better performance in time. > > Thanks a lot! > > Adrian. > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
