← Back to team overview

ffc team mailing list archive

Current ffc-dev status element/dofmap

 



Summary of current status for non-mixed elements:

- CG matches old results for (at least) k = 1, ..., 4, which is good :)

Errors:

(1) The generated code for evaluate_basis_derivatives_all for DG_0 does not compile.

Changes in output:

(i) num_sub_elements is 0 instead of 1 for all non-mixed elements

(ii) The ordering of the degrees of freedom for DG has changed. This affects evaluate_dof, interpolate_vertex_value and tabulate_coordinates. Hence, the output from these functions will not match reference. The results look correct in the eye-norm though.

(iii) There is a bug in the ffc-stable codegenerator_utils.py 'inner_product' (-1*1 = 1)! This affects interpolate_vertex_values for H(div/curl) elements (at least). The old values are wrong. The new values look right.

(iv) FIAT has changed the dofs for interior moments for H(div/curl) elements. This affects evaluate_dof, tabulate_coordinates etc.


Bottom-line: Things look good. I'll go through the higher-order H(div/curl) elements in FIAT and add suitable unit tests.



For mixed elements such as

element = MixedElement([VectorElement('CG', 'triangle', 3), FiniteElement('DG', 'triangle', 2)])

I'm still getting errors like:


This is FFC, the FEniCS Form Compiler, version 0.7.1.
For further information, visit http://www.fenics.org/ffc/.

Compiler stage 1: Analyzing form(s)
-----------------------------------

Compiler stage 1 finished in 0.000413179 seconds.

Compiler stage 2: Computing intermediate representation
-------------------------------------------------------
 Computing representation of 3 elements
 Reusing element from cache
 Reusing element from cache
 Reusing element from cache
 Reusing element from cache
Traceback (most recent call last):
 File "/home/meg/local/bin/ffc", line 167, in <module>
   sys.exit(main(sys.argv[1:]))
 File "/home/meg/local/bin/ffc", line 151, in main
   compile_element(ufd.elements, ufd.object_names, prefix, options)
File "/home/meg/local/lib64/python2.6/site-packages/ffc/compiler.py", line 181, in compile_element
   ir = compute_ir(analysis, options)
File "/home/meg/local/lib64/python2.6/site-packages/ffc/representation.py", line 52, in compute_ir ir_elements = [_compute_element_ir(e, i, element_map) for (i, e) in enumerate(elements)] File "/home/meg/local/lib64/python2.6/site-packages/ffc/representation.py", line 92, in _compute_element_ir
   ir["create_sub_element"] = _create_sub_foo(ufl_element, element_map)
File "/home/meg/local/lib64/python2.6/site-packages/ffc/representation.py", line 316, in _create_sub_foo
   return [element_map[e] for e in ufl_element.sub_elements()]
KeyError: FiniteElement('Lagrange', Cell('triangle', 1, Space(2)), 3)



--
Marie



Follow ups