← Back to team overview

ffc team mailing list archive

Re: JIT compile strangeness

 

On Tue, Feb 02, 2010 at 12:08:51PM +0000, Harish Narayanan wrote:
> On 02/02/2010 11:29, Marie Rognes wrote:
> >
> > More compile strangeness:  Clean cache, error at first run,
> > things running at second run:
> >
> > meg@localhost ~/local/src/fenics/adaptivity/demo $ instant-clean
> > Instant cache is empty
> > meg@localhost ~/local/src/fenics/adaptivity/demo $ python test.py
> > Calling FFC just-in-time (JIT) compiler, this may take some time.
> > Traceback (most recent call last):
> >  File "test.py", line 6, in <module>
> >    L = assemble(v*dx)
> >  File
> > "/home/meg/local/lib64/python2.6/site-packages/dolfin/fem/assemble.py",
> > line 88, in assemble
> >    dolfin_form = Form(form, function_spaces, coefficients,
> > form_compiler_parameters)
> >  File
> > "/home/meg/local/lib64/python2.6/site-packages/dolfin/fem/form.py", line
> > 39, in __init__
> >    function_spaces)
> >  File
> > "/home/meg/local/lib64/python2.6/site-packages/dolfin/fem/form.py", line
> > 60, in _extract_function_spaces
> >    if not isinstance(func.function_space(), cpp.FunctionSpace):
> > AttributeError: 'Argument' object has no attribute 'function_space'
> > meg@localhost ~/local/src/fenics/adaptivity/demo $ python test.py
> > L =  <PETScVector of size 24>
> >
> > Anyone else experience this?
> >
> > from dolfin import *
> > mesh = UnitSquare(2,2)
> > V_h = FunctionSpace(mesh, "DG", 1)
> > v = TestFunction(V_h)
> > L = assemble(v*dx)
> > print "L = ", L
>
> Me, me, me! :)
>
> Harish
>
> _______________________________________________
> Mailing list: https://launchpad.net/~ffc
> Post to     : ffc@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~ffc
> More help   : https://help.launchpad.net/ListHelp

This is fixed now. It was an intricate caching problem relating to
reuse of the dummy form v*dx that FFC creates when JIT compiling
elements (for use in DOLFIN FunctionSpace).

I fixed it by making sure FormData is not cached when compiling
elements but a proper solution (removal of the FFC dummy form) should
be implemented instead. I've added a FIXME in jit.py.

--
Anders

Attachment: signature.asc
Description: Digital signature


Follow ups

References