Fix the argument generated by derivative.

We previously had a false assumption that taking a Gateaux derivative
always results in adding a TestFunction. Now we add the next unused
Argument to the form, which is always correct.
ffc_interface: grab coefficients from preprocessed form

The coefficients FFC sees are of the preprocessed form, so we can't grab
them from the original form, since those may not match up.
add six (python 2-to-3 utility) to requirements.txt
Merge pull request #341 from firedrakeproject/derivative_fix

Fix the argument generated by derivative

We previously had a false assumption that taking a Gateaux derivative
always results in adding a TestFunction. Now we add the next unused
Argument to the form, which is always correct.

Also take the coefficients from the preprocessed form.
Fix the argument generated by derivative.

We previously had a false assumption that taking a Gateaux derivative
always results in adding a TestFunction. Now we add the next unused
Argument to the form, which is always correct.
ffc_interface: grab coefficients from preprocessed form

The coefficients FFC sees are of the preprocessed form, so we can't grab
them from the original form, since those may not match up.
Fix projection for dolfin-adjoint

Introduce a variable holding the solve function to be used by
project. This enables dolfin-adjoint to overload the solve call.
Merge pull request #349 from firedrakeproject/projection_solve

Fix projection for dolfin-adjoint
Support Constant in firedrake par_loop

Allow passing a Constant in to a par_loop (always accessed with single
indirection).  For example, to assign a function to the minimum of
itself and some specified constant:

   c = Constant(100)
   f = Function(V)

   par_loop('for(int i = 0; i < f.ndof; i++) { f[i][0] = fmin(f[i][0], c[0]); }',
            dx, {'f': (f, RW), 'c': (c, READ)})
Update par_loop documentation for new Constant type
DOLFIN-compatible FFC parameter specification
Merge pull request #350 from firedrakeproject/ffc-parameters

DOLFIN-compatible FFC parameter specification

Allows overriding FFC parameters via the parameter system.
Avoid divide by zero in IntervalMesh construction

If the user passes both length and ncells as int and the former is
larger than the latter, we should not choose a cellsize of zero.
Deal with tuple degree in errornorm
Add xfailing test of top and bottom bcs in extruded mixed spaces

Solve two uncoupled Poisson problems in a single mixed space with
different boundary conditions in each case.  Currently fails due to
incorrect application of top and bottom boundary conditions.
Add xfailing extruded Stokes-Poiseuille test

Solve for simple Poiseuille flow in an extruded channel using
Taylor-Hood elements.  Currently fails due to incorrect application of
boundary conditions in the pressure space.
Remove support for extruded top and bottom bcs

This never did the right thing for mixed spaces, and furthermore was
only applied for cell integrals.
Adapt to PyOP2 renaming of SparsityMap to DecoratedMap

Preparation for implementing bcs on mixed extruded spaces.
Reimplement bcs for extruded spaces

In particular, rework implicit top and bottom bcs such that they only
apply to an individual Map, rather than the par_loop as a whole.  As a
side effect, assemble no longer needs to special case for these bc
types, since they're dealt with through the normal "flag the map values"
mechanism at a firedrake level.

As a result of this change, application of top and bottom boundary
conditions in mixed spaces now does the right thing and only applies the
bc to the relevant subspace.
Test mixed space top/bottom bcs with mixed strong/weak bcs

Solve two independent Poisson problems in a single mixed space applying
strong bcs to the top and inhomogeneous weak bcs at the bottom in the
first and vice versa in the second.  Tests that we don't have pollution
of top/bottom bcs between the two spaces.