DoubleVectors, hypre_solver lgr_prec and brickification

src/navier_stokes/lagrange_enforced_flow_preconditioner.h
  Now using the tranpose mass matrices.
  Before we assume that the mass matrices of the contrained
  velocity were square. This is incorrect.

src/generic/double_vector.h
src/generic/double_vector.cc
  Added optional variable output_precision to output functions.
  Fixed some comments.

src/generic/hypre_solver.h
  /// Return function for Max_iter
  unsigned& amg_iterations()

  /// \short Return function for the AMG_using_simple_smoothing_flag
  bool& amg_using_simple_smoothing_flag()

src/meshes/brick_from_tet_mesh.template.cc
src/meshes/brick_from_tet_mesh.template.h
  Added functions to brickify a Tetgen mesh.

src/meshes/tetgen_mesh.template.h
Added setup_boundary_coordinates(b,switch_normal), required for
the brickification of Tetgen meshes

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@534 595e1d82-adf1-4282-bac7-b6073fa2ca8e

   New feature that allows adaptation of unstructured meshes created
   from polyfiles. This version does not currently support to work with
   internal non-closed boundaries defined from polyfiles.

   INTERFACE CHANGES: There is a new constructor for the
                      RefineableTriangleMesh class that receives the
                      three files created by triangle (*.1.node, *.1.ele
                      and *.1.poly). 



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@535 595e1d82-adf1-4282-bac7-b6073fa2ca8e
-- Commit of Matthew's cartesian Darcy equations and associated
   demo code.

-- Forgot to spell this out earlier. If errors are caught,
   the error message (which now appears in std::cerr)
   should be suppressed like this:

   try
    {
     steady_newton_solve();
    }
   catch (OomphLibError &error)
    {
     error.disable_error_message();
     cout << "Caught solver error -- continuing regardless \n.";
    }

   Added this to the mpi pitchfork tracking code.

-- Changed pinning/unpinning of dofs in projection.h.
   We now brutally pin everything (rather than doing it field by
   field) and then unpin the dofs associated with the field that
   is being projected. This is necessary to handle cases the like
   the projectable darcy equations where some values are not associated
   with any field but only created to allow the projection of the 
   coordinates.

-- Added additional compute_error(...) functions that allow the return
   of individual components of errors (rather than a lumped scalar).




git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@536 595e1d82-adf1-4282-bac7-b6073fa2ca8e
  
  The decimal precision for the element size in unstructured meshes
  has been fixed to 14 digits. There is a warning message for element size
  values smaller than that. 



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@537 595e1d82-adf1-4282-bac7-b6073fa2ca8e
New dof type grouping strategy implemented for the block preconditioning
framework.

When we precompute preconditioner blocks used for the subsidiary
preconditioner, we only need to know which dof types a subsidiary
expects. We no longer need to know how the subsidiary preconditioner groups
the dof types.

For example, if the (master) lagrangian preconditioner has dof types (in 3D)
0  1  2  3  4  5  6 7
ub vb wb uc vc wc p L

and if we want to use the LSC preconditioner for the Navier-Stokes
block, the LSC preconditioner expects dof types:
u v w p.

Before, we had to give the 2D vector doftype_to_doftype_map:
[0 1 2 3 4 5]
[6]
this requires knowledge that the LSC preconditioner groups the velocity
and pressure separately.

Now, we give the 2D vector:
u: [0 3]
v: [1 4]
w: [2 5]
p: [6]

Modified the following files:
src/generic/block_preconditioner.cc
src/generic/block_preconditioner.h
src/multi_physics/pseudo_elastic_preconditioner.cc
src/navier_stokes/lagrange_enforced_flow_preconditioner.h
src/navier_stokes/navier_stokes_preconditioners.cc

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@538 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Hidden the precomputed preconditioner blocks mechanism "under the hood".

* src/generic/block_preconditioner.cc
* src/generic/block_preconditioner.h
modified ndof_types() and and nblock_types so that the returned unsigned
depends on if the precomputed blocks (if passed down). This is required
since the ndof_types or nblock_types may be more fine grain in the
preconditioner above.
This can be overridden with the optional boolean parameter to give the
actual ndof_types or nblock_types.

New function: setup_matrix_vector_product(...), sets up a
MatrixVectorProduct. This is created to "hide" the "under the hood"
machinery of precomputed preconditioner blocks.

* src/navier_stokes/navier_stokes_preconditioners.cc
* src/generic/general_purpose_block_preconditioners.cc
Cleaned up places where "Preconditioner_blocks_have_been_precomputed"
were checked.

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@539 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Modified .gitignore : Added more executables in demo drivers.

The following were added:
demo_drivers/generalised_helmholtz/scattering/unstructured_two_d_helmholtz_scattering
demo_drivers/heat_transfer_and_melting/two_d_unsteady_heat_melt/stefan_boltzmann
demo_drivers/heat_transfer_and_melting/two_d_unsteady_heat_melt/stefan_boltzmann_melt
demo_drivers/linear_solvers/two_d_linear_elasticity_with_simple_block_diagonal_preconditioner

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@540 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Removal of the oomph_superlu_3.0 sources from the core.dir_list



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@541 595e1d82-adf1-4282-bac7-b6073fa2ca8e
 ... and another modification to the core.dir_list to remove an unwanted
directory



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@542 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Added Ray's validate_ok_count to EXTRA_DIST variable.



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@543 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Joris' commit:
-- adding axisymmetric Foeppl von Karman

-- enabled uniform refinement for adaptive
   triangle meshes.



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@544 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Clean up sparse_indexed_output(...) implementations

Basically just fix it so that we are properly using the class hierarchy to
avoid lots of copy-pasted code.

* Implement variable precision output and bottom right zeroes as a function
  in the base class which calls "sparse_indexed_output_helper(ostream)" to
  do the main output.

* Similarly for output to files rather than ostreams

* Remove lots of unnecessary functions which used to be all copy pasted code

* Rename the remaining DerivedMatrix::sparse_indexed_output(..) functions to
  sparse_indexed_output_helper(...).

* Improve implementation of variable precision:
** Only set the precision once (instead of before every double is output)
** Properly reset the precision afterwards

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@545 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Initial work on fixing Doxygen generation

* Marked a number of places which cause errors or warnings that I can't fix
  because I don't know the maths with the tag DOXYERROR.

* Fixed a number of mistakes in doxygen comment syntax in the source code that
  were causing errors or warnings in doxygen
** Latex maths mistakes
** Capitalisation mistakes
** Excess newlines (\n) -- latex cannot handle forced newlines in some places!

* Hints for future debugging of doc generation:
** Enable latex errors! In the Doxyfile *in the folder you are debugging* replace
     LATEX_BATCHMODE        = YES
   with
     LATEX_BATCHMODE        = NO

** doxygen versions between 1.7.4 and 1.8.3 may have a major bug which
   results in the .tex file for the folder the_data_structure not being
   generated. If you have this problem use a more recent version of
   doxygen. Not sure when the bug was introduced, only that it was after
   1.7.4. The bug definitely exists in version 1.8.2 which is the version
   used by distributions based on Ubuntu 12.10.

* More generated documentation files in .gitignore

git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@546 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