# extracting work vectors

Jarunan Panyasantisuk jarunan at ascomp.ch
Fri Dec 4 09:47:27 CST 2009

```I am using GMRES and BICGSTAB, not Richardson. Actually, I have never
tried it.

About PCSHELL, I am sorry if this will annoy you but please let me
explain what I understand.
When define a linear system Ax = b
GMRES does                           Ax' = r
where r is residual, acts as a new RHS and supposed to be minimized
x' is a new solution vector, used in the iterations

MyProcond(r, x', rtol, niter)

which will solve the system Ax' = r for niter iterations
Then, return new x' which will be the preconditioned vector or y in

apply(pc,x',y)

It is clear about the vector which preconditioner will be applied, x' here.
In my case, I am looking for my right hand side, r, which I do not know
how can I get this.

If there is no way to access it, I apologize for asking several times.

Regards,
Jarunan

Jed Brown wrote:
> On Fri, 04 Dec 2009 12:51:27 +0100, jarunan at ascomp.ch wrote:
>
>> Hi Jed,
>>
>> Thanks for the advice. I took a look in PCShellSetApplyRicharson() and
>> its apply function.
>>
>> PetscErrorCode apply (PC pc,Vec b,Vec x,Vec r,PetscReal rtol,PetscReal
>> abstol,PetscReal dtol,PetscInt maxits)
>>
>> b - right-hand-side
>> x - current iterate
>> r - work space
>>
>> 1. Can I use PCShellSetApplyRicharson() with KSPGMRES? or it is
>> restrict only for Richardson solver.
>>
>
> Richardson only.
>
>
>> 2. Is x equivalent to xin in PCShellSetApply(pc,apply(PC pc,Vec
>> xin,Vec xout))?
>>
>
> No, preconditioning Richardson is a different beast entirely.
>
>
>> 3. Are b vector is the right hand side specified by user and r the
>> work vector in the iterations?
>>
>
> Yes, r is just work space, you are not required to use it.
>
> It's unlikely that you actually want to use Richardson, you should write
> apply(PC,Vec,Vec).
>
> Jed
>

--
Jarunan Panyasantisuk
Development Engineer
ASCOMP GmbH, Technoparkstr. 1
CH-8005 Zurich, Switzerland
Phone : +41 44 445 4072
Fax   : +41 44 445 4075
E-mail: jarunan at ascomp.ch
www.ascomp.ch

```