-- Added (nearly) emtpy virtual functions

     Problem::actions_before_read_unstructured_meshes()
     Problem::actions_after_read_unstructured_meshes()

   They should be overloaded for any problems in which face elements
   are attached to unstructured bulk meshes and/or where any pointers
   to elements/nodes in such meshes are stored. The functions are only
   needed when a restart is performed, so may be left empty. Their 
   content is likely to be the same as the
   actions_before/after_adapt() and if such functions already exist
   no additional actions are required since these are called
   automatically.

   To minimise the danger of the user overlooking the need to provide
   these functions (nasty seg faults arise if they're not provided
   in non-adaptive problems) suitable warnings are issued. These may
   be suppressed.

-- Changed all config options files to the suppress building of the
   documentation by default since there appear to be problems (on recent
   versions of ubuntu) which can cause the build process to "hang".
   This is still under investigation...

-- Changed the non-existent "O6" optimisation to "O3" in all gcc-based
   config option files.  


 



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@602 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Added porous skeleton velocity to output for axisymmetric BJS BC elements.



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@603 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Included proof-of-concept code for spatially adaptive continuation, but the
method will not work for problems in which the Nodes move. 

A complete rewrite of the scheme is planned for the remainder of this week,
in which the additional data is stored at the Data rather than the Problem 
level. This will allow seamless use of the spatial adaptivity with minimum
overhead.

In addition, corrected a few bugs in the dump and reload, which meant that
it didn't work if the min_permitted error was set to exactly 0.0




git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@604 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Small modification to fix an unintended bug :

 If Nodes were shared between submeshes the equation numbering could have
gone wrong. We never do/did this, so the problem was never spotted. 

 The problem has been fixed by assigning global equation numbers on the 
global mesh (only) and explicitly treating spines differently 
(which are something of an exception to most of our rules anyway). 
In addition the virtual status of 
Problem::assign_eqn_numbers() and Mesh::assign_local_eqn_numbers() have been 
removed because they are not needed. 



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@605 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Added line visualiser output to axisym nst and poro-elasticity elements
and tidied up a few things (incl. one bug fix) in line visualiser code.



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@606 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Mainly check in of heat transfer/melt/contact stuff with contact stuff
working.

-- Fixed unsteady heat elements, adding missing beta factor.

-- SolidFaceElement::interpolated_xi(...) called interpolated_x(...)
   (rather than interpolated_xi(...) of underlying bulk element).
   Fixed.

-- Solid-traction elements stored Lagrangian coordinate in Eulerian
   coordinate. Fixed.

-- INTERFACE CHANGE:

      TriangleMeshPolyLine *boundary_polyline(...)

    becomes

      TriangleMeshPolyLine *boundary_polyline_pt(...)

    in src/meshes/triangle_mesh.template.h. Renamed various local
    variables that were called boundary_polyline_pt.

