further about PCComputeExplicitOperator()

Barry Smith bsmith at mcs.anl.gov
Sat May 3 14:42:59 CDT 2008

On May 2, 2008, at 7:19 PM, Dave May wrote:

> Hi Barry,
>    Does PCComputeExplicitOperator() really build B*A or A*B?
> The above code appears to just be applying the preconditioner to the  
> each column of the identity matrix, with no reference to the  
> original operator or the preconditioner side.


     You are correct; I apologize. There is a  
KSPComputeExplicitOperator() that computes the preconditioned operator  
(B*A or A*B) depends on the KSP preconditioner
sider. The manual page for PCComputeExplicitOperator() does not  
mention KSPComputeExplicitOperator(), I have rectified this.


> I only wanted to clarify this fact as at one stage I wrote a  
> function to compute B*A or A*B as I had convinced myself that  
> PCComputeExplicitOperator() just assembled the inverse of the  
> preconditioner.
> Cheers,
>     Dave.
> On Sat, May 3, 2008 at 2:50 AM, Barry Smith <bsmith at mcs.anl.gov>  
> wrote:
>  Note also:
> PCComputeExplicitOperator - Computes the explicit preconditioned  
> operator.
> this means it computes B*A or A*B (depending on left or right  
> preconditioning). This beasty
> (unless you use Jacobi preconditioning) is always dense and it makes  
> no sense to store in
> sparse format except for fun.
>   Barry

More information about the petsc-users mailing list