Remove redundant evaluate functions from UFC

Issue #158 new
Prof Garth Wells created an issue

With the addition of UFC functions to evaluate basis functions and basis function derivatives on the reference cell, and functions to pull back coordinates (in ufc::coordinate_mapping) and others to push forward to the physical space, the following functions can be removed:

  • ufc::finite_element::evaluate_basis
  • ufc::finite_element::evaluate_basis_all
  • ufc::finite_element::evaluate_basis_derivatives
  • ufc::finite_element::evaluate_basis_derivatives_all
  • ufc::finite_element::tabulate_dof_coordinates

The functionality provided by the above is more transparently and more efficiently implemented via the new functions.

There may be more functions that can be removed.

Comments (14)

  1. Anders Logg (Chalmers)

    I'm happy as long as it doesn't break anything, but as Miklos says these are currently in use by the implementation of custom integrals (and cut_cell, interface and overlap) so it seems this will need to wait until the 4 missing integrals currently supported by FFC/quadrature have been implemented in FFC/uflacs.

  2. Prof Garth Wells reporter

    Sorry, I meant the partner functions

    • ufc::dofmap::evaluate_reference_basis
    • ufc::dofmap::evaluate_reference_basis_derivatives
    • ufc::dofmap::transform_reference_basis_derivatives
    • ufc::dofmap:: tabulate_reference_dof_coordinates

    and

    • ufc::coordinate_function
  3. Martin Sandve Alnæs

    My suggested approach to removing these is:

    1. Implement the old ones in term of calls to the new ones (evaluate = evaluate reference + apply transforms).
    2. See that nothing breaks.
    3. Now the cost to generate them is basically nothing so there's really no rush to remove them.
    4. Wait until all uses are gone, make a release, then remove them.
  4. Prof Garth Wells reporter

    My plan has been to start with 1, but there were errors in the new code so I want to get improved testing in place before redirecting calls to the old functions to the new function.

  5. Prof Garth Wells reporter

    Is the function ufc::finite_element::evaluate_basis being called directly by anybody, or via the DOLFIN interface? @logg ?

  6. Log in to comment