<div dir="ltr">Hello everybody,<br><br>I'm interested in implementing FETI-1. Regardless of the iterative solver used for solving the interface problem, before applying the preconditioner it is required to project the residual and after applying the preconditioner to the projected residual to re-project again. It could seem that PCCOMPOSITE could be used in this case, performing the operation P*M^{-1}*P^T at once over the residual. However, this is not useful for the general case in FETI-1 because the convergence of the iterative solver must be checked with the projected residual, that is P^T*r, or in same cases with M^{-1}*P^T*r, but not with P*M^{-1}*P^T*r. That is why I would need support for projection and reprojection phases in petsc solvers.<br><br>Right now there is no support for that. So, my question: for implementing the support of the projection and reprojection phases in petsc I would introduce the functions ApplyProjection and ApplyReProjection to the petsc implementation in the same way that, for example, ApplyPC is supported. What do you think about this? Would you proceed like this?<br><br>After implementing the support for ApplyProjection and ApplyReProjection, I would incorporate the behavior to one of the petsc iterative solvers. For that I would adopt the GMRES solver because it prevents me from implementing the full re-orthogonalization that is required when CG is adopted as iterative solver for FETI-1 (something which is not implemented in petsc CG). In that case, do you recommend me to define a new GMRES in petsc, or to modify the already exiting GMRES implementation by introducing the option of performing the phases of projection and reprojection?<br><br>Regards,<br>Alejandro<br></div>