Remove unused Setup_time variable from preconditioner base

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@658 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Make all functions in preconditioner base class virtual

* This is needed for preconditioners which operate only on the main matrix
  of a sum of matrices (we need to be able to overload the functions).

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@659 595e1d82-adf1-4282-bac7-b6073fa2ca8e
In block preconditioners have matrix_pt() get pt from master

* matrix_pt() for block preconditoners always needs to be the full
  Jacobian.

* But setup(...) sets it to the block (in subs block preconditioners),
  so we had to manually change it always

* Instead just get the correct one from the master!

* Might need some renames to make all this clearer

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@660 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Rename block setup overload in GPBlockPreconditioners for safety

* block_setup is non-virtual so would have to be very careful when
  calling it.

* Renamed it instead since it should only be called from inside the
  preconditioners own setup() anyway.

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@661 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Make input vectors const in turn_into_subsidiary_block_preconditioner

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@662 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Add turn_into_subsidiary_preconditioner in Preconditioner base

The versions in the base class do nothing.

The interface functions greatly simplify writing preconditioners which
can have both block and non-block subsidiary preconditioners.

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@663 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Small tidy ups in preconditioners

* Remove redundant semi-colons

* Rearrange logic in upper/lower triangular preconditioners to make more
  sense.

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@664 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Move setup calculations from turn_into_subs_block to block_setup

* No need to do them immediately

* Moving to block_setup allows much more flexibility in construction of
  preconditioners. In particular all the construction can take place in
  a constructor/factory instead of needing to put some in setup().

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@665 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Fix bug where block_setup was allowed to modify its input vector

This caused problems when the input vector was stored elsewhere, because
the stored version would be silently modified by block setup. In
particular it broke all general purpose block preconditioners with
non-trivial dof-to-block mappings.

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@666 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Slightly increase numerical zero (to 1e-10) in axisym_navier_stokes/torus

The test was failing due to errors of ~1e-15 in a few values in the
solution.

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@667 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Fix bug in parallel_self_test.py where specified number of cores was ignored

and slightly improve comments and layout
Add option to parallel_self_test.pt to run in serial mode for debugging
In parallel_self_test.py write make output to file "make_check_output"

Instead of dumping it to /dev/null. Useful if make failures are not
reproducible for some weird reason.
In parallel_self_test.py always get the absolute path (less error prone)
In parallel self tests: add option to build but not run tests
Clean up of some of my (David) code in oomph-lib core

* Move interpolator.h to generic.

* Clean up comments in interpolator.h.

* Add ability to interpolate time and space derivative of values
  (i.e. d2v/dxdt).

* Move some large functions from midpoint_method.h and poly_interp.h to .cc
  files.

* Clean up comments and add paranoid checks in poly_interp.h.
Add a function to get the (unmangled) type name of an object as a string
Additional capabilities for interpolator class

* Can optionally set the timestepper to be used

* Store local position

* Needed to make nprev_values_for_value_at_evaluation_time() const
Move undo_make_steady up into Timestepper base

* Avoids duplicate code - all implementations did the same thing

* Virtual so still easy to overload if needed

* Also very slightly increased tol in fpdiff in axisym_navier_stokes/torus
  Not sure if this is related to this change but it was needed to make the
  test pass on my machine. Changed zero from 1e-12 -> 1.1e-12 .
Add paranoid check for empty matrix when running SuperLu

Otherwise we get a segfault inside SuperLu, with no easy way to find out
what went wrong.