Ensure PETSc is always imported from firedrake.petsc
Purge use of firedrake prefix in tests

We do from firedrake import * everywhere, which doesn't give us
firedrake.Foo.
Plex: fix mesh creation from cell lists in parallel

We should only pass in the topology data on rank zero, and then
distribute, rather than replicating the mesh on all ranks.
Raise error for periodic interval in parallel

Creation of mesh and replacement of coordinates only works in serial for
now.
Add some simple-minded parallel mesh tests

Compute the integral of one over various different meshes in parallel.
Remove ability to spawn gmsh process

Since we rely on gmsh for much less mesh generation now, and spawning a
gmsh process was so flaky, only support building meshes from .geo files
if we have gmshpy installed.

This additionally removes references to gmsh2triangle and fldecomp.
Skip unit circle tests if gmshpy not available
Make circle mesh coarser for speed of testing
Merge pull request #203 from firedrakeproject/fix/plex-distribute

Fix parallel mesh generation when using createFromCellList.
Additionally, remove possibility to generate meshes by spawning gmsh,
which has always been flaky.  You now get an error if trying to invoke
gmsh when gmshpy is not installed.
Ignore some more flake8 errors
Give sensible firedrake error for par_loop MapValueErrors

If we get a map mismatch error in par_loop argument checking during
assemble, the most likely explanation is that the measure does not match
one or more of the form arguments or coefficients.  So report that,
rather than some argument check in the guts of PyOP2.
Merge pull request #118 from firedrakeproject/fix/measure_error
DMPlex: Build FunctionSpaces from one single GNN permutation

We now only build the Plex -> OP2 numbering permutation for
the mesh, which gets inherited by all FunctionSpaces to avoid
re-building sections for each FunctionSpace.

Note: Parallel currently breaks since we lose dof_classes.
DMPlex: Derive dof_classes to fix section permutation in parallel
DMPlex: Remove FunctionSpace._plex = Mesh._plex.clone()

This requires the DefaultSF associated with Mesh._plex to be
re-initialised with the global and universal numbering for
each FunctionSpace.
DMPlex: Optimising facet_cell derivation

We can now derive the cell renumbering from the Plex renumbering
and get rid of the O(n^2) loops (np.where(c==self.cells()))
required previously.