[petsc-users] Solving reduced system of equations with global preconditioner

Adrián Amor aamor at pa.uc3m.es
Wed Jun 6 08:13:48 CDT 2018


Hi Matthew,

Thanks for letting me notice that algorithm I didn´t know, but I think it
is not exactly the same. The two-step procedure that I want to implement
within PETSC is the one shown in this article (
https://epubs.siam.org/doi/abs/10.1137/100817978) and I show you the
reduced matrix for your convenience:
[image: image.png]

A_1, A_2 are the blocks of the big original problem used for PCBJACOBI
while R_1 and R_2 are some boolean matrices that select "nonzeros" of the
off-diagonal blocks to build the reduced problem. As I told you, the
algorithm that I am using is to compute the inverse of the A_1 with MUMPS
and then solving that matrix with an iterative solver within PETSC, but I
was wondering if I can merge everything inside PETSC doing the precondition
PCBJACOBI of the big original problem and then indicating to PETSC where
the reduced problem is.

I am so sorry if I explained myself wrong! Thanks a lot for your quick
answer,

Adrian.



El mié., 6 jun. 2018 a las 12:50, Matthew Knepley (<knepley at gmail.com>)
escribió:

> On Tue, Jun 5, 2018 at 6:46 PM, Adrián Amor <aamor at pa.uc3m.es> 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/>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180606/8dc3dc1b/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 30739 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180606/8dc3dc1b/attachment-0001.png>


More information about the petsc-users mailing list