← Back to team overview

dolfin team mailing list archive

Re: src/demo/fem/python/demo.py ffc jit error

 

On Tue, Jan 15, 2008 at 08:03:48PM +0100, Kristian Oelgaard wrote:
> Quoting Anders Logg <logg@xxxxxxxxx>:
> 
> > On Tue, Jan 15, 2008 at 06:36:07PM +0100, Ola Skavhaug wrote:
> > > Anders Logg skrev den 15/01-2008 følgende:
> > > > On Tue, Jan 15, 2008 at 05:47:11PM +0100, Kent-Andre Mardal wrote:
> > > > > 
> > > > > tir, 15.01.2008 kl. 15.16 +0100, skrev Ola Skavhaug:
> > > > > > I have all the most recent versions of the FEniCS modules. However
> > (or perhaps
> > > > > > therefore), I get the following error when running the python demo
> > under
> > > > > > demo/fem:
> > > > > > 
> > > > > > skavhaug@blakken:~/devel/dolfin/src/demo/fem/python$ python demo.py 
> > > > > > Found form in cache, reusing previously built module (checksum
> > > > > > 5a01ea61f6a36a6c4cf3d35fe9d4f1e9)
> > > > > > Traceback (most recent call last):
> > > > > >   File "demo.py", line 36, in <module>
> > > > > >     A, dofmapset_a = assemble(stiff, mesh)
> > > > > >   File
> > > > > >
> > "/home/skavhaug/extsoft/lib/python2.5/site-packages/dolfin/assemble.py",
> > line
> > > > > > 24, in assemble
> > > > > >     (compiled_form, module, form_data) = jit(form)
> > > > > >   File "/usr/lib/python2.5/site-packages/ffc/jit/jit.py", line 80, in
> > jit
> > > > > >     exec("import %s as compiled_module" % (md5sum + "_module"))
> > > > > >   File "<string>", line 1, in <module>
> > > > > > ImportError: No module named
> > form_5a01ea61f6a36a6c4cf3d35fe9d4f1e9_module
> > > > > > 
> > > > > > 
> > > > > > By some reason ffc thinks I have this form cached, but can't import
> > it. Is
> > > > > > there a directory I should add to PYTHONPATH? The most elegant
> > solution would
> > > > > > perhaps be that ffc adds the correct path to sys.path in Python?
> > > > > > 
> > > > > > Ola
> > > > > 
> > > > > Try to remove the cache, 
> > > > > rm -r /tmp/instant $HOME/.instant
> > > > > 
> > > > > I am not sure where ffc has its cache. 
> > > > > 
> > > > > Kent
> > > > 
> > > > Just run
> > > > 
> > > >   ffc-clean
> > > > 
> > > > If you press ctrl-c when running the JIT compiler, it will break the
> > > > next time since it will think it has generated the code before (which
> > > > it didn't since you pressed ctrl-c). This needs to be fixed but I
> > > > haven't gotten to it yet.
> > > 
> > > Thanks, it fixed the problem.
> > > 
> > > However, the src/demo/fem/python/demo.py script looks to be out of sync
> > with
> > > PyDOLFIN:
> > > 
> > > Line 37: 
> > > A, dofmapset_a = assemble(stiff, mesh)
> > > should be
> > > A = assemble(stiff, mesh)
> > > 
> > > Similar on line 38.
> > > 
> > > Line 55 / 56:
> > > Traceback (most recent call last):
> > >   File "demo.py", line 55, in <module>
> > >     A0.set(A0_array, 4, position, 4, position)
> > >   File
> > "/home/skavhaug/extsoft/lib/python2.5/site-packages/dolfin/dolfin.py",
> > > line 2418, in set
> > >     return _dolfin.Matrix_set(*args)
> > > TypeError: Matrix_set() takes exactly 4 arguments (6 given)
> > > 
> > > Should be:
> > > A0.set(A0_array, position, position)
> > > M0.set(M0_array, position, position)
> > > 
> > > At last, line 51 should read (for cross platform reasons):
> > > position = numpy.array([0, 1, 2, 3], 'uint32')
> > > 
> > > 
> > > Ola
> > 
> > Thanks, works fine now (but with 'I' instead of 'uint32').
> 
> Most of the code in src/demo/fem/cpp/main.cpp
> has been commented out.
> The C++ and Python demos are also not showing the same thing, C++ show the use
> of StiffnessMatrix and MassMatrix from MatrixFactory whereas the Python demo is
> just a simple assembly. (I got some errors when trying to generate the SWIG
> interface for MatrixFactory)

Maybe we don't need the MassMatrix and StiffnessMatrix classes, at
least not in Python, where it's very simple to write

  M = assemble(v*u*dx, mesh)
  M = assemble(dot(grad(v), grad(u))*dx, mesh)

?

-- 
Anders


References