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

Smith, Barry F. bsmith at mcs.anl.gov
Mon Sep 30 09:57:37 CDT 2019


  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 
> 



More information about the petsc-users mailing list