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
Store permutation from new to original cell numbering

We need this to back out the correct coarse to fine cell maps in a mesh
hierarchy.
Add optional distribute flag to mesh creation

If distribute is False, the mesh is already distributed and we should
not do so again.
Ensure meshes always have name
Add MeshHierarchy class

Takes a mesh and number of refinement levels and builds a refined
hierarchy along with maps from coarse to fine cells on each coarse-fine
pair.
Add indexing to mesh hierarchy
Add function space hierarchy

Only simple cases and cell to node map implemented for now.
Add FunctionHierarchy
Move XXXHierarchy to multigrid module
Rename argument in cell_node_map
Add restriction and prolongation methods to FunctionHierarchy

Only implemented for DG0 for now.
Add basic test of restriction/prolongation

Restrict and prolong a DG0 field with handwritten kernels.
Add failing test restricting interpolate coordinates

Fails because inverse cell map is wrong.