Dear developers,

We are using filed splitting method solve saddle point problem.
Below is our ksp configuration:

  PetscOptionsSetValue(NULL,"-ksp_type","gmres");
  PetscOptionsSetValue(NULL,"-ksp_initial_guess_nonzero","");
  PetscOptionsSetValue(NULL,"-ksp_rtol","1e-20");
  PetscOptionsSetValue(NULL,"-ksp_converged_reason", "");
  PetscOptionsSetValue(NULL,"-pc_type", "fieldsplit");
  PetscOptionsSetValue(NULL,"-pc_fieldsplit_type", "schur");
  PetscOptionsSetValue(NULL,"-pc_fieldsplit_schur_fact_type", "lower");
PetscOptionsSetValue(NULL,"-pc_fieldsplit_schur_precondition", "selfp");
  PetscOptionsSetValue(NULL,"-fieldsplit_0_ksp_type", "preonly");
  PetscOptionsSetValue(NULL,"-fieldsplit_0_pc_type", "hypre");
  PetscOptionsSetValue(NULL,"-fieldsplit_1_ksp_type", "preonly");
  PetscOptionsSetValue(NULL,"-fieldsplit_1_pc_type", "hypre");

It can be converged. However, when we turn on the ksp monitor:

  PetscOptionsSetValue(NULL,"-ksp_monitor_true_residual", "");

It won't converge. It seems very odd, I am wondering why it happens.

Thank you for your time and help.

Kind regards,
Shidi

Reply via email to