Modified the fpdiff.py script so that it *should* work with python 2.x
and 3.x



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@505 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Bypassed David's wo_d_unsteady_heat_midpoint self-tests (bdf and midpoint)
since both fail fairly spectacularly and David isn't around to fix them
at the moment.



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@506 595e1d82-adf1-4282-bac7-b6073fa2ca8e
-- Change in exception handling. Error messages now get 
   spawned in destructor of the OomphException. This
   allows them to be suppressed, e.g. when an exception is
   caught. If it's not caught, the destructor may not be called.
   This is handled via the set_terminate(...) function implemented
   in the TerminateHelper namespace. It's called automatically in
   the problem constructor but can be called by everybody. 

-- Changed all test for hanging nodes in specific FaceElements 
   that can't (yet) deal with hanging nodes so that the test
   is only done on their own nodes -- also dealt with various
   memory leaks that the old (stupid) method of checking this
   had created. 

     IMPORTANT: The new method should be used for all new
                face elements! 

   Strategy: build face element first, then check if any of its
   nodes are hanging (this works because face elements are only
   attached to meshes after adaptation (if any) so hang status
   of nodes is already clear). Check that bulk element is 3D and
   refineable first. If it's not the test is obviously not needed.
 
-- Introduced a flag that allows navier stokes preconditoner to work
   with meshes that contain elements that are not of the "right type"
   without issuing warnings -- they get ignored anyway).

-- Made autogen.sh's "order of argument checker" work with variable
   rather than hard-coded config/configure_options/current.

-- Changed parallel mumps test code so that mpi doesn't work with
   copy of mpi_comm_world to stop complaints.

-- Changed boundary enumeration in unstructured torus and point source
   Helmholtz to  suppress warnings about missing boundaries

-- Allowed use of non-navier-stokes elements in ns preconditioner
   for flux control. 

-- Deleted various no-longer used files (headers and demo drivers)
   in melting/heat transfer directory.

-- Added Stefan Boltzmann test code.

-- Added demo-code (working) to demo_drivers/linear_solvers/ to
   illustrate how to write a simple block diagonal preconditioner 
   from scratch (using linear elasticity as an example). Not
   self-tested at the moment, but could form basis
   of tutorial. There's also an (incomplete) code that will/may at some
   point do the same for the LSC preconditioner -- doesn't compile yet
   so added via EXTRA_DIST.

-- Added empty disable_ALE() to spherical_advection_diffusion_elements.h
   to suppress warning; ALE isn't implemented anyway.



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@507 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Matthias' check in of Philippe's bug fixes (and additions) to the
Helmholtz machinery:

-- New demo driver (not self-tested yet!) 
 
      demo_drivers/generalised_helmholtz/scattering/unstructured_two_d_helmholtz_scattering.cc

   does scattering problem with pmls (rather than DtN). Agrees
   extremely well!

-- Added flux elements to generalised helmholtz equation (essentially
   the same as those in the normal helmholtz equations). Also provide
   FaceElements that allow the post-processing of the radiated power
   and/or the (ejected volume) flux. 

   NOTE: Like many things to do with Helmholtz, these are unlikely to
         work in 3D. There's actually no good reason for this
         (since, unlike the DtN stuff in the normal Helmholtz
         equations) things should work in any dimension, but 
         too much has just been copied across from there. Will need
         to be fixed at some point when somebody gets around to
         writing a 3D test case.

-- Fixed enumeration problem in the setup of PML meshes -- as written
   this only worked for the one-and-only test case we had. Now it
   should (!) work in general. 

-- removed the dim() function from FaceElements in 

        src/helmholtz/helmholtz_bc_elements.h

   since it created total confusion (by an inappropriate 
   overloading of the FE::dim() function).



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@508 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Made general purpose block preconditioners work with block sub preconditioners

* Required a nasty amount of if statements.
  It would be nice to fix it in the future so that the arguments to
  preconditioner setup and solve for subsidiary block preconditioners are not
  completely different from everything else.

* Needed to make master_block_preconditioner_pt() const

* Corrected mistake in anti-diagonal block preconditioner
  Should use blocks: (i, nblock - i -1), I missed the -1 before.

* Changed BlockDiagonalPreconditioner to use the right block_setup()
  Before it forced the use of the version in BlockPreconditioner, which is
  wrong if there is any dof_to_block mapping set.

* Rename some variables in functions
  r -> rhs
  z -> x

* PARANOID check in exact block preconditioner
  can't have subsidiary block preconditioners

* Replace calls to new in exact block preconditioner
Fix for self tests with automake versions > 1.13

If we have automake version more recent than 1.13 then the default is to
use the new parallel self test harness which doesn't work with
parallel_self_tests.py (and doesn't actually run tests in parallel without
a major rewrite of all Makefile.am s). So we need to disable it. However
the command to disable the new test harness was only introduced in version
1.12 which is still very new!

Additionally autoconf has no way of checking version numbers etc. so we
can't implement a conditional option to automake there.

So it looks like the only way around this for now is to modify configure.ac
in regenerate_config_files.sh if the automake version is greater than
1.12. Since the only (approved) way to generate configure.ac is using this
script it should be safe.