docs for MINRES, only for positive definite?
Lisandro Dalcin
dalcinl at gmail.com
Thu Feb 28 11:25:25 CST 2008
Good point, the current code seems to require that...
ierr = KSP_PCApply(ksp,R,Z);CHKERRQ(ierr); /* z <- B*r */
ierr = VecDot(R,Z,&dp);CHKERRQ(ierr);
/*...*/
if (dp < 0.0) {
ksp->reason = KSP_DIVERGED_INDEFINITE_PC;
PetscFunctionReturn(0);
}
Indeed, the following (simple minded, diagonal matrix) test fails with
-pc_type jacobi, but success with -pc_type none
import sys, petsc4py
petsc4py.init(sys.argv)
from petsc4py import PETSc
import numpy as N
A = PETSc.Mat().createAIJ([10,10])
for i in range(0,5):
A[i,i] = -(i + 1)
for i in range(5,10):
A[i,i] = +(i + 1)
A.assemble()
A.view()
x, b= A.getVecs()
b.set(1)
ksp = PETSc.KSP().create()
ksp.type = 'minres'
ksp.setOperators(A)
ksp.setFromOptions()
ksp.solve(b,x)
On 2/28/08, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> But does it require a positive definite preconditioner?
>
>
> Barry
>
>
> On Feb 28, 2008, at 9:32 AM, Matthew Knepley wrote:
>
> > Docs are wrong.
> >
> > Matt
> >
> > 2008/2/28 Lisandro Dalcin <dalcinl at gmail.com>:
> >> I've noticed that the docs for MINRES say that the operator and the
> >> preconditioner must be POSITIVE DEFINITE. But I understand MINRES is
> >> tailored for the symmetric/hermitian-indefinite case.
> >>
> >> Are the docs wrong? Or the actual code is a (very peculiar) MINRES
> >> variant?
> >>
> >>
> >> --
> >> Lisandro Dalcín
> >> ---------------
> >> Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
> >> Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
> >> Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
> >> PTLC - Güemes 3450, (3000) Santa Fe, Argentina
> >> Tel/Fax: +54-(0)342-451.1594
> >>
> >>
> >
> >
> >
> > --
> > 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
> >
>
>
--
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594
More information about the petsc-dev
mailing list