apply_geometry_lowering does not always lower Jacobians
Issue #51
invalid
Latest UFL changes therefore also break Firedrake "bendy" (non-affine support).
from firedrake import *
mesh = UnitSquareMesh(2, 2)
V = FunctionSpace(mesh, "RT", 1)
u = TrialFunction(V)
v = TestFunction(V)
L = assemble(div(u)*div(v)*dx)
gives:
Compiling form form
Compiler stage 1: Analyzing form(s)
-----------------------------------
Geometric dimension: 2
Number of cell subdomains: 0
Rank: 2
Arguments: '(v_0, v_1)'
Number of coefficients: 1
Coefficients: '[Coordinates]'
Unique elements: 'RT1(?), Vector<2 x CG1(?)>'
Unique sub elements: 'RT1(?), Vector<2 x CG1(?)>, CG1(?)'
representation: quadrature
quadrature_degree: auto --> 3
quadrature_rule: auto --> default
Compiler stage 1 finished in 0.0809739 seconds.
Compiler stage 2: Computing intermediate representation
-------------------------------------------------------
Computing representation of integrals
Computing quadrature representation
Transforming cell integral
This object should be implemented by the child class.
Traceback (most recent call last):
File "/home/mh1714/Documents/spam.py", line 9, in <module>
L = assemble(div(u)*div(v)*dx)
...
File "/home/mh1714/git/ffc/ffc/quadrature/optimisedquadraturetransformer.py", line 349, in jacobian
error("This object should be implemented by the child class.")
File "<string>", line 1, in <lambda>
File "/home/mh1714/git/ufl/ufl/log.py", line 151, in error
raise self._exception_type(self._format_raw(*message))
Exception: This object should be implemented by the child class.
Some explanation: ufl/algorithms/compute_form_data.py:227 introduces Jacobians into the form which are not removed by ufl/algorithms/compute_form_data.py:231 and therefore cause FFC to fail.
Comments (2)
-
reporter -
reporter - changed status to invalid
Should have been filed against UFL, resubmitting.
- Log in to comment
Adding @amcrae to watch.