docs for MINRES, only for positive definite?

Barry Smith bsmith at mcs.anl.gov
Thu Feb 28 13:11:08 CST 2008

```On Feb 28, 2008, at 11:44 AM, Matthew Knepley wrote:

> On Thu, Feb 28, 2008 at 11:35 AM, Barry Smith <bsmith at mcs.anl.gov>
> wrote:
>>
>>   symmetry has nothing to do with it. Yes the matrix and
>> preconditioner must be
>> symmetric. The point is that the preconditioner has to also be
>> positive definite.
>> Because B is used in the algorithm to define a norm.
>
> I disagree. Here is a weaker condition:
>
>  1) A is symmetric indefinite and so is B
>
>  2) BA is also symmetric
>
> Since A and B are full rank, so is BA. Thus BA is symmetric indefinite
> and MINRES will work.

But that is a different algorithm. That is running minres on the
operator
BA with the preconditioner I which is very different than running
minres on A with the preconditioner B.

>
> My comment was that if B is SPD, then BA is equivalent to B^1/2 A
> B^1/2 and thus symmetric.
>
>   Matt
>
>>    Barry
>>
>>
>>
>> On Feb 28, 2008, at 11:28 AM, Matthew Knepley wrote:
>>
>>> On Thu, Feb 28, 2008 at 11:25 AM, Lisandro Dalcin
>>> <dalcinl at gmail.com> wrote:
>>>> Good point, the current code seems to require that...
>>>
>>> Its not the code, its the algorithm. It requires symmetry.
>>>
>>> Matt
>>>
>>>> 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
>>>>>> -- 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
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> What most experimenters take for granted before they begin their
>>> experiments is infinitely more interesting than any results to which
>>> -- Norbert Wiener
>>>
>>
>>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which