[petsc-dev] Right-preconditioned GMRES

Barry Smith bsmith at mcs.anl.gov
Fri Feb 10 18:30:09 CST 2017


   Thanks for reporting the issue and your patience. I have made a fix for this problem but need to have Jed review it: https://bitbucket.org/petsc/petsc/pull-requests/634/allow-users-to-change-the-pcside-and/diff   If Jed is happy with it we'll get it into master within a couple of days. Otherwise he needs to propose a solution.

   Barry



> On Feb 10, 2017, at 2:14 AM, Pierre Jolivet <pierre.jolivet at enseeiht.fr> wrote:
> 
> I forgot to mention this, but you just need to run:
> mpirun -np 1 ./ex1
> 
> Can you reproduce the issue?
> Thanks.
> 
>> On Feb 9, 2017, at 10:52 PM, Pierre Jolivet <pierre.jolivet at enseeiht.fr> wrote:
>> 
>> There, attached.
>> 
>> Thanks.
>> 
>> PS: here is the patch also, just in case
>> diff --git a/src/ksp/ksp/examples/tutorials/ex1.c b/src/ksp/ksp/examples/tutorials/ex1.c
>> index 6382c09..d9dc69a 100644
>> --- a/src/ksp/ksp/examples/tutorials/ex1.c
>> +++ b/src/ksp/ksp/examples/tutorials/ex1.c
>> @@ -123,6 +123,11 @@ int main(int argc,char **args)
>>      routines.
>>    */
>>    ierr = KSPSetFromOptions(ksp);CHKERRQ(ierr);
>> +  ierr = KSPSetUp(ksp);CHKERRQ(ierr);
>> +  char right_options[] = "-ksp_norm_type unpreconditioned -ksp_pc_side right";
>> +  PetscOptionsInsertString(NULL,right_options);
>> +  ierr = KSPSetFromOptions(ksp);CHKERRQ(ierr);
>> +  ierr = KSPSetUp(ksp);CHKERRQ(ierr);
>> 
>>    if (nonzeroguess) {
>>      PetscScalar p = .5;
>> 
>> <ex1.c>
>> 
>>> On Feb 9, 2017, at 2:56 PM, Matthew Knepley <knepley at gmail.com> wrote:
>>> 
>>> On Thu, Feb 9, 2017 at 7:48 AM, Pierre Jolivet <pierre.jolivet at enseeiht.fr> wrote:
>>>> On Feb 9, 2017, at 2:31 PM, Matthew Knepley <knepley at gmail.com> wrote:
>>>> 
>>>> On Thu, Feb 9, 2017 at 7:29 AM, Pierre Jolivet <pierre.jolivet at enseeiht.fr> wrote:
>>>> 
>>>>> On Feb 9, 2017, at 2:17 PM, Matthew Knepley <knepley at gmail.com> wrote:
>>>>> 
>>>>> On Thu, Feb 9, 2017 at 7:06 AM, Pierre Jolivet <pierre.jolivet at enseeiht.fr> wrote:
>>>>> 
>>>>>> On Feb 9, 2017, at 1:37 PM, Matthew Knepley <knepley at gmail.com> wrote:
>>>>>> 
>>>>>> On Thu, Feb 9, 2017 at 4:56 AM, Pierre Jolivet <pierre.jolivet at enseeiht.fr> wrote:
>>>>>> Hello,
>>>>>> I _might_ be doing something wrong when calling KSPSetFromOptions/KSPSetUp, but still, am I supposed to get this kind of error?
>>>>>> [0]PETSC ERROR: No support for this operation for this object type
>>>>>> [0]PETSC ERROR: KSP gmres does not support PRECONDITIONED with RIGHT
>>>>>> 
>>>>>> If not, I’ll try to send a MWE (it basically depends on where I set the option -ksp_pc_side right).
>>>>>> 
>>>>>> I believe its telling you that it cannot display the preconditioned residual with right preconditioning, which is true.
>>>>>> Are you requesting both?
>>>>> 
>>>>> No, I’m just using -ksp_view and -ksp_pc_side right. In the “standard” case, it obviously work.
>>>>> However, the error is triggered if I set -ksp_pc_side right after a first call to KSPSetOperators()/KSPSetUp() without destroying the KSP.
>>>>> Should I destroy my KSP before changing from left- (default) to right-preconditioning if KSPSetOperators()/KSPSetUp has already been called?
>>>>> 
>>>>> Its likely you have to use
>>>>> 
>>>>>   http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPSetNormType.html
>>>>> 
>>>>> or
>>>>> 
>>>>>   -ksp_norm_type unpreconditioned
>>>> 
>>>> If I use this after my first call to KSPSetUp, I now end up with:
>>>> [0]PETSC ERROR: KSP gmres does not support UNPRECONDITIONED with LEFT
>>>> 
>>>> Yes, you would need to use it at the same time that you change the preconditioning side.
>>> 
>>> Yes, I’m using PetscOptionsInsert, and whether I let PETSc parse "-ksp_pc_side right -ksp_norm_type unpreconditioned” or "-ksp_norm_type unpreconditioned -ksp_pc_side right” I end up with the same error afterwards.
>>> 
>>> Can you make an example do it (SNES ex5)? Or can you send a small example that does it?
>>> 
>>>   Thanks,
>>> 
>>>     Matt
>>>  
>>> Thanks.
>>> 
>>>>   Thanks,
>>>> 
>>>>      Matt 
>>>>> since we would not have a chance to change it since its been set already.
>>>>> 
>>>>>   Thanks,
>>>>> 
>>>>>      Matt
>>>>> 
>>>>> Thanks.
>>>>> 
>>>>>>   Thanks,
>>>>>> 
>>>>>>      Matt
>>>>>>  
>>>>>> Thanks,
>>>>>> Pierre
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> -- 
>>>>>> 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
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> 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
>>>> 
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> 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
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> 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
>> 
> 




More information about the petsc-dev mailing list