Start a fresh Python version of rabbit
Experiment with edge creation procedures in 2D
Upgrade the face thing to a class to help clarity
Add a preorder_label function
Add a preorder_label2D function
Get the preorder_label functions working correctly
Keep set of volumes sharing a face by collecting them on duplicate test
Make some aesthetic and documentation improvements
Add a function to plot the mesh
Write a partial load balance function, add a .gitigore
Describe the job of the load_balance function
Add some dummy code to re-distribute nodes
Actually ship nodes during a load balance step
Fix a bug in load_balance which happened if mpi_size == 1
Add a function to read in pickled meshes writte by different processors
Fix a mistake in host_node decision, remainder nodes go to last process
Add a function to locate and create ghost cells
Keep a global node_partition array on all processors

This is necessary for determining the host processor of a given node in
the global mesh
Add some code to determine ownership of ghost nodes

I noticed that the load_balance function currently includes ghost nodes
when it figures out the cumulative node count. This is also the case
with the global_node_count function and the use of
len(self.volumes). This needs to be addressed by either:

1. Keeping a separate list of volumes for the ghost nodes, or

2. Excluding ghost zones from the volumes list wherever appropriate
Add a get_volumes function which can optionally return ghost nodes