[petsc-users] Computing part of the inverse of a large matrix

Jan Grießer griesser.jan at googlemail.com
Mon Sep 30 10:13:36 CDT 2019


I configured PETSc with MUMPS and tested it already for the spectrum
slicing method in Slepc4py but i have problems in setting up the LU
factorization in the PETSc4py. Since i do not find the corresponding
methods and commands in the source code. Thats why is was wondering if this
is even possible in the python version.

Am Mo., 30. Sept. 2019 um 16:57 Uhr schrieb Smith, Barry F. <
bsmith at mcs.anl.gov>:

>
>   If you want a parallal LU (and hence the ability to build the inverse in
> parallel) you need to configure PETSc with --download-mumps
> --download-scalapack
>
>   Barry
>
>
> > On Sep 30, 2019, at 9:44 AM, Jan Grießer <griesser.jan at googlemail.com>
> wrote:
> >
> > Is the MatMumpsGetInverse also wrapped to the python version in PETSc4py
> ? If yes is there any example for using it ?
> > My other question is related to the LU factoriation (
> https://www.mcs.anl.gov/petsc/documentation/faq.html#invertmatrix).
> > Is the LU factorization only possible for sequential Aij matrices ? I
> read in the docs that this is the case for ordering.
> > After setting up my matrix A, B and x i tried:
> >  r, c = dynamical_matrix_nn.getOrdering("nd")
> >  fac_dyn_matrix = dynamical_matrix_nn.factorLU(r,c)
> >
> > resulting in an error:
> > [0] No support for this operation for this object type
> > [0] Mat type mpiaij
> >
> > Am Fr., 27. Sept. 2019 um 16:26 Uhr schrieb Zhang, Hong <
> hzhang at mcs.anl.gov>:
> > See ~petsc/src/mat/examples/tests/ex214.c on how to compute selected
> entries of inv(A) using mumps.
> > Hong
> >
> > On Fri, Sep 27, 2019 at 8:04 AM Smith, Barry F. via petsc-users <
> petsc-users at mcs.anl.gov> wrote:
> >
> > MatMumpsGetInverse() maybe useful. Also simply using MatMatSolve() with
> the first 1000 columns of the identity and "throwing away" the part you
> don't need may be most effective.
> >
> >    Barry
> >
> >
> >
> > > On Sep 27, 2019, at 3:34 AM, Jan Grießer via petsc-users <
> petsc-users at mcs.anl.gov> wrote:
> > >
> > > Hi all,
> > > i am using petsc4py. I am dealing with rather large sparse matrices up
> to 600kx600k and i am interested in calculating a part of the inverse of
> the matrix(I know it will be a dense matrix). Due to the nature of my
> problem, I am only interested in approximately the first 1000 rows and 1000
> columns (i.e. a large block in the upper left ofthe matrix).  Before I
> start to play around now, I wanted to ask if there is a clever way to
> tackle this kind of problem in PETSc in principle. For any input I would be
> very grateful!
> > > Greetings Jan
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190930/cf558cb0/attachment.html>


More information about the petsc-users mailing list