← Back to team overview

ffc team mailing list archive

Re: Current ffc-dev status element/dofmap

 

On Fri, Jan 22, 2010 at 02:39:28PM +0100, Marie Rognes wrote:
>
>
> 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.

Nice! :-)

--
Anders


>
>
> 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)
>
>
>

Attachment: signature.asc
Description: Digital signature


References