Hi,

I'm running some tests on evaluate_basis with different elements and here are 
some results.

The following elements are no longer supported by FIAT:
 Crouzeix-Raviart and Brezzi-Douglas-Fortin-Marini, will they be supported 
again?

The following elements could not be compiled by gcc because of a problem with 
and undefined variable 'copy' in evaluate_dof() and evaluate_dofs():
 FiniteElement('Brezzi-Douglas-Marini', Cell('triangle', 1, Space(2)), 2)
 FiniteElement('Brezzi-Douglas-Marini', Cell('triangle', 1, Space(2)), 3)
 FiniteElement('Brezzi-Douglas-Marini', Cell('tetrahedron', 1, Space(3)), 2)
 FiniteElement('Brezzi-Douglas-Marini', Cell('tetrahedron', 1, Space(3)), 3)
 FiniteElement('Nedelec 1st kind H(curl)', Cell('triangle', 1, Space(2)), 2)
 FiniteElement('Nedelec 1st kind H(curl)', Cell('triangle', 1, Space(2)), 3)
 FiniteElement('Nedelec 1st kind H(curl)', Cell('tetrahedron', 1, Space(3)), 3)

A funny thing to note is that
 FiniteElement('Nedelec 1st kind H(curl)', Cell('tetrahedron', 1, Space(3)), 2)
compiles fine.

Values differ for the following DG element:
 FiniteElement('Discontinuous Lagrange', Cell('interval', 1, Space(1)), 2)
 FiniteElement('Discontinuous Lagrange', Cell('interval', 1, Space(1)), 3)
 FiniteElement('Discontinuous Lagrange', Cell('interval', 1, Space(1)), 4)
 FiniteElement('Discontinuous Lagrange', Cell('tetrahedron', 1, Space(3)), 2)
 FiniteElement('Discontinuous Lagrange', Cell('tetrahedron', 1, Space(3)), 3)
 FiniteElement('Discontinuous Lagrange', Cell('tetrahedron', 1, Space(3)), 4)
 FiniteElement('Discontinuous Lagrange', Cell('triangle', 1, Space(2)), 2)
 FiniteElement('Discontinuous Lagrange', Cell('triangle', 1, Space(2)), 3)
 FiniteElement('Discontinuous Lagrange', Cell('triangle', 1, Space(2)), 4)
but Marie changed the ordering of dofs, so that is not big mystery.
I checked some values manually and it looks like the values has just been 
shifted around so the result should be OK.

Values also differ for the following elements:
 FiniteElement('Nedelec 1st kind H(curl)', Cell('tetrahedron', 1, Space(3)), 2)
 FiniteElement('Raviart-Thomas', Cell('tetrahedron', 1, Space(3)), 2)
 FiniteElement('Raviart-Thomas', Cell('tetrahedron', 1, Space(3)), 3)
 FiniteElement('Raviart-Thomas', Cell('triangle', 1, Space(2)), 2)
 FiniteElement('Raviart-Thomas', Cell('triangle', 1, Space(2)), 3)
For the Nedelec element values look the same, but they appear in different 
places.
If I call tabulate on the FIAT element (reference) I get matching results as 
when I call evaluate_basis(), so I guess it is OK. Marie, has the ordering of 
dofs changed for Nedelec?

For the Raviart-Thomas elements the story is almost the same. The only 
difference is that for e.g.,
 FiniteElement('Raviart-Thomas', Cell('triangle', 1, Space(2)), 2)
I get values like '0.44444 0.55556 0.22222 -0.22222 -0.33333' in the 'old' 
version of FFC and FIAT, but in the new FFC (and the new FIAT) I get values 
like:
0.66667 0.33333 -0.00000 -0.00000 -0.33333' when I tabulate the basis at the 
same point. Marie, has something changed for RT elements?
For both old and new FFC FIAT.tabulate() and evaluate_basis() agrees so I guess 
the values are OK.

If the above issues can be confirmed and addressed It looks like evaluate_basis 
can be trusted.

Kristian

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Mailing list: https://launchpad.net/~ffc
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~ffc
More help   : https://help.launchpad.net/ListHelp

Reply via email to