[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: further about PCComputeExplicitOperator()




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.

Dave,

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.


   Barry





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@xxxxxxxxxxx> 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