[petsc-users] Inverting a Large Matrix with Fortran Code
Koki Imada
koki.imada at york.ac.uk
Wed Aug 20 06:01:43 CDT 2014
Hello,
I have a problem of the kind:
G(i) = (invM.P).G(i+1) +invM.(d -R.b),
where M, P and R are square tri-diagonal matrices, invM is the inverse of M, G(i)
and G(i+1) are the linearised solution vectors (given G(i+1), G(i) is determined
using above), and "d" and "b" are vectors.
The problem is, M at grid point (i) depends on M(i-1), so I #cannot# reduce the
problem to:
G(i) = invM(i).H(i+1), where H(i+1)=P.G + (d-R.b),
because I first need to calculate alpha(i)=invM(i).P(i) for all i, before
calculating G(i) from G(i+1).
So I would like to directly invert M, using MatLUFactor and MatMatSolve. The problem
here is, my code is written in Fortran 90, and there is a note on MatLUFactor manual
page saying:
"fortran interface is not autogenerated as the f90 interface defintion cannot be
generated correctly [due to MatFactorInfo] "
Does this mean the MatLUFactor routine cannot be used in Fortran? Or is there a
workaround?
Many Thanks,
Koki
More information about the petsc-users
mailing list