← 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

Kent-Andre Mardal proposed the following answer:
I can also look at it, so please post to cbc.block if the code
is not unreasonably large

Kent

On 28 January 2013 12:15, Joachim Haga <question220333@xxxxxxxxxxxxxxxxxxxxx
> wrote:

> 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.
>
> --
> 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.