On Tue, Jan 28, 2014 at 1:31 PM, Geoffrey Irving <[email protected]> wrote: > PetscFEIntegrateJacobian_Basic has four layers of loops: > > e - element > f - component of field being differentiated > g - component of field we're differentiating against > q - quadrature point
Typo: f and g index basis functions, not field components. > It looks like g3_func and friends are being called once for each > combination of (e,f,g,q), even though the calls to g3_func are > independent of (f,g). If g3_func is expensive, this duplication seems > a bit slow. > > It seems like the loops should be flipped to be (e,q,f,g) major order, > with the user functions hoisted up to the (e,q) level. Is there a > reason not to do this? > > Geoffrey