-- Added face mesh projection capability (needed to project 
   Lagrange multiplier across to new mesh. Code is in 
   src/generic/face_mesh_project.h and required minor
   change to nodes.h

-- Added new constructor for hijack(able) FaceElements which 
   allows specification of the ID of any fields that are added
   by this face element (e.g. Lagrange multipliers)

-- Added fct Mesh::total_size() that adds up the FiniteElement::size()
   contributions of all constituent finite elements (non finite
   elements are ignored).




git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@607 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Added missing validata files for heat transfer/contact stuff



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@608 595e1d82-adf1-4282-bac7-b6073fa2ca8e
A number of changes in the core so that the data used in continuation problems
can be stored in the Data objects, rather than at the Problem level. This is
achieved by replacing the original TimeStepper(s) by a custom 
ContinuationStorageScheme, so that all spatial adaptivity can be handled by
the same mechanisms as used for history values in time-dependent problems.

The assumption is the continuation and time-stepping will never be done at the
same time (which is true, I think). 

At the moment the new functionality can be activated using the
Problem::Use_continuation_timestepper=true flag, but the default is false. 

This is a mid-way check-in because the next stage is to adapt the bifurcation
detection and continuation routines to use the same idea (auxilliary data 
stored in the place of history values). This is a reasonably large job and so
I want to have a definite check point before going further.

One new interface has been added for arc_length_continuation when the 
continuation parameter is already Data in the problem. 

A few validation tolerance tweaks have also taken place.

I've had to add a new function 
 Mesh::set_mesh_level_time_stepper() that is called to reset the timesteppers
for any Mesh level storage, i.e. SpineData in SpineMeshes and the TimeStepper
that is stored in TriangleMeshes. This should be overloaded if you want to do
continuation problems and you have Mesh level data to worry about.

IMPORTANT: For continuation problems the projection must include all Data not
just those that don't have time-history values (e.g. pressure in 
Navier--Stokes). I have rewritten the projection in the TTaylorHoodElement 
to ensure this works (the storage is already allocates), but not yet for
TCrouzeixRaviart because there is no test case ... yet.


IMPORTANT: The parallel continuation has not been tested for cases with
ExternalHaloData. An error should be thrown, but be aware that this is 
work in progress.



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@609 595e1d82-adf1-4282-bac7-b6073fa2ca8e
-- Changed the embarrassing (and embarrassingly common) typo Wormesley
   to Womersley (thanks to Chris Bertram for spotting these!).

-- Added seepage flux and skeleton velocity to output of
   axisym poroelastic face elements.

-- Perform computation of "flux due to skeleton veloc" as well as
   "flux due to seepage" in contribution_to_total_porous_flux(...)
   in axisym poroelastic face elements. Changed interface to
   accommodate this.

-- Added boolean flag and access fct to report if darcy (seepage flow)
   has been switched off in axisymmetric poro-elastic bulk elements.

-- Added skeleton velocity to output of axisymmetric poro-elastic 
   bulk elements.

-- Tweaked fpdiff tolerances in unstructured contact problem
   (vertical resultant force (which should be zero) is computed
   via residual eqn and can therefore be as big as the max. permitted
   residual in the Newton iteration).



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@610 595e1d82-adf1-4282-bac7-b6073fa2ca8e
-- Driver code for linear elasticity contact on top of nonlinear elasticity.

-- Made unstructured linear elasticity refineable/projectable.

-- Added a few virtual destructors.


git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@611 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Missing validata fron linear contact test



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@612 595e1d82-adf1-4282-bac7-b6073fa2ca8e
Commented out over-zealous error check in projectable linear
elasticity elements: They work absolutely fine with
resized nodes; they just ignore the additional nodal values.
Same change should probably be applied to other projectable 
elements.



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@613 595e1d82-adf1-4282-bac7-b6073fa2ca8e
-- "Fixed" problem with pdflatex hanging in doxygen-based
   documentation building by introducing new configure flag

      --enable-suppress-pdf-doc

   (the problem is actually a bug in doxygen -- nested html tables
   (i.e. tables in tables, which we occasionally use for improved 
   layout) break latex).

-- "Fixed" gfortran linking problems for ubuntu >= 13.10 by
   introduction of new configure flag

      --enable_use_gfortran_libraries_for_oomph_flapack

   Strongly suspect that the underlying problem is in the gcc linker
   but this works (thanks to David Shepherd for suggesting this 
   work-around).

-- Added typeinfo header to generalised_timesteppers.h

-- Added David Shepherd's compatility fix for automake > version 1.13.
   in bin/regenerate_config_files.sh



git-svn-id: svn+ssh://vummath.ma.man.ac.uk/home/svn-oomphlib/public/trunk@614 595e1d82-adf1-4282-bac7-b6073fa2ca8e
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.
Make vector time_derivative calc use individual time_derivative function

Cleaner code and easier to overload.

Also fixed some comments.