- edited description
Remove redundant evaluate functions from UFC
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)
-
reporter -
reporter @martinal @logg @blechta Are you happy with the above suggestion?
-
Aren't some of these changes used for custom integrals at the moment?
-
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.
-
reporter Do above UFC function only get generated with the UFLACS backend?
-
You mean
coordinate_mapping
? -
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
-
No, representation only affects the integral classes.
-
My suggested approach to removing these is:
- Implement the old ones in term of calls to the new ones (evaluate = evaluate reference + apply transforms).
- See that nothing breaks.
- Now the cost to generate them is basically nothing so there's really no rush to remove them.
- Wait until all uses are gone, make a release, then remove them.
-
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.
-
Sounds good to me.
-
reporter Is the function
ufc::finite_element::evaluate_basis
being called directly by anybody, or via the DOLFIN interface? @logg ? -
Grep for it in dolfin.
It's called by custom integrals in ffc.
-
- removed milestone
- Log in to comment