I've added affine map code paths to remove redundant derivative
calculations from compute_maps and init_shape_functions - it seems to
be slightly faster, but "slightly" means "around 2% on cubic TRI6
elements". Since checking for affine maps costs more for elements
with more nodes and saves less for elements with fewer quadrature
points, it's entirely possible that I've just slowed down calculations
on the popular quadratic HEX27s. Let me know if anyone sees a
slowdown - there are ways to speed up the has_affine_map calculations
that I'd like to try if necessary before reverting anything.
Ben, have you started work on the FE caching yet? I'd offer to help,
but I'd be too tempted to saddle you with a vector of vector of
multiarrays instead of the hash table you wanted...