← Back to team overview

cbc.block team mailing list archive

Re: [Question #220333]: Dolfin GMRES vs. CBC.Block LGMRES

 

Question #220333 on CBC.Block changed:
https://answers.launchpad.net/cbc.block/+question/220333

    Status: Open => Answered

Joachim Haga proposed the following answer:
I do not have any ideas off-hand. I have used LGMRES without seing this
problem before. Which dolfin and cbc.block version are you running? Also,
if you could provide a runnable example that shows this error (complete,
not necessarily minimal) then I can have a look. Send to jobh@xxxxxxxxx.


On 28 January 2013 12:06, Claas Abert
<question220333@xxxxxxxxxxxxxxxxxxxxx>wrote:

> New question #220333 on CBC.Block:
> https://answers.launchpad.net/cbc.block/+question/220333
>
> This question is maybe way too general, but perhaps you can give me some
> hints:
>
> I want to solve a nonsymmetric problem with CBC.Block.
> The standard dolfin solve method with Trilinos backend solves the system
> in 5 iterations:
>
> A, b = assemble_system(a, L)
> solve(A, x.vector(), b, "gmres", "ilu")
>
> However trying to solve the system with CBC.Block fails:
> Ap   = ILU(A)
> Ainv = LGMRES(A, precond=Ap)
> x = Ainv * b
>
> with the following:
>
> File "/usr/local/lib/python2.7/dist-packages/block/iterative/lgmres.py",
> line 190, in lgmres
>   y, resids, rank, s = lstsq(hess, e1)
> File "/usr/lib/python2.7/dist-packages/scipy/linalg/basic.py", line 409,
> in lstsq
>   a1, b1 = map(asarray_chkfinite, (a, b))
> File "/usr/lib/python2.7/dist-packages/numpy/lib/function_base.py", line
> 590, in asarray_chkfinite
>   "array must not contain infs or NaNs")
> ValueError: array must not contain infs or NaNs
>
> I also tried BiCGStab as a solver (3 iterations with builtin Trilinos
> solver, NaN residuum in case of the CBC.Block implementation).
>
> As far as I understand, both the Trilinos GMRES and the CBC.Block LGMRES
> use the IFPACK ILU preconditioner. So does this mean the only difference
> between the two libraries is the implementation of the iterative methods?
>
> I want to use the CBC.Block solver, because I want to implement a Schur
> complement method where I have to solve another linear system per GMRES
> step.
>
> Do you have any hints what I could do to make things work with CBC.Block?
> I know this question is very general. I will  gladly provide more
> information if needed.
>
> Thanks in advance, Claas
>
> --
> You received this question notification because you are a member of
> cbc.block maintainers, which is an answer contact for CBC.Block.
>
> --
> Mailing list: https://launchpad.net/~cbc.block
> Post to     : cbc.block@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~cbc.block
> More help   : https://help.launchpad.net/ListHelp
>

-- 
You received this question notification because you are a member of
cbc.block maintainers, which is an answer contact for CBC.Block.


Follow ups