← Back to team overview

dolfin team mailing list archive

Re: uBLASKrylovMatrix and Python callbacks: now the fun begins

 

On Tue, Apr 14, 2009 at 09:13:41AM +0200, Johan Hake wrote:
> On Monday 13 April 2009 22:23:12 Robert Kirby wrote:
> > I didn't see it as a sub of cpp.  thanks for pointing that out.  no_prec is
> > a better namegiven what "None" means in python.
> 
> I think that it was not imported to the main dolfin namespace because of it 
> resemblens to the Python None. 
> 
> Untill we have settled the enum vs string vs parameters we can just declare a 
> variable in the PyDOLFIN namespace
> 
>   no_prec = 0
> 
> which would work fine in this case as the enums from DOLFIN is mapped to 
> integer variables in Python.
> 
> Johan

I vote for strings, and using the parameter system whenever possible.

-- 
Anders


> > On Mon, Apr 13, 2009 at 3:00 PM, Johan Hake <hake@xxxxxxxxx> wrote:
> > > On Monday 13 April 2009 21:32:22 Robert Kirby wrote:
> > > > Aha.  I forgot about the inheritance issue.This should die on forming
> > > > an ILU since I don't have matrix values.
> > > >
> > > > doflin::none is not exposed to PyDOLFIN, so I can't set the
> > >
> > > preconditioner
> > >
> > > > to do nothing rather than attempt to compute an ILU.
> > >
> > > It is exposed to dolfin.cpp. You can for example do:
> > >
> > >  dolfin.uBLASKrylovSolver( dolfin.gmres, dolfin.cpp.none )
> > >
> > > We can allways expose it to dolfin too but however I am not sure "none"
> > > is a
> > > good name. Maybe "no_prec" is better?
> > >
> > > Johan
> > >
> > > > Thanks,
> > > > Rob
> > > >
> > > > On Mon, Apr 13, 2009 at 2:30 PM, Johan Hake <hake@xxxxxxxxx> wrote:
> > > > > On Wednesday 08 April 2009 23:15:42 Robert Kirby wrote:
> > > > > > Hi all,I've gotten a prototype working where I construct
> > > > > > a uBLASSparseMatrix and get it to compute the same result as my
> > > > > > matrix-free uBLASKrylovMatrix.  Both of these are constructed
> > > > > > in PyDOLFIN.  However, I can feed the uBLASSparseMatrix
> > > > > > I construct into a dolfin.uBLASKrylovSolver solve method,
> > > > > > but I get a type error when I try to put my
> > > > > > uBLASKrylovMatrix with mult and dim implemented in Python
> > > > > > into the solver.
> > > > > >
> > > > > > In fact, I get a
> > > > > >
> > > > > > TypeError: in method 'uBLASKrylovSolver_solve', argument 2 of type
> > > > > > 'dolfin::uBLASKrylovMatrix const &'
> > > > >
> > > > > You need to call:
> > > > >
> > > > >  dolfin.uBLASKrylovMatrix.__init__(self)
> > > > >
> > > > > to initialize the super class.
> > > > >
> > > > > When I did this I got a bit further. Now an assertion is triggered:
> > > > >
> > > > > *** Assertion (_x.size() == _M.size1())
> > > > >    [at dolfin/la/uBLASILUPreconditioner.cpp:41 in solve()]
> > > > >
> > > > > Johan
> > > > >
> > > > > > Not very revealing.  I've attached a horribly ugly source code for
> > > > > > anyone interested in doing a post-mortem on this.
> > > > > >
> > > > > > Thanks,
> > > > > > Rob
> 
> 
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev

Attachment: signature.asc
Description: Digital signature


Follow ups

References