[petsc-dev] Support for projections in petsc solvers

Barry Smith bsmith at mcs.anl.gov
Thu Oct 1 16:16:36 CDT 2015


    Do you mean  application of the precondition is     P*M^{-1}*P^T  ApplyPC  P*M^{-1}*P^T  or something else? 

    If so then PCCOMPOSITE is not for this purpose in any way. You just need to  do all three things inside your PCApply.

   
> On Oct 1, 2015, at 4:38 AM, Alejandro Cosimo <alecosimo at gmail.com> wrote:
> 
> Hello everybody,
> 
> 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.

   As Matt said if you are checking on something like P^T*r for convergence then you do that with a new convergence test routine.

   BTW: Maybe you could use the source of KSPCreate_FCG() as a starting point for a CG implementation that keeps a complete history.

  Barry

> 
> 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?
> 
> 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?
> 
> Regards,
> Alejandro




More information about the petsc-dev mailing list