Added even more self tests to matrix_addition

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@586 595e1d82-adf1-4282-bac7-b6073fa2ca8e
About to modify the CRDoubleMatrix::add(...) function to deal with
column indices not in ascending order.

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@587 595e1d82-adf1-4282-bac7-b6073fa2ca8e
CRDoubleMatrix::add(...) can handle unordered column indices.
This is done by using a map to store the column indices-value pair.
Complexity is logrithmic in size.

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@588 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Added more binary files to .gitignore

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@589 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Updated comments for the re-re-written CRDoubleMatrix::add(...) function

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@590 595e1d82-adf1-4282-bac7-b6073fa2ca8e
-- Removed Chris "spine problem" and associated files from
   demo_drivers

-- Implemented output fct for poro-elastic BJS FSI face elements.

-- Fixed an odd bug in fsi poro-elastic traction elements where
   the traction was computed using the wrong bulk coordinate.




git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@591 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Added more comments to navier_stokes_preconditioners.cc and .h

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@592 595e1d82-adf1-4282-bac7-b6073fa2ca8e
CRDoubleMatrix::add(...): more self tests added.
New self test for unordered column indices

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@593 595e1d82-adf1-4282-bac7-b6073fa2ca8e
BlockPreconditioner::turn_into_subsidiary_block preconditioner(...)
function to take in an 'optional' Vector which describes if
preconditioner DOF types requires coarsening.

Under-the-hood it's really done with a wrapper around the function since
optional arguments and vectors don't play nicely in C++

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@594 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Added ability to specify different initial areas for
different regions in a triangle mesh via

  TriangleMeshParameters::set_target_area_for_region(...)

function. Test added to Julio's most extreme inline-triangle
self-test.




git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@595 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Added fluid pressure as final column in output of axisymmetric
poroelastic bjs fsi elements.



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@596 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Changed build machinery to accomodate more recent versions of 
trilinos in which teuchos has been broken up into multiple
sub-libraries (whose names need to be specified at linking time...).

Solution/logic:

  (1)  If trilinos is built from source (i.e. from a tar file)
       we know which version we need and the automachinery 
       now takes the right decision. There are only a relatively
       small number of "legal" tar files for which we know that
       oomph-lib works with them (the others are almost certainly fine too
       but only these can be used in our automated build process).

  (2) We're linking against a pre-installed version of trilinos
      in which case it's difficult (or certainly very tedious) to find out 
      which version it needs (unless we write linking tests...).
      In that case we assume that we have the old version, i.e.
      we link with -lteuchos. 

  (3) This can be over-ruled by the user (the person installing 
       oomph-lib) by using the configure flag 

         --enable-multiple_teuchos_libraries
 
      This over-rules even inferred requirements (from the
      tar file) but a warning is issued if this happens.

   (4) Finally, we explicitly comment on this issue during the
       build process and alert the user/installer to the fact
       that there may be problems with teuchos. 



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@597 595e1d82-adf1-4282-bac7-b6073fa2ca8e
-- Added function that allows computation of porous flux to axisymmetric
   poro-elasticity elements.

-- Updated makePvD, oomph-convert and oomph-convert.py to MH's latest
   version for:

    -- better handling of files from parallel runs
    -- existing output (vtu/vtp files) now don't get re-generated
       unless -o flag (for overwrite) is used in call to oomph-convert.
    -- various improvements to the way various data formats
       are handled (e.g. in exponential notation etc).

-- improved automatic generation of Makefiles in private
   during build stage -- we only try to create these in directories
   that actually contain a Makefile.am (so not in result directories,
   say)



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

and slightly improve comments and layout
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.