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;

Attachment: ex1.c
Description: Binary data


On Feb 9, 2017, at 2:56 PM, Matthew Knepley <knep...@gmail.com> wrote:

On Thu, Feb 9, 2017 at 7:48 AM, Pierre Jolivet <pierre.joli...@enseeiht.fr> wrote:
On Feb 9, 2017, at 2:31 PM, Matthew Knepley <knep...@gmail.com> wrote:

On Thu, Feb 9, 2017 at 7:29 AM, Pierre Jolivet <pierre.jolivet@enseeiht.fr> wrote:

On Feb 9, 2017, at 2:17 PM, Matthew Knepley <knep...@gmail.com> wrote:

On Thu, Feb 9, 2017 at 7:06 AM, Pierre Jolivet <pierre.jolivet@enseeiht.fr> wrote:

On Feb 9, 2017, at 1:37 PM, Matthew Knepley <knep...@gmail.com> wrote:

On Thu, Feb 9, 2017 at 4:56 AM, Pierre Jolivet <pierre.jolivet@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


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

Reply via email to