Hi Onno, It is the element-wise derivative ie the usual derivative when restricted to each element. So if the FE space is continuous, that’s the usual global weak derivative. all the best cjc On 26 Jan 2020, at 10:32, Onno Bokhove <O.Bokhove@leeds.ac.uk> wrote:  Dear Firedrakers, When taking a Firedrake (functional/form) derivative, say the derivative of the functional int (du/dx)^2 dx (plus some bc's) is the outcome the functional derivative (i) with or (ii) without integration by parts? I.e. is it: (ii) 2 int du/dx dv/dx dx or (i) -2 int d^2u/d x^2 v dx, modulo bc's, and with v = delta u? https://www.firedrakeproject.org/firedrake.html#firedrake.ufl_expr.derivativ... (I am trying to understand why the below would work, and it does, with CG1 for X, or in the above with CG1 for v and u, which only can work when no ibp is done. ) Kind regards, Onno PS: # Kinematics # Right Cauchy-Green tensor if self.nonlin: d = self.X.geometric_dimension() I = fd.Identity(d) # Identity tensor F = I + fd.grad(self.X) # Deformation gradient C = F.T*F E = (C-I)/2. # Green-Lagrangian strain # E = 1./2.*( fd.grad(self.X).T + fd.grad(self.X) + fd.grad(self.X).T * fd.grad(self.X) ) # alternative equivalent definition else: E = 1./2.*( fd.grad(self.X).T + fd.grad(self.X) ) # linear strain self.W = (self.lam/2.)*(fd.tr(E))**2 + self.mu*fd.tr( E*E ) # f = fd.Constant((0, 0, -self.g)) # body force / rho # T = self.surface_force() # Total potential energy Pi = self.W * fd.dx # Compute first variation of Pi (directional derivative about X in the direction of v) F_expr = fd.derivative(Pi, self.X, self.v) _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake