regression from sympy 1.2 in dolfin demos processing ufl

Issue #28 duplicate
Drew Parsons created an issue

dolfin has started to fail to build on Debian, failing when compiling forms (ffc) for demos. A build log is https://buildd.debian.org/status/fetch.php?pkg=dolfin&arch=amd64&ver=2017.2.0.post0-3%2Bb2&stamp=1531724764&raw=0

It previously built, the difference seems to be sympy 1.2, which was made available last week.

The ffc python trace is

  Compiling 3 forms in demo/undocumented/curl-curl/cpp...

  ffc -l dolfin -s -O -r auto EddyCurrents.ufl

  Traceback (most recent call last):

    File "/<<PKGBUILDDIR>>/cmake/scripts/generate-form-files.py", line 90, in <module>
      ret = ffc.main(args)
    File "/usr/lib/python3/dist-packages/ffc/main.py", line 217, in main
      resultcode = _compile_files(args, parameters, enable_profile)
    File "/usr/lib/python3/dist-packages/ffc/main.py", line 256, in _compile_files
      code_h, code_c = compile_ufl_data(ufd, prefix, parameters)
    File "/usr/lib/python3/dist-packages/ffc/main.py", line 99, in compile_ufl_data
      parameters=parameters)
    File "/usr/lib/python3/dist-packages/ffc/compiler.py", line 143, in compile_form
      prefix, parameters, jit)
    File "/usr/lib/python3/dist-packages/ffc/compiler.py", line 190, in compile_ufl_objects
      ir = compute_ir(analysis, prefix, parameters, jit)
    File "/usr/lib/python3/dist-packages/ffc/representation.py", line 171, in compute_ir
      for e in elements]
    File "/usr/lib/python3/dist-packages/ffc/representation.py", line 171, in <listcomp>
      for e in elements]
    File "/usr/lib/python3/dist-packages/ffc/representation.py", line 203, in _compute_element_ir
      fiat_element = create_element(ufl_element)
    File "/usr/lib/python3/dist-packages/ffc/fiatinterface.py", line 99, in create_element
      element = _create_fiat_element(ufl_element)
    File "/usr/lib/python3/dist-packages/ffc/fiatinterface.py", line 196, in _create_fiat_element
      element = ElementClass(fiat_cell, degree)
    File "/usr/lib/python3/dist-packages/FIAT/lagrange.py", line 56, in __init__
      poly_set = polynomial_set.ONPolynomialSet(ref_el, degree)
    File "/usr/lib/python3/dist-packages/FIAT/polynomial_set.py", line 176, in __init__
      dv = expansion_set.tabulate_derivatives(degree, pts)
    File "/usr/lib/python3/dist-packages/FIAT/expansions.py", line 375, in tabulate_derivatives
      data = _tabulate_dpts(self._tabulate, D, n, order, numpy.array(pts))
    File "/usr/lib/python3/dist-packages/FIAT/expansions.py", line 104, in _tabulate_dpts
      phi.append(form_derivative(phi[-1]))
    File "/usr/lib/python3/dist-packages/FIAT/expansions.py", line 50, in form_derivative
      out = [sympy.diff(F, X[j]) for j in range(D)]
    File "/usr/lib/python3/dist-packages/FIAT/expansions.py", line 50, in <listcomp>
      out = [sympy.diff(F, X[j]) for j in range(D)]
    File "/usr/lib/python3/dist-packages/sympy/core/function.py", line 1986, in diff
      return Derivative(f, *symbols, **kwargs)
    File "/usr/lib/python3/dist-packages/sympy/core/function.py", line 1110, in __new__
      it cannot be differentiated.''' % expr))

  ValueError:

  Since there are no variables in the expression [0, 0, 0], it cannot be

  differentiated.

curl-curl and EddyCurrents.ufl are just the first that show in the dolfin build log. The same error is triggered by other ufl files in documented dolfin demos. FIAT lists last in the trace before sympy, so I figure the bug should be assigned to FIAT.

Is Issue#8 relevant here?

Comments (2)

  1. Log in to comment