← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-pkg/yade/git-trunk] Rev 3372: Merge github.com:yade/trunk into chaoUnsat

 

Merge authors:
  Anton Gladky (gladky-anton)
  Jan Stránský (honzik)
  Kneib François (francois-kneib)
------------------------------------------------------------
revno: 3372 [merge]
committer: Chao Yuan <chaoyuan2012@xxxxxxxxx>
timestamp: Thu 2013-05-30 18:59:39 +0200
message:
  Merge github.com:yade/trunk into chaoUnsat
added:
  examples/concrete/triax.py
modified:
  ChangeLog
  core/Cell.hpp
  core/main/yade-batch.in
  doc/references.bib
  examples/concrete/uniax.py
  gui/qt4/OpenGLManager.cpp
  lib/import/STLReader.hpp
  pkg/common/Cylinder.hpp
  pkg/common/Facet.cpp
  pkg/common/Facet.hpp
  pkg/dem/CohesiveFrictionalContactLaw.hpp
  pkg/dem/GlobalStiffnessTimeStepper.cpp
  pkg/dem/HertzMindlin.hpp
  pkg/dem/KinemCTDEngine.hpp
  pkg/dem/KinemSimpleShearBox.cpp
  pkg/dem/Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment.hpp
  pkg/dem/SpherePack.cpp
  pkg/dem/SpherePack.hpp
  pkg/dem/TriaxialStateRecorder.hpp
  pkg/dem/ViscoelasticPM.cpp
  pkg/dem/ViscoelasticPM.hpp


--
lp:yade
https://code.launchpad.net/~yade-pkg/yade/git-trunk

Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== modified file 'ChangeLog'
--- ChangeLog	2010-12-14 06:57:42 +0000
+++ ChangeLog	2013-05-21 09:58:26 +0000
@@ -1,1 +1,4600 @@
-
+==================================================
+yade-0.97.0
+Sun May 12 14:48:29 2013 +0200
+
+Anton Gladky (42):
+      Remove release-file.
+      Remove eigen2. Use eigen3 instead.
+      Remove likely/unlekely directives.
+      Remove eigen2-compatibility.
+      Fix compilation with clang.
+      Use system-packaged minieigen, if it persists.
+      Fix typo in __init__.py
+      Use system pygts, if available.
+      Lower required cmake version to 2.6
+      Check whether Tkinter is installed.
+      Return back the minimal cmake version to 2.8. Compilation error with GUI.
+      Fix compilation agains boost 1.53.
+      Fix typo in searching for py_gts module.
+      Fix typo in cmake.
+      Fix linkage of _gts module.
+      Import minieigen in gui/qt4/SerializableEditor.py.
+      Clean scripts/README. Not relevant any more.
+      Raise warning if PIL module is not imported. Not raising an error.
+      Remove documentation about 3rd-party libraries (minieigen and GTS).
+      Install documentation in standard place.
+      Generate and install Yade.epub, if pandoc is available.
+      Build Yade.epub using sphinx-builder.
+      Remove pandoc conversion of tex-file.
+      Fix installation path for html-documentation.
+      Fix --version parameter for yade-batch.
+      Remove commas in "features".
+      Update --help output.
+      Create manpages using "make manpage" command.
+      Remove generating manpage usign --generate-manpage option.
+      Add "make check" command to run the standard tests.
+      Fix splitting of features. (Closes LP:1161451)
+      Revert changes introduced in 4f9f8dae3.
+      Remove information about logging. (Closes LP:1150273)
+      Add information about Yade.epub into README.rst
+      Add export.gmshGeo function to export spheres into GMSH native format.
+      Add publication in russian journal.
+      Use standard GNU paths for install targets.
+      Add GNUInstallDirs.cmake. It is absent in some distributions.
+      Update link for tarballs-download.
+      Use ${OpenMP_CXX_FLAGS} isntead of explicit -fopenmp.
+      Merge pull request #35 from Kubeu/patch-1
+      0.97.0
+
+Bruno Chareyre (21):
+      -Fix (partly) https://bugs.launchpad.net/yade/+bug/1009257, still not good with clumps
+      - avoid deprecation warning when using the triax preprocessor (the future of preprocessors is not certain, though...)
+      fix https://bugs.launchpad.net/yade/+bug/1115554, removing the extra variables
+      - tutorial script: replace L3 geometry by ScGeom
+      -tutorial script: increase O.dt again, no need to slow down
+      - adjust number and size of clumps in the periodic cell
+      - fix two crashing typos in triax-tutorial
+      PeriodicEngine check if simulation time has been reseted (fix https://bugs.launchpad.net/yade/+bug/1153528)
+      - small fix in the way TriaxialStressController defines meanStress
+      A more precise integration of contact forces in periodic deformations, using period size of the previous step for the relative velocity update     + cache a (matrix x matrix)  product for performance (previously re-computed for each other interaction)
+      - fix a small bug in the determination of the mean stress (TriaxialStressController)
+      - a more flexible implementation of density scaling
+      -get back gravitational wotk in NewtonIntegrator (removed by mistake in previous commit, sorry)
+      - reflect (1) in regression tests, since they were expecting innacurate values, cell size change only in the next step after velGrad assignment.     (1) https://github.com/yade/trunk/commit/422ecb00c710337ede7ace6ae62f8f857c6e975a
+      - small fix in doc hyperlinks
+      - two additional bib articles
+      A more accurate integration of external work input in PeriTriax engine
+      - Handle errors in fluid engine more nicely. Pause the simulation when something goes wrong instead of crashing...
+      - update cell's prevVelGrad in Newton
+      - fix two compile warnings
+      - better error handling in FlowEngine     - remove lubrication forces between spheres in boundaries     - check that id1!=id2 before computing forces (can happen in very small periodic packings)     - some code cleaning (FlowEngine.cpp)
+
+Christian Jakob (40):
+      bug fix in bodyNumInteractionsHistogram (avoid segfault)
+      fix clumps behavior in 06-periodic-triaxial-test.py
+      correct copy-and-paste mistake for NewtonIntegrator in 06-periodic-triaxial-test.py
+      fix import _io problem in core/main/main.py.in
+      improvement in utils.saveVars(): add possibility to add/insert variables in existing dicts
+      fix/update example script simple-scene-energy-tracking.py
+      removed utils from examples/simple-scene
+      removed utils from examples (without sub-folders)
+      removed utils from examples/baraban/
+      removed utils from examples/bulldozer/
+      removed utils from examples/chained-cylinders/
+      removed utils from examples/clumps/
+      removed utils from examples/concrete/
+      removed utils from examples/grids/
+      removed utils from examples/gts-horse/
+      removed utils from examples/not-working/
+      removed utils from examples/packs/
+      removed utils from examples/ring2d/
+      removed utils from examples/rod-penetration/
+      removed utils from examples/simple-shear/
+      removed utils from examples/test/ (without sub-folders)
+      removed utils from examples/test/vtk-exporter/
+      removed utils from examples/test/batch/
+      removed utils from examples/test/performance/
+      removed utils from examples/test/multi/
+      removed utils from examples/test/WireMatPM/
+      removed utils from examples/triax-tutorial/
+      remove a useless comment in triax-tutorial
+      small docfix of EnergyTracker
+      fix energy tracking of gravitational work in NewtonIntegrator
+      fix compilation warning in Grid.hpp and prettify its code
+      remove "math" from example scripts
+      fix compilation warning in openmp-accu.hpp
+      Improvements in clump logic - part 5: added Monte-Carlo-algorithm for estimation of clump volumes called getClumpVolume(), added a new method for getting roundness coefficient called getRoundness(), updated examples/clumps/replaceByClumps-example.py
+      Improvements in clump logic - part 6: added new method adaptClumpMasses(), added examples/clumps/adaptClumpMasses-example.py
+      Improvements in clump logic - part 6: added examples/clumps/adaptClumpMasses-example.py
+      small improvement of getClumpVolume() in yadeWrapper.cpp
+      use deterministic instead of random algorithm for getClumpVolume(), adapt examples/clumps/adaptClumpMasses-example.py, improve and fix documentation
+      add info about h-key for yade view in start banner
+      Merge branch 'master' of github.com:yade/trunk
+
+Francois Kneib (4):
+      Change the growParticles method behavior on clumps into Shop.cpp.     Now the clumps are not grown if the clump members are fixed (i.e blockedDOFs='XYZxyz').
+      Workaround for a Ubuntu 12.10 bug that gave a segmentation fault when launching Yade.     The importation of "_io" is made sooner, at the beginning of yade python executable. Changes applied to core/main/main.py.in.
+      Handle the cohesive contact between a sphere and a facet.     Created Ig2_Facet_Sphere_ScGeom6D inheriting from Ig2_Facet_Sphere_ScGeom. It precomputes the 3 rotations DOFs and creates a ScGeom6D contact geometry.     All modifications made into /pkg/dem/Ig2_Facet_Sphere_ScGeom.cpp and hpp.
+      Changes in Grid.ccp/hpp.     - Improve documentation for Ig2_Sphere_GridConnection_ScGridCoGeom::go()     - Add a new law (Law2_ScGridCoGeom_CohFrictPhys_CundallStrack) that allows a cohesive contact (without rotational moments) between a Sphere and a GridConnection.
+
+Jan Stransky (7):
+      fixed typo in user.rst
+      improved damage tensor computation in CPMState
+      doc improvement: added importing yade into user's manual, corrected index notation in utils.bodyStressTensors functions
+      correcting compilation errors from previous commit
+      fixed bug in Cpm for Sphere-Facet interactions
+      fixed bug in Cpm, now for Sphere-Wall interaction
+      disabled some prints for non __main__ yade imports
+
+Jan Stránský (4):
+      modification of cpm model, making easier timing inside InteractionLoop (with CMAKE_CXX_FLAGS=-DUSE_TIMING_DELTAS build, no change otherwise)
+      added ymport.iges function for reading facets from .igs files
+      updated timing documentation
+      updated documentation (due to recent changes in Cpm), corrected Cpm related examples
+
+Kubeu (1):
+      added some hints about plotting and batch mode
+
+christian (3):
+      fix bug in replaceByClumps(), make it compatible with facets
+      Merge branch 'master' of github.com:/yade/trunk
+      undo unwanted changes in kdev4 files from previous commit
+
+dmarzougui (1):
+      Correct the type of numbers used in the computation of viscous stress.
+
+==================================================
+yade-0.95.0
+Tue Mar 5 20:36:40 2013 +0100
+
+Anton Gladky (41):
+      Remove RELEASE file.
+      Fix compilation warning.
+      Fix typo in git-command.
+      Remove doxygen from installation section.
+      Add notification message for yade-batch.
+      Enable SnapshotEngine.
+      Minor fix in documentation.
+      Fix pack.py as suggested by Kneib François.
+      Remove all Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS to prevent race conditions in python-bindings. (Closes LP:1056684)
+      Return back some Py_BEGIN_ALLOW_THREADS, as the previous commit freezes autotests.
+      Add url to Chen`s thesis.
+      Add Tran`s publications.
+      Remove duplicate.
+      Minor fix in references.
+      Search numpy during configuration step.
+      Search loki-library and headers during compilation step.
+      Resize interactionsOnBody, if it is necessary. (Closes: LP:1105177)
+      Fix compilation.
+      Add omp.h header into ParallelEngine
+      AddNUMPY_INCLUDE_DIRS to cmake.
+      Remove --debug option from yade-batch template.
+      Remove debug-option from yade-batch.
+      Fix import of Image-module in Ubuntu Raring.
+      Fix segmentation fault in bodyNumInteractionsHistogram. (Closes: LP:1087680)
+      Use default {CMAKE_CXX_FLAGS_DEBUG for Debug-build instead of hardcoded.
+      Make the bug LP:1087680 visible again.
+      Fix segmentation fault in bodyNumInteractionsHistogram.
+      Return back the opportunity to keep all interaction pointers for each body
+      Use interaction pointers in body class instead of iteration over all interactions in body::py_intrs.
+      Add visualisation to Jakob`s scripts.
+      Merge pull request #32 from jakob-ifgt/master
+      Merge pull request #33 from jakob-ifgt/master
+      Add python-argparse into installation section.
+      Merge pull request #34 from jakob-ifgt/master
+      Remove scripts/debian as it is maintained in Debian itself
+      Remove extra/boost_python_len.hpp as it was for very old boost-versions.
+      Remove extra/foreach.hpp_local. Not used anywhere.
+      Remove site_scons. Forgotten during cmake-migration.
+      Remove convexHull2d. Was blocked.
+      Remove boost-python-indexing-suite-v2-noSymlinkHeaders.
+      0.95.0
+
+Bruno Chareyre (68):
+      Give the git clone adress that will work always (previous one is blocked at 3SR lab)
+      enable setting FlowEngine by number of steps or by deformation aplitude
+      a fix in bibtex
+      -remove excess verbosity
+      - add thread number attribute to change the number of thread of interactionLoop dynamicaly during simulations. Also usefull combined with parallel engine (for fine grain tuning of thread number in each subprocess)
+      1. Add thread number to parallel engine, can be changed dynamicaly. Uncouples the number of threads in parallel engines and in slaves.     2. Enable nested parallel regions (disabled on many systems by default) else the parallel engine is doing no good
+      1. Replace one loop on cells by an optimized vector<Cell> iterator     2. Clean an horrible block of code (not only ugly, it was also slow)
+      - introduce a position buffer for faster updates of volumes
+      Use retriangulation conditions more consistently. The solvers are not swapped before a given fraction of the permutation interval now, to reduce overheads.
+      small change in the initialization logic, now defining the two position buffers if "first"
+      make ompThread an attribute of Engine, as it likely to be used more and more in the future. It is then inherited by InteractionLoop and ParallelEngine
+      Parallelize volume updates and the computation of fluid forces
+      fix a typo introduced in previous commit, giving compile error in FlowEngine
+      remove traces of the SpherePadder module, which is broken and unmaintained (with author's agreement)
+      make grids periodic
+      use EpsVolPercent_RTRG consistently in periodic flow: negative value is ignored, just like the non-periodic case
+      Adapt setContactProperties to pass argument in radians to Shop::setContactFriction
+      -fix conversion mistake (radian/degree)
+      update variable names to denote the unit of friction angle (rad), and make this explicit in the documentation
+      - include elasticity in the normal lubrication force     - fix ompThreads assignment in flow engine, resulting in numThreads=-1 by default, then "libgomp: Out of memory"
+      Fix the F9-F12 keys binding for IPython>=0.12
+      -add the correct prefactor in normal lubrication relation     -overlap the two triangulations during one iteration in order to have the "previous" forces     defined in the normal lubrication equation
+      Update the documentation of the ompThreads attribute.
+      - fix again the offset of ids in SpherePack.toSimulation (previous fix was assuming two bodies per clump)
+      - fix https://bugs.launchpad.net/yade/+bug/923929 again, as shown by François it could still happen in some cases (see example in the bug report)
+      - remove the check/throw when generating aperiodic 2D packings, since the algorithm actually support that.
+      Define O.engine with a default list at startup, with example script and notes in the documentation.
+      remove utils prefix
+      - Updates and improvements in the triax-tutorial material     - smallfix in a note in introduction.rst
+      fixed version of the triax script for clumps
+      Remove first iteration form "--performance" option measurements
+      -transfer the normal lubrication force correctly when retriangulating
+      -doc fix
+      -fix the sign of the normal lubrication force in the periodic case
+      fix compile warning (actually fix the functions as well, as they were not returning results at all!)
+      - doc fix
+      -remove remaining debug lines
+      periodic update of publications
+      fix a typo in bibtex file, +1 ref
+      - one fix in articles, yet more references in conferences
+      fix/add Tran's reference
+      - use "orientation" parameter in utils.box (fix bug/1111514)
+      - improved version of TriaxialStressController, controling not onlt stress but also strain rate     - making the interface more similar (but still not exactly like) PeriTriaxController.     - TriaxialCompressionEngine and ThreeDTriaxialEngine become almost useless     - reflected in the example script which now uses only TriaxialStressController
+      -micro-fix (no need to define an initial timestep)
+      -code cleaning
+      - fix the default value of orientation in utils.box. [1,0,0,0] is NOT a quaternion.
+      -add a few python bindings to the periodic engine for manipulations of the internal tesselation
+      -fix the detection of (not) already computed tesselation
+      -make volume() functional also when PeriodicFlow is actually in use
+      uncouple the compilation of flow code and linsolv, so that it is possible to effectively compile the flow engines without cholmod
+      remove useless "sigma_iso" and "isAxisymetric" members from TTController
+      - make an old engine deprecated, not compiled now, to be removed later
+      more #ifdef guards, to allow flow engine without linsolv
+      remove sigma_iso from the triax example script
+      fix syntax error in a doc string (blocking the buildbot https://yade-dem.org/buildbot/builders/yade-full/builds/1741/steps/shell_3/logs/stdio)
+      -deprecation warnings in ThreeD and TriaxialCompression engines
+      -change the default value of FlowEngine::pressureForce, a flow engine is supposed to compute a flow by default...
+      smallfix in example script
+      - 3 new references
+      - add "Open Source Discrete Element Method" explicitely in the home page, google has to find us
+      nicer documentation of equations for stiffness definition
+      remove useless #define
+      - ship a copy of ipython_directive.py from ipython/HEAD for ipython 0.13
+      ipython version was checked in two different places, forgot the second one. Still no confirmation of the fix.
+      - some lines comited by mistake, sorry for that.
+      - escape crash on non-iterable __doc__ (some qt class)     - define new attributes needed for ipython_directives.py >= 0.13     - fix existing *.rst to use strictly 3 blank spaces in multiline directives (i.e. "   ...:")
+      - reference name Tran2012a appearing twice -> renaming Tran2012b
+      - re-introduce the @supress of Christian (removed during experiments)
+
+Christian Jakob (21):
+      add addToClump() method in yadeWrapper
+      improvements in clump logic - part 1
+      Improvements in clump logic - part 2
+      Added new example script, that show usage of addToClump() and releaseFromClump()
+      Improvements in clump logic - part 3 + 4.
+      shorten the code of replaceByClumps()
+      add a check of python input for replaceByClumps() method
+      further improvements in clump logic
+      some fixes in documentation of wrapper and state
+      fix documentation of clumpTemplate in utils.py
+      Merge remote branch 'upstream/master'
+      let replaceByClumps return a list of tuples with new clump ids and associated sphere ids
+      Merge remote branch 'upstream/master'
+      avgNumInteractions now takes care of clumps
+      some improvements for previous commit
+      doc fix in utils.py and exclude unused Clump.hpp in _utils.cpp
+      updated documentation of clumps in user manual and small fixes in doc in yadeWrapper
+      Merge branch 'master' of github.com:yade/trunk
+      bug fix in replaceByClumps, that could lead to set negative masses on bodies and shorten the code
+      yet another doc improvement in wrapper and user manual concerning replaceByClumps method
+      replaced errors by warnings in addToClump and releaseFromClump in wrapper
+
+Donia Marzougui (5):
+      Fix the computation of viscous forces by using the     correct positions of bodies (updated in     buildTriangulation), and fix some variable names.
+      Remove fictious spheres from the computation of edge surfaces (employed in the computation of viscous forces)
+      Correct the computation of the viscous and normal stress per particle.
+      Correct the sign of some parameters in the computation of the viscous forces.
+      Correct the normal lubrication force.
+
+Francois Kneib (24):
+      Continue the implementation of grids :     - add GridConnexion Aabb     - add GridNode-GridNode Ig2 functor : Ig2_GridNode_GridNode_GridNodeGeom6D     - add GridNode-GridNode contact geometry : GridNodeGeom6D     - add an example script : examples/grids/Simple_Grid_Falling.py     - update utils.py (minor change)
+      Add the possibility of avoiding the contact detection between a group of particle.     -> the vector "avoidSelfInteractionMasks" contains a list of masks : all particles having the same mask will not collide if this mask is inside this list.     -> the "mayCollide" method now check this too.     -> avoidSelfInteractionMasks can be set in python with a list of int.
+      Add the Sphere-GridConnection frictionnal contact :     -> new contact geometry : ScGridCoGeom     -> new Ig2 : Ig2_Sphere_GridConnection_ScGridCoGeom     -> new Law2 : Law2_ScGridCoGeom_FrictPhys_CundallStrack     -> update utils.py to handle the new contact type (using avoidSelfInteractionMasks)
+      Merge branch 'master' of github.com:yade/trunk
+      Add the contact following and avoid multiple contact when a sphere is sliding on a grid.
+      -Grids : Fix some minor bugs in Ig2_Sphere_GridConnection_ScGridCoGeom::go(...).     -Collider : Change the vector of masks "avoidSelfInteractionMasks" to a single mask "avoidSelfInteractionMask".
+      Create and correct documentation.
+      Grids :     - modify the rendering.     - Apply correct DEM laws in utils.py to set right kn, ks, kr, and ktw. Now the grid behavior no longer depends on the spacial discretization you make.
+      Modified setContactFriction method.     Now it has to be used with an angle in radian unit, no longer in degrees.
+      Try to fix documentation in this files, everywere "yref" appears in the online documentation.
+      Fix Grid periodicity, and allow periodic sphere-grid contacts.
+      Disable a boring warning into the grid construction.
+      Fix a bug in SpherePack.toSimulation. There was a big problem when you tried to add clumped SpherePack (with makeClumpCloud() for example).
+      Corrected toSimulation() (for the last time I hope :-) ).
+      Fix a bug in growParticles(...) method.     Growing a clump is now really homothetic. Before that, growing clumps seemed to be homothetic but at the next timestep the original position of members was reseted.
+      Add Inelastic ChainedCylinder behavior law (by Ignacio Olmedo).     Create inelastic material and related physics, Ip2 and Law2.     Example script and complete documentation will come soon.
+      Add the ability to save to a file a SpherePack containing some Clumps.     Into SpherePack : now the toFile method writes a fifth column containing the clump number (-1 if the sphere isn't clumped). The fromFile method uses the new information to append clumped Spheres.     Into Shop : loadSpheresFromFile method is modified to read and return the fifth column. Old files with 4 columns are still compatible.     Into CapillaryTriaxialTest and CohesiveTriaxialTest : Shop::loadSpheresFromFile is sometimes used here, so remove the clumpId information to match the "BasicSphere" typedef.
+      getStress(...) method : exclude gridNode-gridNode contacts for the stress computing.     growParticles(...) method : avoid growing gridNode and gridConnection.
+      Fix some Grids bugs.
+      A minor spelling correction.
+      Add a little class summary and explanations into Grid.hpp.     Fix a bug into utils.py when creating a Grid in a non-periodic scene.
+      In the sphinx documentation, add the https GitHub read-only method : git clone https://github.com/yade/trunk.git
+      Avoid GridNode-GridNode contact stiffnesses (kn and ks) to be changed when the growParticles(...) method is used. (GridNodes are not concerned by this method).
+      Add a missing space in the dependencies code lines.
+
+François Kneib (1):
+      Correct a remaining bug into the toSimulation() python function.
+
+Jan Stransky (9):
+      little modifications
+      added example script for CombinedKinematicEngine
+      little modifications of ConcretePM
+      modification of ConcretePM, improved utils.intrsOfEachBody function
+      improved yade executable: optparse->argparse, yade executable is now loadable as python module
+      modified yade executable, fixing bug 1134422
+      complete optparse->argparse, --generate-manpage should work
+      improvement of ConcretePM, remover warnings in pack module (randomDensePack and randomPeriPack functions)
+      modified ConcretePM, corrected Peri3dController related examples
+
+Jan Stránský (1):
+      minor changes
+
+françois (1):
+      makeClumpCloud(...) now takes a "seed" parameter to generate always the same pack.
+
+==================================================
+yade-0.90.0
+Sat Oct 13 15:16:55 2012 +0200
+
+Anton Gladky (142):
+      Remove RELEASE file.
+      Fix cmake-file to compile.
+      Fix paths in core-files.
+      Update CMakeLists.txt.
+      Fix pygts module.
+      Fix standalone compilation of InteractionLoop.hpp.
+      Enable pymodules on cmake-build.
+      Add version definition to cmake-build.
+      Fix suffix and runtimeprefix in cmake-build.
+      Fix compilation error with gcc-4.7
+      Fix facetBox generation with height=0.
+      Fix permissions on main.py.in file.
+      Fix installation of binaries in cmake-build.
+      Remove log4cxx from scons-file.
+      Fix binary installation at cmake-build.
+      Remove an explicit defining and importing of listdcxx.
+      Install some py-files for cmake-build.
+      Install glviewer in cmake-build.
+      Fix path install in cmake-build.
+      Update CmakeLists.
+      Return explicite defining of libstdcxx. Causes error.
+      Use rpath for lib-installation.
+      Fix linking of core-libraries.
+      Fix some more linkings in cmake-build.
+      Reinitilize interactions after adding a body. Closes LP:1001194
+      Move gui-cmake to gui-folder
+      Move cmake for python modules to py-folder.
+      Separate python modules in cmake-build
+      Fix some liking in cmake-build
+      Some fixes in cmake-build.
+      Add autotest to check bug LP:1001194
+      Give the newly created body an id, which is the size of bodyContainer. Remove lowestFree. Nicer fix for LP:1001194
+      Add scene->doSort variable. One more fix for LP:1001194. Thanks to Bruno.
+      Fix linking of opengl in cmake-build
+      Fix vtk-linking in cmake-build
+      Install pack.py for cmake-build
+      Add notice about python-demgengeo
+      Add URLs on python-demgengeo package. Fix links.
+      Fix some more linking problems in cmake-build
+      Fix plugin search path in cmake-build
+      Cosmetic changes in cmake-build
+      Fix performance tests.
+      Fix overlinking in cmale-build
+      Make vtk mandatory.
+      Fix -batch binary in cmake-build
+      Partly fix QT in cmake-build. Still not functional yet.
+      Return vtk-feature, but not use it
+      Fix gui in cmake-build.
+      Minor fix in cmake-build
+      Add 2 dependencies to install-section for cmake-build.
+      Enable "options" for cmake-build.
+      Remove technical output during cmake-build.
+      Fix compilation error during non-gui cmake-build
+      Revert vtk-feature. Not mandatory again.
+      Add debug-build to cmake.
+      Use Predicate functions, only when gts is enabled.
+      Place -lrt flag into the right place.
+      Fix rpath issue
+      Remove combine_sources function.
+      Fix header definitions in openmp-accu
+      Fix check-test during no_gts build
+      Fix import libstdcxx on old systems
+      Display information about disabled features
+      Add NOSUFFIX option for packaging.
+      Add lrt to linking on cmake-build
+      Fix linking problem of cgal libraries in cmake-build
+      Fix "typo" in VTKRecorder. Thanks to Vaclav.
+      Remove path to python in some scripts.
+      Move all main libs to usr/lib/yade folder
+      Move minieigen to py-folder
+      Add doSort-option to InsertionSortCollider for forced resorting of interactions.
+      Minor fix in cmake-build
+      Link miniEigen with boost-python libs. Thanks to Klaus Thoeni.
+      Fix version definition for git and bzr.
+      Enable use of custom Boost-libraries. Thanks to Klaus Thoeni.
+      Try to fix cgal compilation.
+      Add possibility to set the lib-path.
+      Fix libpath, if it is non-standard.
+      Fix CGAL-feature for cmake-build.
+      Fix libpath with scons.
+      Replace LIBPATHINST by LIBRARY_OUTPUT_PATH.
+      Fix version definition and generation of pdf.
+      Change Version option to YADE_VERSION.
+      Add option description into CMakeList file.
+      Start to update installation documentation.
+      Start to update documentation on installation.
+      Describe compilation and installation processes with cmake.
+      Minor fix in instalaltion section.
+      Remove scons from documentation.
+      Remove compilation instruction for Gentoo.
+      Check, whether newly added bodies to a clump are already members of the existing clump. Closes LP:1017367
+      Fix handling ipython 0.13 version.
+      Return CHUNKSIZE option.
+      Update documentation on installation.
+      Better fix for ipython-versions. Hopefully the ipython-interface will not be broken in a future.
+      Remove some bzr-notes from documentation.
+      Remove scons.
+      Minor fix in documentation.
+      Add chainId parameter to body.
+      Implement stopAtTime parameter.
+      Add iterBorn and timeBorn parameters to interactions.
+      Rename chainId to chain. Add python-wrapper to utils.facet
+      Remove timeBorn option in interactions.
+      Remove debug and rebuild options from docs and starting scripts (not functional with cmake)
+      Fix execution error.
+      Use vtkQuad for exporting boxes in vtk-format. (Closes: LP:1026474)
+      Let to use relative paths in INSTALL_PREFIX variable.
+      Remove clumps, if no bodies are present there. Fixes LP:1031644. Remove clump members from clumps during body erase. Move Clump.* files to core/
+      Add "make doc" command for easier documentation build.
+      Fix some warnings.
+      Add bodiesHandling.facetsDimensions function to get parameters of group of facets.
+      Replace the variables "max" and "min" on "minVal" and "maxVal" in spheresPackDimensions to escape coincidence withi function names
+      Add README.rst file for github
+      Add getBodyIdsContacts to get the list of bodies, contacting with the checked one.
+      Keep pointers of interactions for all bodies, not only where otherId>Id. Add ENABLE_FIXBUGINTRS option.
+      Fix an error in interaction container.
+      Add checkIntrs flag into body to escape useless checks of interaction.
+      Fix segfault with FIXBUGINTRS enbled.
+      Add regression test to check the erasing of bodies, which are in contact.
+      One more step to fix bug of facet-sphere mass interaction.
+      Add function to disable some interactions, if the sphere contacts with several facaets of the same chain.
+      Prevent errors in facetCylinder, if height=0.0
+      Move fixbugintrs stuff from Newtonintegrator to shop.cpp and constitutive law.
+      Move fixbugintrs stuff into viscoelasticpm, for a quicker compilation.
+      Integrate some ideas into RockPM
+      Some minor fixes in eigen-macroses.
+      Remove testcode for fixing LP:850864
+      Fix serialize-template for matrix6r.
+      Fix version read from RELEASE file.
+      Fix version number output at Yade start.
+      Fix some compilation warnings.
+      Fix warning due to mix class/struct definition.
+      Honor the flags, which are set in environment.
+      Fix compilation warning »_POSIX_C_SOURCE« redefiniert."
+      Disable CGAL, if compilator is clang.
+      Add information, how to compile Yade with Clang-compiler.
+      Fix batch-mode on platforms, where cpuinfo is not available.
+      Remove rebuild-option from batch-mode.
+      Remove old testing macros in VTKRecorder.
+      Remove accidentally added file in examples.
+      Add normalVel parameter for SpheresFactory to set explicitely direction of velocity for newly generated particles. Backward compatibility is saved.
+      Add RELEASE file for 0.90.0 version.
+
+Bruno Chareyre (61):
+      - Direct solver used for periodic BCs and/or compressible fluid     - saveVTK for periodic BCs     - fix rare but possible junk permeability values (define max/min)
+      -FlowEngine uses boost::thread to precompute triangulation and Cholesky factor while yade is running
+      - interplate using barycenters of old trangulation, instead of voro-center of new triangulation, avoids inconsistencies     - make sure voidVolume is positive (FIXME: hardcoded number a.t.m.)
+      - normalize the definition of minimum void volume
+      -add a simple getStress function (periodic or not)
+      move an insert in a more logical place
+      A new contact law adding creep (Standard Material Model) to CundallStrack
+      -missing in previous commit
+      restore the option to NOT homomDeform in periodic BCs (may be rarely used, e.g. when veru big bodies are part of the simulation)
+      restore the option to NOT homoDeform (see previous commit too)
+      - let PeriTriaxController accept very large bodies in the simulation. This change makes it possible to simulate bi-periodic BCs with 2 large planes bounding one coordinate. Example script comming soon.
+      - remove junk output left after debugging work
+      - compatibility of the 6D cohesive-moment law with periodic BCs.     - add a simpler way to turn contacts cohesive one by one via an Ip::flag
+      -fix force application in cohesive law (was breaking chained cylinder and sent buildbot error)
+      replace Dem3Dof by ScGeom where CundallStrack is used
+      -remove a series of contact laws as discussed in https://blueprints.launchpad.net/yade/+spec/cleancontactlaws
+      remove contact laws (again), as discussed in https://blueprints.launchpad.net/yade/+spec/cleancontactlaws
+      - Implement multithread solving for the periodic flow     - Start implementing CHOLMOD solver using Eigen3 support     - Fix flow engine compilation with cmake (some variable with multiple definitions breaking per-file compilation)
+      - CHOLMOD handling in cmake
+      - be quiet when cholmod is disabled
+      remove some "cerr"
+      -reset initCohesion flag for each contact after initializing (else it's rested at each step...)
+      -add functions to export network constrictions and normal and track a point in the triangulation using secondary flow engine (Bruno+Wenrui)
+      - better parameter (vector > 3 doubles)
+      - use cell handles vector instead of CGAL's cell iterators for faster loops     - make mirror permeabilities i->j vs. j->i exactly equal in the periodic cases to avoid non-positive definite matrices     - fix a few mistakes in permeabillity min/max bounding (permeabilityFactor was not included, and the min was way too high, changing 50% of the values)     - make multithread run possible also in the periodic case
+      smallfix in documentation
+      Fix compile warnings.
+      - add export functions for writing system matrix to files
+      reverts commit afa59f17d59a90d3049b9c51c41d28e29fc9081e, which messed up flow code.
+      -fix conflict
+      Document Tesselation wrapper a bit more.     Add a complete example script.
+      small optimizations in PeriodicFlow, start implementing matrix-based froce computation (commented blocks)
+      documentation here and there
+      Documentation
+      documentaion fix
+      - a unique function for fluid velocity in cells for both periodic and non-periodic     - make fluid velocity computed correctly even on boundary cells with imposed pressure     - the boundary are now included in computation average velocity in the simulation     - A new function to get total flux through a boundary
+      - Simplify the usage of GSTiemeStepper: no need to set dt at all as soon as GST is present, and setting dt manualy will not disable the timestepper.     - Introduce density scaling
+      example script for timestepper and density scaling
+      Small change in the logic of cylinder-cylinder interactions
+      sort exemple scripts
+      documentation fix
+      adapt the interface to the new timestepper logic
+      doc hyperlink for density scaling
+      fix compile error (sorry, it was working with chunksize>1)
+      - remove a loop in Newton as suggested by Anton (Thanks)     - update example script
+      - adjustents of strain rate in ex. script
+      Still smallfixes in density scaling
+      Revert "Fix the computation of the shear lubrication force and add the torque of the viscous shear force applied on particles."     This commit erased some of the previous changes. Please Donia double-check what you commit everytime.
+      fix two compile warnings
+      The \` are displayed correctly by sphinx. Get them back (at the price of many warnings?...)
+      - remove some "invertSign" in stress functions     - add a utils::function to change friction without the need to instantiate a TTCompression engine
+      - make use of Shop::setContactFriction()
+      make warning conditional or it will flood my terminal...
+      example script for cohesive and/or rotational law
+      some updates in this example script
+      make autostop possible again (but still disabled by default)
+      -enable 0-thickness bounding boxes
+      example script for triax+clumps
+      -A new function to grow particles and clumps
+      cleaning script
+      clean sources
+
+Chiara Modenese (3):
+      Check the body existence before creating an interaction. (Closes: LP:803774)
+      Add a new entry to yade-conference.bib.
+      Add some entries into yade-conferences.bib
+
+Christian Jakob (9):
+      improvements in Law2_ScGeom_CapillaryPhys_Capillarity
+      Fix memory leak in capillary law and make isBroken flag compatible with fusionDetection
+      include calm function
+      fix mask bug in calm function
+      export boxes with vtkrecorder (not tested, boxesCells missing)
+      export boxes with vtkrecorder (visualization works, but is not ok)
+      fix uniax.py and periodic.py example scripts
+      fix and improvements of some example scripts
+      delete unneeded file
+
+Donia (2):
+      Fix the computation of the shear torque.
+      Fix the computation of the torque and rename some variables.
+
+Donia Marzougui (12):
+      Add spheres' rotation to the computation of the viscous shear force.     Compute the viscous shear bulk stress.
+      small fix in min Y
+      Merge branch 'master' of github.com:yade/trunk
+      Add the normal and tangential lubrication force     Compute the viscous shear stress for each body
+      Add  rotation of spheres in the computation of velocity, Compute the viscous and normal stresses applied on each body, add the normal and shear lubrication forces
+      Fix the names and tests of forces and stresses applied on particles
+      Merge branch 'master' of github.com:yade/trunk
+      Fix the computation of the shear lubrication force and add the torque of the viscous shear force applied on particles.
+      Fix the computation of the shear lubrication force and add the torque of the shear viscous force applied on particles.
+      Fix the computation of the shear lubrication force.
+      Fix the computation of the normal lubrication force
+      remove the computation of some characteristics lengths for two fictious spheres.
+
+Francois Kneib (5):
+      Add the contact between two different ChainedCylinders.          -> add new contact geometry : "ChCylGeom6D"          -> modified "Ig2_ChainedCylinder_ChainedCylinder_ScGeom6D()" to instantiate the new contact geometry when it is necessary          -> add new law : "Law2_ChCylGeom6D_CohFrictPhys_CohesionMoment()"          -> add new CohFrictMat parameters : "CohFrictMat.cylCylNormalCoh" and "CohFrictMat.cylCylShearCoh". They are used to set the cohesion between two different ChainedCylinders ("CohFrictMat.normalCohesion" and "CohFrictMat.shearCohesion" was already used inside a ChainedCylinder).     Fix bugs into "Ig2_Sphere_ChainedCylinder_CylScGeom6D" and "Ig2_Sphere_ChainedCylinder_CylScGeom"
+      Fix an ScGeom6D bug : declare the cylCyl boolean variable as hidden in the YADE_CLASS_BASE_DOC_ATTRS_INIT_CTOR_PY instead of in the ScGeom6D class core.
+      Merge branch 'master' of github.com:yade/trunk
+      -python function for handling grid objetcs
+      Create new classes to add grid simulations. Grid are made of GridNodes and GridConnection (two new shapes inheriting from Sphere)
+
+Jan Stránský (15):
+      added periodic cell's deformation and strain measures
+      improvement of Cell documentation
+      Cell class improvement
+      made stressTensorOfPeriodicCell deprecated
+      Fixed bug in export.VTKExporter, corrected some docstrings
+      little more fixes in export module docstrings
+      Added Law2_ScGeom_CpmPhys_Cpm class     other modifications of CpmMat related classes
+      Added Ip2_FrictMat_CpmMat_FrictPhys functor
+      corrected mistake from previous commit
+      Fixed compilation issues in ConcretePM.cpp reported by Anton     Added utils.setNewVerticesOfFacet function
+      improved documentation (corrected some warnings and errors during building docs, added inherited-members directive)
+      improvement of ymport.unv and export.VTKExporter
+      add example file for previous commit
+      fixed small bug in export.VTKExporter.exportFacetsAsMesh     add geom.facetSphere
+      another bug fix of export.VTKExporter.exportFacetsAsMesh
+
+Klaus Thoeni (1):
+      - add possibility to use local boost installation (e.g. -DLocalBoost=1.46.1)
+
+==================================================
+yade-0.80.0
+Wed May 2 21:05:12 2012 +0200
+
+Anton Gladky (81):
+      Add forgotten format to ymport.textExt
+      Replace python-numeric on python-numpy in installation section of documentation
+      Fix --test
+      Add check on body existance in GlobalStiffnessTimeStepper. Fixes LP:891540
+      Fix closeGap for side walls of cylinders and cones
+      Return back fix from r2961. Bruno, please, make a check before commit.
+      Add VTK-5.8 to header search path
+      Fix compilation with VTK-5.8. Remove vtksqlite.
+      Make the code workable with ipython 0.11
+      Hopefully fix compilation error on clean environment.
+      Do not let PWaveTimeStep return "infinity"
+      Add maxMass parameter to Spheresfactory
+      Update description of maxMass
+      Fix compilation with boost >=1.47
+      DomainLimiter:     * Delete spheres only     * Add mass calculation     * Add volume calculation     * Add mask-parameter
+      Add mass-parameter to VTKRecorder.
+      Add eigen2-option into scons to force compiling with eigen2.
+      Fix eigen2 compiling, when "eigen2=False" by default.
+      Check newly created spheres on intersection with spheres, which were created in one iteration in SpheresFactory. Hopefully fixes "jumping sphere" problem, discussed here [1]
+      Minor changes for ipython 0.11 and 0.12
+      Add speed-parameter to Scene and Omega
+      Fix calculation speed show in batch-system
+      Fix prediction of finish time in batch-mode.
+      Fix compilation warnings on Ubuntu Precise.
+      Use gravity inside of NewtonIntegrator in examples and in tests.
+      Return the average speed of calculation from the last 10 iterations instead of current speed for the last step. Hopefully makes prediction of finish-time in batch-mode more accurate.
+      1. Fix a compilation error with eigen2     2. Add a variable to define number of steps, which are taken into account by speed calculation.
+      Rename .bzrignore to .gitignore.
+      Merge pull request #1 from gladk/master
+      Start to update main sphinx page.
+      Merge pull request #2 from gladk/master
+      Fix --check and --performance tests after moving testing scripts.
+      Add deleted by mistake update of main sphinx page.
+      Update of the main sphinx page.
+      Fix version defininition with git.
+      Ignore *.pyc files.
+      Merge pull request #4 from jakob-ifgt/master
+      Fix version number for gits. Caused error during doc-build.
+      ResetRandomPosition should be a child of PeriodicEngine, not GlobalEngine.
+      Fix some examples.
+      Reenable gts-scripts.
+      Let facetBunker.hBunker be zero.
+      Add parameters body::iterBorn and body::timeBorn to track the moment, when the particle was added to simulation.
+      Fix link to a wiki-page.
+      Add libboost-program-options-dev to installation section.
+      Add gtk2-engines-pixbuf to installation section. Escapes "Gtk-WARNING **: Im Modulpfad »pixmap« konnte keine Themen-Engine gefunden werden".
+      Escape warning due to ipython 0.12.
+      Do not output a false backtrace with ipython >= 0.10 due to log4cxx crash.
+      Add python-bibtex to installation section of documentation.
+      Remove useless check of ipython version. Now all systems must have >=10.
+      Do not redeclare cundallInteractionPhysics and mindlinInteractionPhysics in local scopes, as they should be global. Fixes crash LP:966186.
+      Add gmp for linking, when cgal-feature is activated. Fixes LP:968188
+      Fix unicode characters.
+      Parse Yade.tex and remove empty verbatim-blocks. Happens on Precise.
+      Add ipython_directive for ipython 0.12.
+      Some adjustments to build docs on Precise-systems.
+      Prevent cross-importing of yade modules. Closes LP:980000
+      Make nice output in ipython 0.12 like it was in 0.11.
+      Make main.py.in more readable.
+      Remove accidentally added ipython_directive012 extensions for all ipython versions.
+      Remove log4cxx support and yade.log module.
+      Fix compilation error on Debian Sid due to changed API of python-git module.
+      Minor update of examples.
+      Add isActive parameter to Interactions.
+      Merge branch 'master' of github.com:yade/trunk
+      Let isActive flag be changeble.
+      Remove "never_use_this_one" option from scons.
+      Remove "sphere-padder" option from scons.
+      Fix autotest "rotation matrix from quaternion".
+      Remove subdomains feature.
+      Fix compilation warnings.
+      Initialize angle* variables.
+      Add geom.facetParallelepiped function.
+      Remove executable-flag from scripts.
+      Remove executable line in some examples (it cannot be in /usr/local folder on all machines).
+      Fix some typos.
+      Change default value in Real-variables from NULL to -1.0.
+      Fox compilation warnings.
+      Fix compilation warnings.
+      Fix some typos.
+      Add RELEASE file for 0.80.0 version.
+
+Bruno Chareyre (72):
+      - (failed) attempt to fix the documentation of export.py
+      - fix doc generation for the export module. Still some fixes needed concerning doc convention (wrong parameter declaration for some functions)
+      - makeCloud can now generate spheres on a plane (see https://answers.launchpad.net/yade/+question/175606)
+      remove unused bool "is2D".
+      - makeCloud handles periodic 2D clouds with uniform distribution and psd
+      - yet more fixes. The auto-setting of cell.size was not correct (typo in components)
+      - code cleaning
+      - Documentation of the capillary law (warn users on distanceFactor and neverErase flags, as in http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg07391.html.
+      - 2 additional references
+      - make body iterators jump empty slots, as suggested and discussed here: http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg07406.html     - revert the (now useless) fix of r2961, similar tests can be removed in many places after the change in pointer logic is well tested.     - remove a script, as agreed by Christian (https://answers.launchpad.net/yade/+question/178830)
+      - add/use the "neverErase" flag in Hertz laws.
+      - back to ordinary vector<>:iterator for bodyContainer
+      - smart body pointers again, also fixing the erase(0) case inside begin().
+      - remove the if(body) test in GSTS loop.
+      - attempt to fix https://bugs.launchpad.net/yade/+bug/897237     - small fix in the theoretical background
+      Should finally fix https://bugs.launchpad.net/yade/+bug/897237
+      - capillary model: nullify Fcap and volume when P changes from something to zero     - remove the if(!b) test in a few important places (proof of concept + don't waste time doing the same test twice)
+      - fix wrong shape type testing that was giving wronf solid volume.
+      - update publications
+      - fix one bug mentionned in https://bugs.launchpad.net/yade/+bug/901146 (makeCloud with undefined num and psd)     - more articles
+      - normalize psdCumm2 after the scaling, not before (since the scaling is determined from absolute psdCumm2).
+      - make it possible to include bodies larger than period conditionally, using allowLargerThanPeriod flag (as discussed in https://answers.launchpad.net/yade/+question/181411, thanks Giulia for the scipt)     - document undocumented parameters of bodies creation (in utils.sphere)
+      - enable interaction of two larger-than period bodies (e.g. cylinder vs. box) in addition to previous commit.
+      - point to the "allowBiggerThanPeriod" flag in the LOG_FATAL message.
+      - improvements in TW interface so that one can save and load "state" files to be used for defining deformations (this will actually be used by E. Ando for analyzing experimental data!)     - code cleaning
+      - make deformation analysis possible for arbitrary simulations (no longer depends on TriaxialEngine for defining the bounds)
+      - fixed undefined variable when Triaxial engine is not present
+      - erase bodies before adding spheres from file
+      - Fix typo (thanks for pointing out Klaus, actually the "i" was correct: elastic-plastic means that the law is incrementaly elastic OR plastic, while elasto-plastic laws can be both at the same time)
+      - big reorganization of the triangulation lib, which becomes a template library. Usage of different "info" classes for different engines is now possible, so that TWrapper doesn't have to instantiate useless variables inherited from the flow problem, and vice-versa. Will also worj for periodic flow model coming soon.     - general code cleaning and removal of old files     - a few hyperlinks fixed in *.bib's
+      - remove custom dependencies breaking compilation
+      Merge the "collide" branch to trunk (branch history at https://code.launchpad.net/~bruno-chareyre/yade/collide2)
+      - missing reference update     - remove the velocityBins lines in tests since velocityBins are removed from trunk
+      - Draft version of the periodic fluid model from Donia Marzougui
+      smallfix in flow model
+      - fix a bracket mistake triggering ghosts definition after each insertion in periodic::triangulate()     - add tests on boundary ids (<0?) before doing anything on them.
+      - account for sweepLength in bounds comparisons of Collider::probeVolume()     - removed unused file
+      - Collider: fix the probe function (account for current body's position +  typo in one comparison)     - Newton: remove the useless "force" from damping2nd parameters, don't apply meanfield vel when not periodic (only diff is it avoids a multiplication of null matrix and vector), make gravity attribute work correctly     - GravityEngine: add LOG_ERROR on deprecation (LOG_WARNING are not displayed in prebuilt package right?), better use Newton::gravity to save cpu time.     - Clump.hpp: fix the template function that was using the old saveMaximaVelocity, use the new saveMaximaDisplacement instead     - PeriIsoCompressor: never pause() in some c++ code, since it resuults in stuck GUI without a chance to run more timesteps
+      - dispatching: don't make bboxes larger for static bodies     - gravity : deprec. warning     - collider: try and fix Anton's crash (https://lists.launchpad.net/yade-dev/msg08256.html and next in the thread)     - Newton: workaround the resetForce bug in OMP build (https://bugs.launchpad.net/yade/+bug/923929)
+      - small changes left behind in a previous commit (fix the "undefined IPCells") problem
+      - include periodic PeriodicFlow in the triangulation lib
+      - Compute the critical timestep correctly when clumps are present.
+      - make the "smoothing" of strain rate evolution configurable via a registered attribute (default=unchanged behavior)
+      - tell more explicitely that Young/Poisson is interpreted differently in different functors in their respective doc     - make the LWStress function return pyList instead of tuple     - documentation in makeCloud     - default stiffness are zero, not NaN
+      - TWrapper: python binding for local deformations     - Flow: fixes in the periodic BCs     - Flow: improvements in BCs handling and imposed fluxes, toward per-step update of the RHS + code cleaning     - Periodic flow: support for optimized solvers (not in trunk) by introducing cells indexes     - Periodic flow: optimization of periodicity by precomputed Hsize[k]*gradP products     - SpherePack: more code documentation in makeCloud
+      - missing in previous commit (sorry)
+      - fix periodicity of interactions when large bodies are present. Demo script comming soon.
+      - implement the compatibility between periodic fluid model and large bodies in PBCs using the "boundary" objects
+      - Make unbalancedForce() account for Newton::gravity (and my first git commit!)
+      - mirroring bzr3038 + bzr3039
+      - example script for large bodies in periodic BCs
+      compile error; remove warnings; add last diffs from Donia
+      Smallfix in index.html
+      - fix doc string in the SpherePack.toSimulation function (crashing my terminal...)     - update one reference
+      Merge branch 'master' of github.com:yade/trunk
+      - fix bug https://answers.launchpad.net/yade/+question/192152 in SpherePack.toSimulation()
+      - fix a documentation bug (https://bugs.launchpad.net/yade/+bug/978234)
+      fix a warning in DomainLimiter
+      make periodic triax engine ScGeom friendly (a few scripts to be fixed in next commits)
+      - remove reversedForces flag and/or use ScGeom in the example scripts for periodicity
+      Merge branch 'master' of github.com:yade/trunk
+      - add the possibility of updating only the RHS in the fluid problem, without rebuilding the triangulation+matrix
+      Fix bugs introduced by incomplete addition of Real dt in some functions signature (messing virtual inheritance)
+      Merge branch 'master' of github.com:yade/trunk
+      Fix the problem of null pressure measured after retriangulation.
+      Bind a measurePressure() method for the periodic flow engine
+      allow BCs update without retriangulation via Flow::updateBCs()
+      Fix a bug in PeriodicVertexInfo::ghostShift
+      Merge branch 'master' of github.com:yade/trunk
+      Fix a few bugs discovered with Luc: Fluid forces splitted between particles and their images in PBC, and others.     Implement the updateBCs feature for PBCs.
+      Enable pressure interpolation in periodic coupling
+      The documentation now reflects the recent changes in collider's logic.
+
+Christian Jakob (11):
+      Law2_ScGeom_CapillaryPhys_Capillarity can now be used with Ip2_FrictMat_FrictMat_MindlinCapillaryPhys for hertz model
+      Add forgotten files
+      Added new example script (examples/generate-psd-with-poro-example.py)
+      Fixed examples in example folder, new folder called not-working
+      move all model examples to example folder, fixed all examples, that are not in test folder
+      moving checks and tests to scripts/checks-and-tests and fixing some examples in examples/test
+      moving checks and tests to scripts/checks-and-tests and fixing some examples in examples/test
+      moving checks and tests to scripts/checks-and-tests and fixing some examples in examples/test
+      fixed all examples
+      Improvements in Law2_ScGeom_CapillaryPhys_Capillarity.cpp (included isBroken flag and updated checkFusion)
+      make fusionDetection and isBroken flag compatible
+
+Francois Kneib (4):
+      Added the interaction between cohesive sphere and cohesive chained cylinder. Created Ig2_Sphere_ChainedCylinder_CylScGeom6D and Law2_CylScGeom6D_CohFrictPhys_CohesionMoment in Cylinder.cpp. Created CylScGeom6D in CylScGeom6D.cpp. Moved CylScGeom from Cylinder.cpp to CylScGeom6D.cpp
+      Interaction test between a cohesive sphere and a cylinder.
+      Fixed some bugs in Ig2_Sphere_ChainedCylinder_CylScGeom6D() and Ig2_Sphere_ChainedCylinder_CylScGeom(). Now the contact is rightly followed when a sphere move along a chained cylinder. It works with frictional cohesive or frictional contacts.
+      Fixed some bugs in Ig2_Sphere_ChainedCylinder_CylScGeom6D() and Ig2_Sphere_ChainedCylinder_CylScGeom(). Now the contact is rightly followed when a sphere move along a chained cylinder. It works with frictional cohesive and frictional contacts.
+
+Jan Stránský (6):
+      1) modification of CpmState class     2) some changes in py/pack/pack.py
+      Added Matrix6     Added damageTensor to CpmState     Fixed bug 922744 (export module)
+      Fixed SpherePack and _getMemoizeDb incompatibility with periodic boundary conditions     Corrected assert(Matrix3) in Math.hpp
+      O and wrapper.Omega made part of __builtin__ (equivalent to global variables). Should solve problem of question 182459
+      Omaga can contain more Scene instances
+      Fix of previous commit
+
+Klaus Thoeni (3):
+      1. delete line which was commented out by Anton     2. derive WirePhys from NormShearPhys in order to use implemented functions which just support NormShearPhys (NormPhys is not supported, however, in the future if more contact laws with normal force only are implemented it might be better to introduce a boolean or so)
+      1. fix some typos     2. derive WirePhys from FrictPhys     3. compute limitFactor for WirePM     4. add limitFactor and normal force of wires to wpm in VTKRecorder
+      - add capability to deactivate the damping in NewtonIntegrator for individual particle via O.bodies[id].state.isDamped=False     - use this new property in examples/WireMatPM/wirecontacttest.py
+
+Luc Scholtes (7):
+      add compressibility to fluid flow scheme
+      delete obsolete line in flowEngine.hpp
+      resolve bug 983888
+      add compressibility to periodic flow engine
+      cleaning pack.py
+      clean FlowBoundingSphere.ipp file
+      Apply changes from Luc Sholtes.
+
+Luc Sibille (1):
+      Update some publication references
+
+Rémi Cailletaud (4):
+      Added google analytics script to sphinx doc
+      Build infrastructure - removed r0calcul8 from builbot nodes (hardware issues)
+      buildbot now builds two times, with eigen2 and eigen3
+      now uses xvfb for doc generation (for qt part)     buildbot home on slaves changed     reenabling r0calcul8
+
+==================================================
+yade-0.70.0
+Sun Oct 23 16:49:34 2011 +0200
+
+Anton Gladky (129):
+      1. Prediction of simulation finish time is added to HTTP-batch server.
+      1. Fix of a previous commmit. Wrong prediction time.
+      1. HarmonicMotionEngine is added with example.
+      1. HarmonicMotionEngine update.
+      1. HarmonicRotationEngine is added including example in regular-sphere-pack.py     2. TranslationEngine is parallelized with OpenMP.     3. Translation and Rotation engines are working with Dynamic-bodies properly (temporal solution).
+      1. Regression tests for translation and rotation engines are added (not fully tested yet, but "all tests passed")
+      1. Changes from 0.60 (debian packaging).
+      1. scripts/debian-prep creates orig.tar.gz and removes .bzr directory
+      1. debian-prep creates version number with "1" at the end
+      1. Backporting changed from 0.60 branch
+      1. qt4 is "on" by default     2. Syntax fix in documentation.     3. export.text is disabled in regular-sphere-pack example
+      1. Initial yade.spec is added for RPM packaging
+      1. Fix bug in VTKRecorder (Thanks, Vaclav)     2. Cohesive-chain test disabled (please, fix it, who can...), https://yade-dem.org/buildbot/builders/yade-full/builds/127
+      1. Changes in .spec file
+      1. Some preparation to dpkg ver3.
+      1. Deleted isDynamic from Translation Engine
+      1. Commented SubdomainBalancer packs.py to make it workable with default compilation.
+      1. Partly fixes 692759
+      1. debian/copyright is changed according to debian requirements.     2. control-template is changed to make the package "lintian clean"
+      1. Fixed warnings in packs.py->utils.py     2. Created geom.py module for generating geometrical forms from facets.     3. utils.facetBox and utils.facetCylinder have been moved to geom.facetBox and geom.facetCylinder respectively. Backward compatibility is saved. Examples are fixed.     4. closeGap in utils.facetCylinder and utils.facetCone works now only when |anglRange|>math.pi     5. geom.facetBunker is added with corresponding example in pack.py
+      1. python-imaging is added to installation section of sphinx-docs as well as to debian-dependency     2. geom.facetHelix and facetPolygon are added with examples
+      1. Closes #702296, if somebody uses rotationengines, please, update!
+      1. regression tests of kinematic engines are updated and activated.
+      1. Updated regression tests. Rotation engines.
+      1. HelixEngine updated, dublicated code deleted.     2. HelixEngine is added to regression tests.
+      1. Extra Quaternionr q() definition is deleted from RotationEngine (thanks, Bruno)
+      1. Shop::getStressForEachBody() is now returning stresses for FrictPhys+ScGeom combination; not only NormShearPhys+Dem3DofGeom
+      1. Added debian/watch to track new yade versions.     2. Some small modifications in debian/control-template to escape lintian warnings.
+      1. vtk-5.6 path is added to SConstruct to make it compilable with Debain experimental     2. Fixing spelling mistakes in documentation.     3. debian/ -directory changes.
+      1. Fix lintian warnings in manpages.
+      1. jquery.js in documentation is now symlink to a packaged jquery, if it is available.
+      1. Debian-directory cleaning and modifying (checked with lintian -IE --pedantic, no warnings at all).
+      1. openmp-feature is added into the debian-build options.
+      1. Hopefully fixes previous error on building PDF (not checked yet).
+      1. One more try to fix tex-failure.
+      1. Missing files and licenses are added to debian/copyright
+      1. yade-support plugin is added to lib/SConscript as described here https://bugs.launchpad.net/yade/+bug/707966/comments/2
+      1. Hopefully fixes bug 707966, additional libraries are added for linking in shared libraries (vtk*)
+      1. Small fixes in debian/copyright to escape lintian-warnings.
+      1. debian/ is moved to scripts directory     2. scripts/debian-prep scripts copies ./scripts/debian/ to ./debian/
+      1. Regression test of yade.plot.addAutoData() is partly disabled is due to https://bugs.launchpad.net/yade/+bug/715739
+      1. Build-script and buildbot-config are moved to scripts/build-infrastructure
+      1. Updated installation instructions     2. Updated spec-file for RPM-packaging
+      1. Added a patch to escape -rpath (an ugly and "very" experimental)
+      1. Fixed Tutorial link in documentation (taken from https://www.yade-dem.org/sphinx/tutorial.html)     2. Some small fixes in documentation     3. Changes in spec-file for RPM-packaging
+      1. LOG_INFO and LOG_WARN are disabled when log4cxx feature is disabled.
+      1. Added shop.py. Like shop.cpp but in python not to make yade.utils too crowd     2. Added yade.geom and yade.shop to sphinx     3. Some fixes in docs     4. yade.shop.spheresPackDimensions is added with corresponding example in packs.py
+      1. scripts/debian-prep does not insert now distribution name into the version number.
+      Update of spec-file for RPM packaging
+      1. vtkNetCDF was deleted from vtk-libs due to absence in libvtk5.6-dev. Seems functionality is not corrupted.
+      1. python-sphinx dependency for Debian is changed to >=1.069
+      1. Added python-imaging to Debian packaging rules.     2. Fix spelling in documentation.     3. Debian-Template yade-doc file is fixed (0.60 version was hard-coded)
+      1. Update installation information in documentation.
+      Fix in installation documentation
+      1. RPM-spec file update     2. Old yade.spec was moved from the root directory to scripts/RPM_packaging
+      1. Fixed some docs     2. shop.spheresPackDimensions can accept now a list of bodies, not only the list of their id's
+      1. yade.shop module is renamed to yade.bodiesHandling to get more adequate name     2. added bodiesHandling.spheresModify to modify a pack of spheres. Corresponding example is in examples/packs/packs.py     3. added bodiesHandling.sphereDuplicate to make a copy of sphere
+      1. Renaming shop.py to bodiesHandling.py
+      1. ForceRecorder renamed to ForceTorqueRecorder     2. TorqueRecorder is added
+      1. Changed yade.spec file. Seems, working now.
+      INSTALL_PREFIX option is added to CMakeLists.txt
+      CHUNKSIZE option is added to CMakeLists
+      LIB_EIGEN_PATH is added to CMakeLists.txt
+      Typo fix in previous commit
+      Fix formula displaying in utils.getViscoelasticFromSpheresInteraction
+      "mask" parameter is added to GravitiEngines to make it more flexible.
+      1. ForceRecorder.totalForce and TorqueRecorder.totalTorque are now accessible from python interface     2. Fix in TorqueRecorder: getTorque is added
+      1. Fix TorqueRecorder calculation
+      utils.shiftBodies function is added to move bodies without velocity update.
+      1. in utils.sumTorques and utils.sumForces py::tuple has been changed to py::list. I think it is more convinient.     2. added RuntimeError() to checkTestTriax.py. Bruno, are you agree?
+      1. Added new checkWeight test to --check scripts     2. It is not neccessary now to add the script name into the checkList.py, just drop a new script into the scripts/test/checks directory
+      1. Updated build-farm script (building Debian and Ubuntu packages for different distributions).     2. Updated installation section of documentation (Gentoo installation).
+      1. Some changes in installation section (Gentoo)     2. Check tests are now running like --test, returning error code if something went wrong.
+      1. Performance test is added. Initial script.
+      1. Small changes in installation section.     2. voxelPorosityTriaxial doctests are transformed to a simple source code demonstration due to results instability (candidate to --checks section http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg06635.html )     3. Added initial sqlite database of performances on different machines.
+      1. Fixes bug #724396. Thanks Sergei and Vaclav.
+      1. Make trunk compilable with Eigen3 (coming soon). No performance test results yet.
+      1. Color output for --performance tests is added.
+      1. Fix doc generation of the previous commit.     2. Added a link to revision archive on yade-dem.org
+      Color output in --performance tests is deleted.
+      Add Eigen3 transparent support: if eigen3 persists in the system, it will be used by default, otherwise - eigen2
+      Fix Eigen3-Eigen2 detection variables.
+      Fixes 748943. Thanks Bruno for pointing out
+      Add "stop" button at the batch-panel
+      Fix spelling errors: allows to...
+      1. Replace "subscribedBodies" to "ids" almost everywhere in the code.     2. Fix a couple of examples.
+      1. Move Dragengine from SphereFactory to ForceEngine.     2. Fixes in ForceEngine (crashed, when force applied to non existing body)
+      Add LinearDragEngine
+      1. Fix a crash, which appears, when force is read from non-existing body.     2. Fix warning in CohesiveFrictionalContactLaw
+      1. --check tests are now copying into the libDir/py/yade/tests/checks folder to make it available in packaged yade version.     2. Rename "dataTriax" folder to "data" to make this folder and for other tests suitable.
+      Added syncSizesOfContainers to forceContainer::reset() for the case of not using NewtonIntegrator in scripts
+      Remove PressTestEngine, because python-variant works much better
+      Fix an error, when spheresPackDimensions tried to get states of non-existent bodies
+      Skip empty ids in KinematicEngine
+      Fixes nans in ViscoelasticPM, when kn=0 or ks=0. Fixes 804650
+      Fixes crash, causing by saving-loading simulation with erased bodies. Fixes #803774
+      Add one more --check scripts to check GravityEngine and NewtonIntegrator
+      Change the number of steps for checkGravity.py
+      Add O.wait() at the end of checkGravity-test. Hopefully will fix the buildbot-error.
+      Add utils.getSpheresMass
+      Add mask-option to SpheresFactory
+      Add ids-parameter to SphereFactory to get the ids of newly created bodies
+      Add utils.psd(). First try
+      Add mask-parameter to utils.getSpheresVolume and utils.getSpheresMass
+      Fix (hopefully) simulation abort, when an interaction::erase is trying to delete an interaction, where one of bodies is already removed from simulation (id2)
+      1. Add PSD-support to SpheresFactory (not finished, but already working)     2. Add exception in utils.psd(), if all particles have the same diameter
+      Simplify utils.psd()
+      Add forgotten PSDuse-variable initialization in SpheresFactory
+      Add comment on doubtful check of b2 in InteractionContainer::erase
+      Simplify PSD-input data for SpheresFactory
+      Fix file-creation error in yade-batch, when name of log-file is longer, than 255 symbols. The name cuts off now.
+      Add exactDiam flag to SpheresFactory
+      1. Add example of SpheresFactory into packs.py     2. Add stopIfFailed flag to SpheresFactory.
+      -Remove dublicating item in references
+      Fix some errors during doc-generation
+      Fix crash in capillary law (removed bodies were not checked)
+      Add mask-parameter for spheresPackDimensions
+      Fix mask-check in several places
+      Fix in spheresPackDimensions. The bug appeared, when only mask was inputted
+      Add mask-parameter to spheresModify.
+      Fix a default parameter for ids in spheresPackDimensions
+      Add some more parameters to spheresPackDimensions
+      1. Remove "consider" parameter from textExp function     2. Add "mask" parameter into textExp function     3. Add one more format for output.
+      Delete all corresponding iterations explicitely, when the body is erased
+      Fix compilation error during debug-mode
+      Move not-working examples into the corresponding folder.
+      Update news
+      Fix link to installation page
+      0.70.0
+
+Bruno Chareyre (130):
+      - Rename Cohesive law functor with "6D" as in "ScGeom6D"     - Same for chanedCylinder's Ig2 functor.     - update scripts.
+      - Fix compile crashers due to bad include paths.
+      - Keep robust kernel the default.
+      - re-enable cohesive chain test
+      - declare deprecated names (part of r2543)     - revert experimental parameters previously commited by mistake in cylinder script
+      - Make TriaxialTest behave correctly by default - as it used to, i.e. generate the correct number of particles in a cube of size 1.
+      - disable the last comparison on velocities (see https://lists.launchpad.net/yade-dev/msg06178.html)
+      - add the mandatory "bool periodic" parameter for makeCloud.
+      - Prepare linear solver usage in FlowEngine.     - Some cleaning.     - Add inexes to triangulation cells fro vectorization.
+      - remove a warning in Tesselation.cpp     - fix FlowBonding sphere for first iteration and a few other things     - make GaussSeidel virtual in FBS
+      - handle different solvers.     - small optimization on dt divisions.
+      - FlowEngine : rewrite updateVolume so that cell volumes are not computed twice.     - Remove irrelevant remark in SCPE     - Some missing "6D" here and ther in decorations (could affect only devirtualized build)
+      - Implement tensile plasticity and add the corresponding parameters in CohFrictPhys.
+      - recent commits broke or modified something in cohesive law. The reg. test  points it out.
+      - restore default CohFrict behaviour
+      - PeriTriax : remove the constant-distance approximation in stress definition, using wrapped coordinates instead of radii.     - Get back standalone energy tracing in ECL.
+      - Cylinders : handle cylinder-sphere contacts with a fictious state representing interpolated motion between nodes and passed to ScGeom     - Cylinders : implement CundallStrack for interaction between 3 bodies (1 body + 2 nodes)     - Cylinders : a number of fixes - no more bugs it seems     - Cylinders : handle zero-sized element for terminating chains     - Cylinders : update scripts; add example script chained-cylinder-roots.py, with cylinders, spheres, and boxes     - Ig2_Box_Sphere_ScGeom : small class name fixes ("6D")     - utils.py : adapt cylinders linking     - ElasticContactLaw : don't use Body::byId when possible     - ScGeom6D : put quaternion normalization between #ifdef guards (debug only)
+      - clean the script.
+      - recommit 2608 with fixed reg test (making ratcheting correction negligeable with dist=.999999999999999999*size)     - also fix the compile errors
+      - r2608 again, sorry. Local tests are invalidated by last changes in setDynamic, but the commit is correct.
+      - finish implementation of contacts tracking on chained cylinders.     - some cleaning and doc update
+      Fix : mistake in prev. commit while cleaning cylinder code.
+      - recommit 2617 without the autoformating from kbibtex.
+      - Doc : give precise references for triaxial algorithms.
+      - Deeper integration of isDynamic semantic : skip velocity integration, damping, DOFs blocking, and exact spherical rotations, when !isDynamic. 0-density bodies should be safe.     - Partial DOFs blocking is not implemented yet.
+      - ratcheting documentation : improve and unify source and inline versions.
+      - As in r2615 : skip velocity update, damping, DOFs blocking, and exact spherical rotations, when !isDynamic. 0-density bodies should be safe.     This is a merging r2615 with the per-DOF blocking and clump handling from r2621.
+      - updated FIXME, it seems we do the same thing twice
+      -Fix kinetic energy definition.
+      - Fix stripes display     - Add secondary light and register light parameters     - define specular exponent for smoother display     - define and use GL display lists
+      - review and update of documentation in a series of class     - adapt TSC and TCE to new non-dynamic behaviour (more changes and cleaning planned)     - remove prevNormal and frictionAngle from FrictPhys     - Add temporary FrictPhysTransitory for compatibility of old laws     - Rename Ip2_2xCohFrictMat_CohFrictPhys for names consistency, as suggested by Janek
+      -As in r2615 and r2622 (both reverted), and partialy in r2626 : skip acceleration, per-dof blocking, damping, and velocity update for bodies and clumps in case of DOF_ALL blocking (per DOF operations are useless in such case).     Please don't revert unless there is a reason to compute DOF_ALL's acceleration and it is guaranteed bug-free (see list). Discussion more than welcome, of course.
+      - Fix one mistake in previous commit (incrementing angVel even for asphericals), sorry.     - Move clump damping after the foreach(member) loop, so that it will damp the total acceleration at clump's level.
+      - Don't damp clump members. Instead, compute undamped acceleration and damp it at the clump's level.     - Similar mechanism implemented for DOF's blocking : compute unblocked accelerations and block at the end (remember blocking one DOF triggers tests and divisions).     - Still possible optimizations (especially for spherical rotations and translations), see https://blueprints.launchpad.net/yade/+spec/clump-forces.     - One FIXME : aspherical damping is not correct a.t.m. since it uses torque where angAccel should be provided (suggested fix in sources).     - Probably fixes a few inconsistencies in previous commits.
+      - Missing in last commit (fix builbot failure)
+      -Fix sphere rendering for closing/opening qtview (closing was deleting existing display lists, new view was empty)     -Make quality apply for striped spheres as well     -Make it possible to turn duplicated spheres on/off in periodic BC     -Separate GLUT and striped spheres functions for clarity     -Optimize stripes rendering with GL_TRIANGLE_STRIP
+      - A checkTest for triaxial simulations.
+      - Add a function (and python wrapper) computing the exact mean stress in each sphere.
+      -fix compile error in prev commit.
+      - Integrate check tests in yade options (see README).     - Handle PBCs in Shop::getStressLWForEachBody (not tested)
+      - uncouple Hsize and trsf, add setters for attributes Cell::trsf and Cell::refSize, update all scripts. (see http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg06101.html and next in thread).
+      - Fix some temporary stuff left behind (safe but useless) + get back one line of comment removed by mistake.
+      - update periodicity documentation     - rename Hsize->hSize to be consistent with names convention.     - remove a duplicated ref and add a CGAL ref
+      - one file left behind in last commit, sorry.
+      - Add resetTrsf() to set trsf without side effects.     - minor updates of attributes doc to be consistent with recent changes.
+      -Don't maintain refSize in setHsize, in hope that we will not drag it forever, as suggested in https://lists.launchpad.net/yade-dev/msg06836.html.
+      - Fic classname and give working example.
+      - update bodyStressTensor doc.
+      makecloud update (recommit after fix)           - Fix psd transformation from mass distrib to number distrib.           - Make sure the function will always return the number of particles required by the user as soon as it is psecified.           - If num is specified, generate sizes the deterministic way by descending order.           - make porosity parameter optional and give it a default value.           - update doc and script.
+      - make Cell.size read/write for faster hSize setting.     - improve and simplify documentation (the older method is no longer documented)
+      small typo in property name ("sizes" instead of "size")
+      - Move older or redundant interface between #ifdef CELL_BACKW_COMPAT guards.     - Replace refSize by current size in PeriTriax     - forget adding the "s" in "cell.sizes", since existing scripts are already using "cell.size" -> fix sphinx doc about this.
+      - some more Cell doc. After typing the paragraph on display, I realize w'd better not update refHSize when trsf=s-------------- This line and the following will be ignored --------------
+      - some more cell doc.
+      As discussed on the list:     - Don't update refHSize when trsf is defined     - Update it when hSize (like before) or size are assigned     - use current size in PeriEngine     - remove unneccesary cell attributes     - replace setBox by size     - update doc (atributes and header) consistently
+      - Forgot to save Cell.h before committing : updated header doc.
+      Yet more cleaning in cell (sorry).
+      - remove FrictPhysTransitory
+      - A few changes in Cell as discussed in the list.     - Updated doc.
+      - Attempt to fix buildbot output in triaxCheckTest (LOG_INFO are disabled by default on my machine but the buildbot has a different behavior it seems, which gives lots of junk lines) in the log.
+      - Add a script demonstrating use of inclined initial cell and reseting trsf     - Small doc or formatting fixes here and there
+      - add hSize parameter to makeCloud so that it can generate arbitrary parallelepipeds (previously working only by luck on a few special geometries)     - documentation     - usage in script, which uses now more funny shape (try it!)
+      - Preparation for citation (wiki won't accept text file uploads => commiting to trunk)
+      - Include Yade citation page in doc, and add links in different places.     - Add 'InCollection' keyword in bib2rst
+      - One missing file + updated links to individual pdf's in pub.rst.in
+      Missing in previous commits (the most important file...)
+      - Fixing a few links.
+      - more fixes...
+      - A typo left in index.html. Changes in this file are not reflected in documentation built localy, and erasing the _built dir breaks sphinx builds. It makes changes in sphinx main difficult.
+      -link to discussion of citation model
+      - run "xelatex Yade.tex" twice, so that the content table is generated correctly.
+      - Small fix in makeCloud (hSize not passed correctly in recursive calls)
+      Format check tests output better.
+      Small fix in unbalancedForce doc.
+      - per-point imposed pressure mechanism.
+      - per-point imposed pressure mechanism     - one fix in permeabilites along boundaries
+      - remove save_vtk flag and add python wrapping
+      - Add functions for constrictions sizes statistics.     - Remove a few compile warnings.
+      -fix accents and reference name in Catalano's entries
+      -Update clumps forces and torques in Newton, as in https://blueprints.launchpad.net/yade/+spec/clump-forces.     -Update Shop::unbalancedForce accordingly     -Remove the old unbalancedForce code from TSController and make it point to the Shop version.
+      - re-fix fluid area definition     - some cleaning here and there (Donia+Bruno)
+      - fix fluidArea correction (S0)     - Optimal computations by storing fluid/total ratio in cells info
+      - handle changes in cell's volumes sign     - add converters from Eigen vectors to CGAL vectors
+      - small fixes in references
+      - cell volume update was disabled -> enable again
+      - Fix the behavior of bodies moved with the mouse with respect to the new isDynamic behaviour.     - The velocity is now defined correctly so that contacts on the moved object are computed correctly
+      - use same ordering convention for boundaries in triax and in aabbBoxes.     - removed useless variable     - correct initialisation of compression axis
+      - Set default values of walls ids     - Fix cells volume functions     - Add a vertex accessor Tesselation.vertex(body_id)     - Various improvements
+      - fix the action condition (was it never tested?)
+      - invert x and y axis for getting stress (the convention changed in r2830)
+      A section on devpt tools and check tests in programmer manual.
+      - doc smallfix
+      - improved section on regression test
+      - fix (in fact workaround...) bad display of double minus (--) in sphinx.
+      - typos
+      End a sentence... (thanks Jerome)
+      - more explicit notes on citing (I realized it was not clear while reviewing a paper citing yade ;-))     - again small fixes in the "development tools" section
+      - remove many warnings     - handle viscous shear force gracefully
+      - don't exit the checkList when one checkTest fails, we want all of them tested in all cases
+      - move unstable test out of checks
+      - add Ohloh widget to main page
+      - small fixes in the example script (so that it actually works).
+      - add setImposedPressure that let the p value be modified
+      -shift returned p index
+      - import pack and utils at startup
+      Make accents more bibtex-user-friendly in bibtex entries.
+      typos fixing
+      - fix problems again, sorry
+      - standardize the first page of yade doc and add metadata to the pdf, so that online scanners will identify it correctly (not title:"Smilauer", author: "Catalano"...)     - fix a few references
+      - Feng Chen PhD + paper (thanks Feng!)     - some small updates
+      - fix typo (thanks Remi)     - change sections ordering
+      - an attempt to fix builbot-side compile error in the html version of "formulation" chapter (compile ok locally)
+      - A few fixes on deprecated attributes.
+      Small fix in shear stiffness averaging (thanks Emanuele)
+      code cleaning only (including example usage of stringstream for Ema)
+      - One more entry in PhDs (Jerier)
+      - fix documentation (missing factor in an equation)
+      - fix bug 2) found by chiara (https://answers.launchpad.net/yade/+question/169689)
+      - link to libgmpcxx explicitey if cgal in features. Solves runtime undefined symbol on natty.
+      - Include the material from the school in Grenoble in a subfolder of /scripts
+      Remove files added by mistake.
+      - Add material from the "discrete mechanics" school in Grenoble 2011.
+      - fix the "homoDeform" bug https://bugs.launchpad.net/yade/+bug/836867, and adapt regression tests so they don't test homoDeform=1     - add gravity to Newton     - tune front page of the documentation to be more google-scholar-friendly
+      - include gravity a bit differently in Newton, so that it's reflected in scene->forces and accounted in the unbalanced force definition.
+      - one more PhD done with Yade     - remove Ohloh widget since it's never clicked and suggest an underestimated number of users     - small addition in TSC documentation
+      - fix Newton::gravity usage. Weight is g*mass, not just g...
+      master thesis on yade-fluid coupling uploaded on wiki and added to references.
+      - fix typo
+      - remove the bibtex entry "Yade DEM" without authorship. It could only be misleading and make people use inadequate reference.
+      - fix https://bugs.launchpad.net/yade/+bug/693505     - don't crash the TSRecorder when bodies are removed
+
+Chiara Modenese (19):
+      1. Move alphas parameters to FrictMat as discussed with Bruno (harmonic-average of them is introduced in Ip2 functor).      2. Forgot one inequality when plasticity is applied (maybe I do not like tests so much :-) Sorry, anyway).
+      - Adjust definition of maximum strength for rolling resistance (thanks to Bruno for suggestion).
+      - Get rid of prevNormal (MindlinPhys inherits again from FrictPhys)     - Small changes to HM (I added the code for the moment rotation but using quaternions, work in progress to use the incremental formulation instead of that)
+      - Add incremental formulation for the moment rotation (bending only) to HM law (it is very similar to the code for the shear part as written in ScGeom - it has been tested but feedbacks are welcome).     PS Let me know if you are interested to have it also in "Law2_ScGeom6D_CohFrictPhys_CohesionMoment" where actually the total formulation is already present.     @Bruno: maybe in ScGeom we could add this incremental formulation too?
+      - Add relAngVel function to ScGeom (a similar version can be called from python as done for incidentVel)     @Bruno: I would like to add the incremental formulation to CFLaw, how do you suggest to do that? Maybe I can use a bool something like (useIncrementalForm)?
+      - Add the possibility to calculate bending and twisting moments using the incremental formulation in both CFLaw and HMLaw;     - Add maximum elastic torsional moment in CFLaw (it should be computed using normal force, I will see how to compute it somehow);     - Fix mistake in mindlin.py example script.
+      - Add a seed parameter to makeCloud, particleSD and particleSD2 functions. The parameter is used to initialize the random number generator.
+      - Add calculation of fabric tensor for periodic cell as according to Satake (bib is updated too). The tensor can also be spit into two different parts each of them related to strong and weak contact forces respectively.     - Small changes in HM.
+      - Calculation of fabric tensor takes care of the sign of normal force (I think this is the way to do it if we have cohesive forces but I will check again in the existing literature). Also the tensor can be split into two parts according to the mean contact force or a threshold value if this is going to be specified (thanks Vincent for suggestion).
+      - Add a function to HMLaw which computes the ratio of sliding contacts.     - Adjust the sign convention in the computation of the fabric tensor. Now the tensor can also be split into tensile and compressive part (simply setting the threshold value equal to 0 - added documentation about that).     - Rename (for the fabric tensor function only) compressionPositive to revertSign (that is the meaning indeed - work in progress to use the scene flag and make automatic distinction whichever law is used).
+      - Average stress tensor of periodic cell can also be spit into two contributions, given a threshold value (mean force by default).
+      - Forgot the reference (sorry). Fix doc.
+      - Add formulation for determination of time step for elastic spheres according to Rayleigh wave speed.
+      Fix small bug in HM (only in case of viscous damping).
+      - Wrap Eigen function to get eigenvalues and eigenvectors of a Matrix3r in py     - Small fix in HM
+      - For now, add 2d version of particleSD (discrete distribution) - for other type of distributions (like the one generated by makeCloud), something similar can be done.
+      - Fix color map in shop (thanks Vaclav).
+      - Fix bug in Periodic Boundary. scene->cell->prevVelGrad was never updated. It was equivalent to apply homoDeform=2 in place of homoDeform=3. (Thanks, Vaclav)
+      - fix bug 1) as discussed in (https://answers.launchpad.net/yade/+question/169689)
+
+Donia Marzougui (1):
+      - Add viscous shear force definition (disabled by default) (Donia+Bruno)
+
+Emanuele Catalano (19):
+      - Retriangulation controlled by a volumetric deformation threshold     - Substituted pkg-dem in pkg/dem (and similar) to included files     - Removed #define flow_engine line from def_type, definition is moved to the scons profile
+      - Reorganized debuggin'     - Found and corrected a error in boundary creator     - Changed names of .h files
+      - new function for adding bounding planes
+      - Update flow code.
+      - Fixed compilation errors
+      - Fluid velocity calculation takes into account of facets velocities     - Update flow code
+      - Update flow code
+      - Correction on facet fluid/solid surfaces calculation
+      - Fixed calculation of fluid velocity in cells
+      - re-fix fluidArea correction (S0) by Donia
+      - Fix error in Volume_cell function.
+      - Fix retriangulation issue     - Fixed two warnings in FlowEngine
+      - Changed link to deprecated utils.encodeVideoFromFrames with utils.makeVideo (hope i did it properly, first time I modify docs)
+      - Reordering new function for viscous force calculation     - Added computation of average cell permeability for visualization
+      - Removed correction on smallest permeabilities     - Porosity computation neglects boundaries     - New functions ImposeFlux() and GetFlux() for one-point fluid injection
+      - FlowEngine does not depend on TriaxialCompressionEngine anymore     - Clean of useless variables
+      - Consolidation files writers move to python scripts (Flow functions MeasurePorePressure and MeasurePressureProfile do what is needed)     - Removed superfluous variables
+      - Fix segfault due to uninitialised normal to walls
+      - Add function to measure slice-averaged pressure values
+
+Jan Stránský (5):
+      Little changes in CpmStateUpdater
+      1. Changes in ConcretePM.cpp     2. added yade.ymport.unv function     3. added yade.export.VTKExporter class     4. added method outer to Vector3 in Python
+      Small changes in yade.ymport.unv and corresponding example
+      Change of CpmMat.relDuctility to CpmMat.crackOpening (making Cpm model more particle size independent)
+      rotation of facets taken into account in yade.export.VTKExporter
+
+Janek Kozicki (10):
+      plot.py: added `legendPosition` and `legendPositionSecondary` so we can decide     where the legend should be placed, by default it is 'upper left' and 'upper right'
+      Added yade.utils.voxelPorosity and yade.utils.voxelPorosityTriaxial. It allows calculating porosity at any arbitrary sub-volume of a whole sample. See included documentation.
+      small documentation fix
+      standalone example almost works. I still have some problem with sample randomness, and exact answers.
+      Added another variation of simple scene - this one is for energy tracking
+      added nice legend to the plots
+      more flexibility, few more parameters on the top of the script.
+      better default parameters, use dict(...) to read O.energy.items()
+      last correction for simple scene energy tracking example - I forgot to commit changes in CohesiveFrictionalContactLaw     but in fact maybe better if those methods for calculating elastic normal & shear energy would be moved somewhere else, maybe to shop? I'm not sure.
+      fix warning,     add plastic dissipation tracking
+
+Jerome Duriez (17):
+      Details
+      Fixes https://bugs.launchpad.net/yade/+bug/672473 (an error in the script finally...)
+      Details changes in comments of Vector3r forcesOnPlane(..), after http://www.mail-archive.com/yade-users@xxxxxxxxxxxxxxxxxxx/msg02610.html. Hoping you agree, Vaclav (if not, do not hesitate to revert !)
+      Few typos corrected in doc, and pack.py.
+      Changes in "normalInelasticity" files suggested by http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg06011.html
+      Fixes https://bugs.launchpad.net/yade/+bug/706937
+      Minor changes     - typos in programmer doc     - removal of useless backward compability in system.py     - removal or english translations of comments in the three c++ files
+      - some changes in normalInelasticity-test     - add of a check version of this script     - add of a sentence about these check tests in prog.rst     - changes of deprecated function in tutorial scripts     - typo in some other rst     - add of a note about plot.plot in plot.py     - beginning changes in SimpleShear preprocessor
+      - initialization of many variables in Law2_Normal....     - relative difference considered in check test, instead of absolute one
+      - add of some hyperlinks in doc     - changes in scripts. At the moment I can run ~20 times the proposed checkTest without fails (did not make more than ~20). Fails occured when interaction disappeared. Wait however a bit...
+      - still small changes in doc mainly
+      - add of a "by" in doc     - re let work the .py, modifiying definition of state.blockedDOFS
+      - maintaining of SimpleShear FileGenerator     - checkTestNormalInelasticity.py again among check tests. I launched it more than 20 times without crash here
+      Let spheres of SimpleShear be wiser (reducing GSTS->defaultDt)
+      - changes in simpleShear.py     - correction of small error in doc (I think)
+      Few changes in doc (sphinx and Sconstruct's one) after https://answers.launchpad.net/yade/+question/169042
+      - In Law2... add of a requestErase of the interactions with un<0, which was missing. Could help https://bugs.launchpad.net/yade/+bug/810056 ?
+
+Klaus Thoeni (11):
+      New implementation of a particle model for wires and rockfall meshes (initial state)
+      1. Fixed problem in postLoad (regression tests should work now)     2. Add some examples for testing the new WirePM with 2 particles
+      update scripts for the WireMatPM
+      1. implement packing for the WireMatPM     2. add some examples for the WireMatPM
+      1. correct affiliation in doc/sphinx/conf.py     2. derive WirePM from FrictMat     3. add value which indicates how far interactions are from normal failing (currently just used in WirePM)
+      1. move value which indicates how far interactions are from normal failing to WirePhys since only WirePM is using it
+      1. update WirePM scripts in scripts/test/WireMatPM     2. add a simple example for interaction of FrictMat and WireMat: examples/WireMatPM/wirecontacttest.py
+      1. add some more comments
+      1. add some more comments     2. correct some typos
+      1. fix problem (segmentation fault) for save/load simulations with WireMat     2. correct some typos
+      1. update scripts     2. add unbalancedForce to diagram in wirecontacttest.py
+
+Rémi Cailletaud (5):
+      Added buildbot master.cfg file in scripts dir
+      - removed log4cxx from build options beacause of wrong exit status (https://bugs.launchpad.net/yade/+bug/410250)
+      buildbot now creates a source targz
+      Build infrastructure : buildot script modified after an update of nagios probes
+      modifiied buildbot configuration to fix tarball build
+
+Sergei Dorofeenko (15):
+      fix Bug 672623; fix some examples
+      merge with trunk
+      1.Add silent switcher to NozzleFactory; 2.Fix examples
+      merge with trunk
+      1.Fix RotationEngine for new meaning non-dynamic bodies     2.Fix STLImporter     3.!!! Set aspherical=False for a facets. Need more consideration.     4.!!! blockedDOFs for leapfrogAsphericalRotate need more consideration.
+      fix bug  [Bug 692452]
+      1. ViscoelasticPM: release from prevNormal; 2.Small fixes
+      merge with trunk
+      1. Rename NozzleFactory to SpheresFactory; add derived CircularFactory and QuadroFactory. Example is scripts/test/spheresFactory.py     2. small fixes
+      fix examples
+      1. Rename QuadroFactory to BoxFactory; some fixing SpheresFactory     2. Rename facet->nf to facet->normal; access to the facet's normal from python     3. Fix examples
+      typo fix
+      and more typo fix
+      fix bug #721107
+      1.Add utils.trackPerfomance; 2.Small fix
+
+Unknown (2):
+      Modify CohFrict* classes as discussed with Bruno on the list.
+      1. Move alphas parameters to FrictMat as discussed with Bruno (harmonic-average of them is introduced in Ip2 functor).     2. Forgot one inequality when plasticity is applied (maybe I do not like tests so much :-) Sorry, anyway).
+
+Václav Šmilauer (75):
+      1. Fix Clump compilation in debug mode
+      small fixes in scons
+      1. Replace includes {lib,pkg}-* with {lib,pkg}/*; compiles (no full compilation tested)
+      1. Implement an initial version of generating loose clump packings of predefined configuration with SpherePack (TODO: do not recompute clump properties when adding them using toSimulation for each of them separately, but use those precomputed on given configurations). See scripts/test/clumpPack.py     2. Make selection of clump member highlight the whole clump in OpenGL     2. Add Dong2010 article to articles done with yade (authors contacted for fulltext)
+      1. Fix particle highlighting bug introduced lastly     2. Enhance the SpherePack.makeClumpCloud routine to be much more efficient (uses bounding spheres)     3. Add Ig2_Wall_Sphere_ScGeom     4. Enhance scripts/test/clumpPack.py
+      Some experiments with cmake
+      1. Add optional MatchMaker to Ip2_FrictMat_FrictMat_FrictPhys to decide how to compute contact friction angle.
+      1. Fix include paths pkg-common to pkg/common etc, merge other changes.
+      1. Allow O.engines to be modified inside the loop from python     2. Fix include dir creation (thanks, buildbot)     3. Fix Ip2_FrictMat_FrictMat_FrictPhys failure (inversed conditional)     4. Add tests for substepping, modification of O.engines and Engine.dead     5. Remove O.initializers
+      1. Add energy tracking to GravityEngine, NewtonIntegrator, PeriIsoCompressor (the last one not tested yet)     2. Update scripts/test/energy.py     3. DISABLE cohesive-chain test, since it was already broken by previous Bruno's commits
+      1. Add detailed docs for plot.saveDataTxt     2. Do not add dissipated energy if zero in Law2_ScGeom_FrictPhys_CundallStrack     3. Set friction to zero in scripts/test/energy.py
+      1. Do not enable draggable legent if not supported by matplotlib (thansk, buildbot)
+      1. Fix erroneous assert in the integrator (energy & clumps)     2. Fix bug in distance computation in SpherePack.makeClumpCloud     3. Make scripts/test/energy.py use clumps (and no friction) to have rotations, as Bruno suggested.
+      1. Fix chunkSize=1 builds (bug introduced by changing include paths)     2. Add octree visualization engine (for debugging clump computation)     3. Make editor of sequence of serializables resize more intelligently
+      1. Simplify InteractionContainer, move interactions inside bodies (NOT useful for getting all interactions of a body)     2. Advance with cmake a little bit (nothing functional yet)     3. Remove YADE_REQUIRE_FEATURE, use plain #ifdefs instead (empty files will be compiled, oh well)     4. Remove a few files that were apparently not compiled for a very long time.
+      1. Fix compilation pb with cgal (sorry, cgal does not compile with clang, so does not get much coverage from me). Thanks to Ema for reporting.
+      1. Initial subdomain support, which includes NewtonIntegrator, GravityEngine, InteractionLoop; new SubdomainOptimizer to put bodies to subdomains.
+      1. SubdomainOptimizer now splits domain and adjusts later so that there is similar number of particles in all domains     2. Add --cores option, defining CPU affinity; based on some tests, it actually hurts performance... :-|     3. #define likely/unlikely (like in Linux kernel) and use it in a few conditions in loops to help the compiler     4. Fix a strainge numerical "bug" in InsertionSortCollider where the same id has inversion with itself (min>max?)     5. Add pack.inParallelepiped predicate (not yet tested)     6. pack.filterSpherePack now returns SpherePack (the other routines are still to be made consistent...) -- see https://lists.launchpad.net/yade-users/msg03887.html
+      1. Backport doc generation crash (picked from subdomains)
+      Remove extra asserts to make Anton happier (sorry, forgotten stuff)
+      1. Add timing statistics to yade-batch     2. Make cmake closer to functional build     3. Fix xmlrpc error in the window between job start and xmlrpc-readiness     4. Add a few options to batch, make cpu affinity optional     5. Add subdomain mask to OpenGLRenderer     6. add unlikely to some conditionals in loops
+      1. Fix requestErase of erased interaction (thanks to Anton for reporting)
+      Fix INteractionContainer bug, enhance the timing table for batch.
+      1. Assume cache line size 64 bytes in OpenMPAccumulator, if sysconf reports zero (should fix startup FPU exception reported by Giulia)
+      1. Merge the subdomain branch, enable subdomains feature to enable     2. Delete some obsolete code in scons
+      1. Add access to clump member from python     2. Fix Clump i/o (clumpId was not saved)     3. Rename regular-sphere-pack to packs     4. Fix a few bugs (thanks, Anton)     5. Fix SubdomainOptimizer behavior in some corner cases     6. Add some checks to qt4
+      1. Fix L3Geom, add Sphere+Wall interactions, plus some benchmark scripts     2. Add NewtonIntegrator.kinSplit, to track translational and rotational energy separately     3. Add --randomize option to batch, for running jobs in arbitrary order     4. Make Body::setDynamic() (un)block State.blockedDOFs (for future compat)     5. Add Serializable::cast<Type> static casting method     6. Several fixes in utils, plot etc
+      1. Add MatchMaker(Real) ctor     2. Adjust timing report format for batch (precision)
+      1. Fixes in L3Geom, L6Geom & friends     2. Add scripts/test/beam-l6geom.py to demonstrate L6Geom     3. Fix LawTester so that ti works with all 6 dofs reliably now
+      1. Add Gl1_L6Geom, and a few params to Gl1_L3Geom as well     2. Add movie to scripts/test/beam-l6geom.py
+      1. Remove some obsolete files, update INSTALL and NEWS     2. Make qt._GLViewer properly documented with sphinx
+      Fix compilation error introduced lastly, sorry.
+      1. yade-batch can run a single job (without parameter table)     2. Avoid some exceptions in plot
+      1. Make the i/o regression test quiet by adding quiet flag to saveTmp/loadTmp     2. Facet has NaN vertices by default, and Facet.postLoad returns without warning in such case     3. LawTester now has most data as Vector6r instead of 2xVector3r. The syntax changed (backwards-compat with warnings, sorry), path should be disPath, ptOurs, ptGeom, rotOurs, rotGeom is now in uGeom and uTest     4. Add Vector6.head() and Vector6.tail() to return first/second triplet as Vector3 in python (corresponds to start<3>() and end<3>() in eigen2 and head<3>()/tail<3>() in eigen3)     5. Make the qt4 interface display Vector6 properly
+      1. Fix batch script (thanks, Anton)     2. Fix MatchMaker docscring format
+      1. Add support for ScGeom6D to LawTester (not tested...)
+      1. Fix orientation of rotations for ScGeom6D in LawTester
+      1. Remove Body::flags/FLAG_DYNAMIC, setDynamic now merely sets state->blockedDOFs=State::DOF_ALL etc.     2. Remove some deprecated code chunks
+      1. Add documentation for Ig2_Sphere_Sphere_L3Geom_Inc     2. Add regression tests for PBC & L3Geom     3. Fix syntax in other docs as necessary
+      1. Add docs for LawTester, and fix docs elsewhere as well.
+      1. remove devirt-functors (unused)     2. rename SubdomainOptimizer to SubdomainBalancer     3. remove Dem3DofGeom::scaleDisplacementT (unused)     4. remove Law2_ScGeom_CpmPhys_Cpm (malfunctioning, unused)     5. remove SConscript-mono (unused)
+      1. Fix NewtonIntegrator (not skipping particles with all DOFs blocked)     2. Disable Translation/RotationEngine tests, non-dynamic bodies changed their meaning and the tests fail.
+      1. Make batch accept multiple scripts on the command line (see --help)     2. Change syntax for blockedDOFs to be 'xyZ' rather than ['x','y','rz'] (assigning is backwards-compatible with warning)     3. Remove rests of devirt-functors; I thought I've done it already...
+      1. Create abstract KinematicEngine, allow kinematic engine composition with + (thanks to Jan for suggesting that)     2. Move all KinematicEngine's to pkg/common/KinematicEngines.{hpp,cpp}     3. Change accels in GLViewer so that x,X,y,Y,z,Z make rhe respective axis point upwards etc     4. Change g/G to enable/disable grid (or selectively enable if pressed multiple times)     5. Remove button images in the qt4 ui, use unicode symbols instead     6. Make batch referesh once in 30s by default instead of 5s to avoid congestion on slow uplinks
+      1. Add forgotten KinematicEngines.{c,h}pp files     2. Remove GroupRelationData & mgpost (is now at https://code.launchpad.net/~yade-dev/yade/mgpost)
+      1. Fix accidental typo, sorry...
+      1. Make middle-click paste path to variable in the ui     2. Clean up newton integrator; aspherical integration not called for things with 0 in inertia to avoid nans; this also fixed the problem of inverted normal with Wall
+      1. Fix NewtonIntegrator for clumps, blockedDOFs &c; msg will be sent to yade-dev     2. Make static attributes properly hyperlinked and documented in the ui     3. Fix yref in L3Geom
+      1. Clean up NewtonIntegrator following the discussion on the list; adds 1st order damping for aspherical particles; comments welcome.     2. Add Body.intrs() in python
+      1. Fix an error in Law2_L3Geom_FrictPhys_ElPerfPl (forces were applied at the step the interaction broke); results are now identical to ScGeom/CundallStrack (in the normal sense at least)     2. Add the possibility to specify y-data as functions returning y-data names themselves (see scripts/tests/energy.py)     3. Merge 2 consecutive loops in NewtonIntegrator for clumps     4. Rename plot.legendPosition, plot.legendPositionSecondary to plot.legendLoc (tuple of 2 values), to make it consistent with matplotlib terminology (pylab.legend(...,loc=...))
+      1. utils.{sphere,facet,wall} funcs take fixed=True|False now (instead of dynamic=False|True, which gives warning now and will be removed)     2. Make space in the 3d recenter scene     3. x,y,z (X,Y,Z) now set up axis (see help of the 3d), grid is toggled with g only     4.  Remove Shop::defaults and few other obsolete funcs     5. Fix bug in torsionweighting in LawTester     6. Rename Ig2_*_L3Geom_Inc to Ig2_*_L3Geom, update .py scripts     7. Rationalize Ig2_*_L3Geom functors, add Sphere+Facet
+      1. Add some data so that Hertz-Mindlin will work with L3Geom     2. Automatically compute "mass" of cell in PeriTriaxController, if not setFocus     3. Fix auto-plotting of energies in case the simulation is reloaded     4. Fix middle-click on attributes in inspector
+      1. set color_cycle in matplotlib only when it is supported (fixes test failure)
+      1. Fix i386 (?) live plot issue
+      1. Add function checking argument types inside FUNCTOR1D and FUNCTOR2D (requires to include full dispatched type definition in headers)     2. Reorganize the integrator so that its logic is understandable. Functionality not changed.     3. Move most clump code from integrator to clump methods     4. Automtically used InsertionSortCollider::verletDist if possible (used to be sweepLength)     5. Add --refresh param to batch, controlling refresh rate of web summary, logs etc (30s by default)     6. Fix gnuplot export with callable data specifiers     7. Put BodyCallback in #ifdef, since buggy; will be removed shortly, unless gets fixed.     8. Fix unbalanced force computation for clumps.     9. Remove accel and angAccel from state, since it is only used locally in the integrator.
+      Add missing includes, thanks to Klaus for reporting.
+      1. Better integration of NewtonIntegrator into Clump, avoiding linking cycle with chunkSize=1
+      1. Fix State.rot() mistake (was returning displacement instead)     2. Add qt.SnapshoeEngine.plot for adding snapshot name to plot.imgData automatically     3. Add plot.savePlotSequence for making movies with plots     4. Rename utils.makeVideo bps to kbps (is really kb/s, not b/s)     5. Rename OpenGLRenderer.displayGhosts to ghosts (shorter, sufficient -- sorry, Bruno)
+      Fix cache line size in OpenMPArrayAccumulator
+      1. Unbreak the periodic cell.
+      Add the dresden course to sphinx docs.
+      1. Add a more straightforward SpherePack.ParticleSD2 method, adjust the tutorial
+      1. Add scene flags about local coordinate systems and force sign convention (not yet used)     2. Fix many things around L3Geom (most importantly, re-normalization was never done, resulting in instabilities), merge code for different particle shapes in a general function handleSpheresLikeContact     3. Fix incorrect import of gts surface due to LC_NUMERIC     4. Add OpenGL-related stuff to yade-support, which might fix linking issues with natty     5. Move Cell::invTrsf and Cell::refSize to private part, so that it
+      1. Make yade and yade-batch run single-threaded simulations     2. Add warning when specifying -j/--threads/--cores when lacking OpenMP support
+      1. Change Cell behavior as explained on the list -- trsf can be changed freely, without side-effects; assigning refSize is deprecated (use new O.cell.setBox(...) function for that)     2. SpherePack.toSimulation sets identity transformation, but rotated hSize (if requested)     3. PeriTriaxController uses norms of hSize columns (with inverse transformaiton) as reference lengths ;; TODO (?): it should check that hSize is diagonal, otherwise it will probably behave erroneously
+      1. Revert some "cleanups" in Cell (LOL, Bruno, we are overwriting each other's work again :-))     2. Add some regression tests of PBC     3. Make plot.addData aceept vectors and matrices, creating columns for individual components     4. Make compilation of SpherePadder only optional (feature sphere-padder)
+      1. Add plot.autoAddData with docs. A limitation is that "=" should not be in names of data columns anymore.     2. Add Strong/weak fabric distinction to Gl1_NormPhys (not tested)     3. Degrade VelocityBin's initialization message to debug     4. Add .items() method to EnergyTracker, for fast conversion to list of tuples.
+      1. Fix plots with line specifiers     2. Fix peri-triax example (sweepDist->verletDist)
+      1. An attempt to fix OpenMPArrayAccumulator initialization (not tested)
+      1. Update affiliation
+      1. Fix OpenMPArrayAccumulator initial zeroing, re-enable plot test     2. Add Matrix3 ctor from Quaternion and vice versa in Python     3. Fix some bugs in L3Geom initial axes orientation     4. Plots now display pointed triangles instead of circles to mark current position (and orientation); plot part after the current point is transparent
+      Nicer fix for 721107 (should work)
+      oops, sorry
+      1. Invalidate persistent collider data when interactions are cleared (not tested yet)     2. Add renderer pointer to scene, so that functors can find display attributes     3. Gl1_NormPhys honors displacement scaling now     4. Fix scalarOnColorScale bug     5. Add RadialForceEngine, fix AxialGravityEngine
+      fix error in last commit
+
+==================================================
+yade-0.60.0
+Sun Nov 7 09:55:43 2010 +0100
+
+Anton Gladky (54):
+      1. utils.facetCylinder and utils.facetBox orientations are changed according to https://lists.launchpad.net/yade-dev/msg04886.html
+      1. Orientation in ymport module is changed according to https://lists.launchpad.net/yade-dev/msg04886.html
+      1. Some small fixes
+      1. Docs small modifications
+      1. Some bibtex references added from WIKI
+      1. Some references into bibtex-format migration
+      1. Moving references to bibtex format is finished.
+      1. Engine for particle size distribution analyzes is added. (not finished)
+      1. Engine for PSD-analyze is finished, need testing.
+      1. Added forgotten include, caused a compilation errorin 2331
+      1. Changed warning message in case, when installer cant find libraries. http://www.mail-archive.com/yade-users@xxxxxxxxxxxxxxxxxxx/msg02202.html     2. Installation instructions were moved from Wiki to Sphinx Documentation.
+      regular-sphere-pack.py fix. It works again.
+      1. Comments to ParticleSizeDistrbutionRPMRecorder are added.
+      1. RockPM update.
+      RockPM fix
+      1. Recorder has new feature "addIterNum" which adds Iteration number to the end of file name. Off by default.     2. Clean ParticleSizeDistrbutionRPMRecorder
+      Fix compillation error
+      Packages names needed for qt4 are added to 'installation' section of documentation.
+      1. Analyze of specimen diametr is added to PSD engine. VTK and Rock were updated relatively.
+      1. Added materialId analyze to PSD-engine     2. Changed chmod of CohesiveFrictionalPM
+      1. Some modifications in PSD-recorder for material analyze
+      1. Added updating volume specimen variable in rpmState
+      1. Small but necessary fix
+      One more field added to PSD engine
+      1. 626409 fix. Thanks to Sergei for spotting that.
+      1. Fix export.textExt function according to http://www.mail-archive.com/yade-users@xxxxxxxxxxxxxxxxxxx/msg02413.html
+      Fix compilation warning in SpherePack::particleSD
+      1. Fixes issue, described in http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg05009.html
+      1. Some changes for compilation in Fedora
+      1. One more fix for compiling in Fedora
+      1. Some small fixes in debian/     2. Warning fixes in shop.cpp
+      1. debian-prep now can accept RELEASE file without version number to create yade-bzr version
+      1. Changed required version of python-sphinx in debian/control-template to make the trunk builded in Maverick.
+      1. Fixed wrong MaxDiam determinition, when specimen consists on 1 particle.     2. Added maxX, maxY and maxZ parameter into outputed psd-file for geometry analyze.
+      1. chunkSize is changed in debian/rules from 2 to 1
+      1. Fixes an issue, indicated here http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg05162.html ; combined-files in SConstruct during Debian build.
+      1. Changes in debian/rules due to new conception of debug-build http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg05182.html
+      1. Changes in debian/rules http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg05185.html
+      1. scripts/debian now takes the name of person from DEBFULLNAME and DEBEMAIL environment varaibles.
+      1. Added initial scripts/build-fabric     2. scripts/debian-prep now smoothly handles absenting DEBEMAIL and DBFULLNAME variables
+      1. build-fabric now builds packages for maverick and lucid for 2 platforms "automatically"
+      Fixed an error in debian-prep
+      1. build-bot with the main functionality is reasy for testing.
+      1. Yade menu should appear in respective sections in main menu in Debian-based systems (not tested yet)     2. build-farm should build packages without root priveleges
+      1. Returning "sudo " to build-farm
+      1. Command-line parameters are added to build-farm script
+      1. Fixed pixmap copying in debian/rules
+      1. Warning blocked in DomainLimiter.cpp:63
+      1. Some notes on Eigen3 migration
+      1. Eigen3 compiles now (seems). Vaclav, sorry, I needed to change your template, because it gave an error on Eigen3.
+      1. Again some changes for Eigen3 compilation
+      1. Yade now compiles with Eigen3 and with OpenGL feature enabled
+      1. In PSD-engine wrong maxX, ..Y and ..Z calculation fixed
+      0.60.0
+
+Bruno Chareyre (45):
+      Local sphinx build : I made it! :)     Fixing the command in readme.
+      - give path more clearly, the previous commit was assuming same relative path as mine.
+      revert yade path
+      - Add files for kdev4.
+      - Fix ambiguities in contact geometry and time-step parts.
+      - Add stress getter and python wrapper (replacing reverted r2314).
+      - Add definition of work input from boundaries (resp. macro strain) in TriaxialStressController (resp. PeriTriaxController).
+      - Remove useless spheresVolume (redundant with  TriaxialStressController::spheresVolume)
+      - Some cleaning in ScGeom.     - Implement precomputed quantities (#define IGCACHE for compiling them).     - Experiment precomputation with ElasticContactLaw (#ifdef IGCACHE), other laws should not be impacted yet whatever IGCACHE.     - Make authors consistent (Galizzi never touched ElasticContactLaw).
+      - Remove some debugging/commented code left in 2336, sorry.     - Update authors again (forgot to "save" before commit...)
+      - More changes in stability section. (we need PFC manual in bibtex references...)
+      - More small fixes.
+      - miniEigen : memory leak source suspected (FIXME added)     - ScGeom : #define IGCACHE by default, and keep behaviour unchanged for older functions (still some cleaning to do in this class, after all Law2's have been adapted).     - CohFrictLaw : Eigen is returning nan quaternions after trivial operations, it is workarounded in the law.     - cylinder : a new shape, first step in experiments for  tracking interactions jumping over chained elements.     - utils.py : a demo script for chained cylinders
+      - make the example more fun.
+      - Revert last doc change and fix the original. (please don't modify documentation if you are not sure. I can't double-check all commits.)
+      - Implement the distinction between node orientation (integrated in Newton) and beam orientation (always oriented as line between adjacent node). It fixes the starcases appearing in display for large stretch.
+      - Fix path to fulltext.
+      - restore Gl1_ChainedCylinder     - kdev4 : I failoed to commit this file apparently.
+      - Cylinder, update contact point consistently with current segment definition.     - Fix the poisson=0 case (was returning undefined Ks for division by 0...)     - This commit enables wire-like behaviour without moment when ks=0
+      - Last change in contact plane makes script unstable. Restore stable (but wrong?...) equations.
+      - Cylinder : fix segment orientation, use correct contact point, and clean code.     - ScGeom : last step before removing old code, some functors adapted (others are using even older duplicated code apparently)     - Small sphinx fixes.
+      - Use precomputed geometry everywhere in functors and remove older code.     - Make Dem3DofGeom inherit from ScGeom rather than GenericSphereContact and remove (comment) the latest.
+      - Missing in last commit sorry.
+      - Revert r2365 as a whole (and r2367).     - All changes in ScGeom and related functors will be commited again when I have time.
+      - restore virgin yade.kdev4 and add kdev files to bzrignore.
+      - publications update.
+      Restore the part of r2367 concerning ScGeom (+ some more improvments).
+      - restore project file for kdevelop3.
+      -Update functor->momentLaw in the global engine.
+      - More documention in the 2 constitutive laws.     - Some code cleaning and test redundancy fix in CohFrictPhys.cpp+CohesiveFrictionalContactLaw.cpp.
+      - adds references cited in the previous commit.
+      - Include a comment on "welltestedness" of ElasticContactLaw.
+      - rename classes :     	Law2_ScGeom_CohFrictPhys_ElasticPlastic ->  Law2_ScGeom_CohFrictPhys_CohesionMoment     	Law2_Dem3DofGeom_FrictPhys_Basic -> Law2_Dem3DofGeom_FrictPhys_CundallStrack     	Law2_ScGeom_FrictPhys_Basic -> Law2_ScGeom_FrictPhys_CundallStrack
+      - remove useless attributes,     - fix class name in TTest.
+      - Add new IG class ScGeom6D precomputing relative rotations, and associated Ig functors.     - Update related classes (CFLaw)     - add kdev4 configuration for starting debug from kdevelop
+      -Includes a regression test on dynamic beam flexion.
+      -Move cohesion and moment parameters from functors to bodies and interactions, and define them in Ip2_2xCohFrictMat_...
+      - Fix cylinder reg. test with respect to r2509(2510).     - Add output for nan quaternion products #ifdef Q_DEBUG.     - Document some flags in Ip2_2xCohFrictMat_CohFrictPhys.hpp.
+      - more debug info for quaternions with nan angle.
+      - Convert ScGeom to ScGeom6D in Ig2_Sphere_Sphere_ScGeom6D::go(), using ScGeom::operator=     - Optimize distance check for existing interactions in Ig2_Sphere_Sphere_ScGeom::go()     - Implement Ig2_Box_Sphere_ScGeom6D (same conversion to ScGeom6D)     - Adapt CohesiveTriaxialTest.
+      - Fix a typo (and test some launchpad+bazar logging feature...)
+      - Add python wrapping for python use of TesselationWrapper (+ a few fixes and formating)
+      - add example commands in docstring.
+      - Remove scene pointer from TW function parameters     - sphere-cylinder Ig2 functor (some old uncommited code - still bugged)
+      - TW : really check if body geometry is sphere in the insertion loop (instead of isDynamic).     - FE : use the faster insert(begin,end) from TW for triangulation, and move area/volume definition to addBoundary().
+
+Chiara Modenese (22):
+      1) Add contact damping into HM law. 2) Add functions getIncidentVel (both for periodic and non-periodic case) and rotateShear to ScGeom. 3) Add py script to demonstrate and test the effect of contact damping.
+      Rename rotateShear() to rotate() in ScGeom.
+      1. Add Engine::dead attribute; if set, the engine will not be run at all (unless explicitly called via () from python or ::action from c++). Useful for temporarily (de)activating engines without having to modify O.engines     2. PeriodicPythonRunner renamed to PyRunner as it is used so often.     3. Add Cell.getVolume() and utils.porosity     4. Check for force&torque NaNs in NewtonIntegrator in debug builds     5. Add --rebuild option which will launch scons before running the simulation itself     6. Some fixes in the HertzMindlin law     7. The qt4 interface will try to open packaged docs, then docs in the source dir and online docs as the last resort.     8. Some fixes in PeriTriaxController (the servo-mechanism) and probably a bug fix in TriaxialStressController (will ask Bruno on the list to confirm the correctness)
+      1. Add an alternative implementation of PSD-based particle generation; likely to be merged to makeCloud in the future
+      (micro-fix for a spurious startup message)
+      1. Improved summary http page for yade-multi, includes (clickable) plots and hyperlink to the log (with auth cookie removed)     2. Deprecate PartialEngine::subsribedBodies in favor of ids     3. Remove triangulation lib from ctags dirs (so that tag Facet goes to yade::Facet)     4. The qt controller computes simulation speed locally now     5. Fixes in Hertz-Mindlin     6. Add an alternative SpherePack::particleSD function     7. Make axis labels, highlighted axes etc settable in yade.plot     8. Add yade.plot.saveDataTxt     9. Fix plot names with spaces (so that multiple plots with the same x-axis can be specified)
+      1. The mindlin law now prevents granular ratcheting by default.     2. Ig2_Sphere_Sphere_ScGeom has now avoidGranularRatcheting bool (true by default, which was the hardcoded value till now as well); add documentation from the source to the real doc, add a few references on that.     3. SpherePack no longer saves vectors as tuples; this also fixes memoization issues with pack.random{Dense,Peri}Pack     4. Add Law2_ScGeom_MindlinPhys_HertzWithLinearShear used for testing differences between linear and non-linear law.
+      (Antons changes)     1. angleRange parameter is added to facetCylinder to create "semi-cylinders", "quarter-cylinders" etc.     2. Prepare Sconstruct for compiling in Fedora (partly)
+      1. Rename yade-multi to yade-batch; documentation updated     2. Make batch save plots when all jobs are done     3. Add tags d.id and id.d (description and id put together)
+      1. Re-apply removal of Mathr, sorry Anton, the fault was local.
+      1. Avoid adding useless lines of nans in plot for unknown variables, add only their column instead     2. Save job figure as soon as the job finishes in the batch     3. Fi O.tags['id.d'] and O.tags['d.id'] tag order
+      1. Make batch commands clickable; fix encoding issues when the batch page sends job script/table     2. add utils.maxOverlapRatio for sphere-sphere contacts     3. add reinitialization counter to InsertionSortCollider     4. Add VTKRecorder.ascii so that saved XML data might be human-readable (false by default)
+      1. Resurrect SnapshotEngine     2. Add Gl1_NormPhys for displaying interaction network (http://beta.arcig.cz/~eudoxos/temp/Gl1_NormPhys.avi)     3. Make VTKRecroder work nicely with periodic boundary conditions (repeating interaction on both sides if it crosses the cell boundary using a few hacks)     4. Add Shop::normalShearStressTensors for computing (once more) stress tensor, but normal and shear contributions separately     5. Allow specify particle counts for SpherePack.particleSD     6. utils.makeVideo now uses mencoder (and works, unlike the older gstreamer-based thing, which would not work anymore)     7. Add Matrix3.diagonal()     8. Integrate regression tests suite in the main program (yade --test)     9. Set plot.scientific==True only if the version of pylab installed supports it (thanks to Anton for reporting)
+      1. Add scripts/test/force-network-video.py     2. Rename attribute flags (Attr::readonly, Attr::triggerPostLoad etc)     3. Detect whether display is available and store it in yade.runtime.hasDisplay (false by default); that restores the behavior of yade.qt, which raises ImportError at no display, and makes yade.plot consistent with tha variable as well     4. Fix total running time for batches     5. Do not send 0 refresh for finished job files (refreshes as frequently as possible, whereas no refresh was desired)     6. Debian package depends on mencoder now     7. qt.SnapshotEngine open the view automatically if needed (not very reliable, though)     8. Add scripts/test/force-network-video.py     9. Fixes in the OpenGLRenderer that avoid crashes; drawWithNames should draw shapes in the same place as draw witout names, making the selection consistent with what is seen (periodic boundaries etc)     10. Move {ScGeom,Dem3DofGeom}::contactPoint to GenericSpheresContact     11. Initial (not yet functional) implementation of the partial slip solution for Hertz-Mindlin (Mindlin-Deresiewitz)
+      1. Introduce a class for returning or computing scalar values based on combination of 2 ids. [experimental, don't use or ask questions about it now]
+      1. Rename InteractionDispatchers to InteractionLoop; backwards-compat for python as usual, typedef with deprecated warning in c++; update all scripts and docs to reflect that.     2. Add NozzleFactory, which might be in the future generalized to a generic factory object and a numebr of derived classes with different parameters (such as factory area shape, specification of sphere parameters etc); see scripts/test/shots.py     3. Fix many crashers in the OpenGL code; unbreak particle selection     4. Finalize the MatchMaker class, with convertor from python floats to specify fixed value.     5. MatchMaker is used to specify different coefficients of restitution for different material couples in Ip2_FrictMat_FrictMat_MindlinPhys; viscous constants moved away from Law2_ScGeom_MindlinPhys_Mindlin into MindlinPhys instead.     6. Fix compilation errors caused by unintelligedn 3rd-party Combine builder to scons -- save sombined files to an external file, force refresh of all combined files if the md5 changes. Does not increase compilation time.     7. Add DomainLimiter engine for deleting particles that go ouside some domain (see scripts/test/shots.py)     8. Add DragForceApplier (not yet tested); thans to Stefano for the suggestion.
+      1. Add #pragma once to MatchMaker (thanks, Remi)     2. Remove a few useless scripts.
+      1. Make the debug build installed in the same directory as the release build; it is compiled with debug=1 (or True); there is only a single yade executable for both, and the debug plugins are loaded with --debug. I tried to adjust packaging rules a bit, I hope it will not introduce additional errors. --debug and --rebuild work fine together.     2. Add --debug option to yade-batch, which runs yade with --debug.
+      1. Add LawTester class for prescribing displacements on interactions precisely, see scripts/test/law-test.py     2. plot now displays the last point as a bullet     3. Rename Interaction{Geometry,Physics} to I{Geom,Phys}; rename related classes as well (functors etc)     4. Rename Interaction::interaction{Geometry,Physics} to Interaction::{geom,phys}     5. Add Vector3.normalized() to the eigen wrapper     6. Add framework for arbitrary rendering hooks (GLDrawExtra) run from OpenGLRenderer at the end of the rendering routine (not yet fully tested)
+      1. Do not return Attr::hidden attributes in dict(); that makes them invisible in the UI as well.
+      1. Fix batch script with debug builds, thanks to Anton for reporting.
+      1. Fix a few malformed formulas (my bad) so that LaTeX does not choke on them.
+
+Emanuele Catalano (12):
+      - Wide code maintainance     - Removed isSuperior/Inferior/Lateral attribute, inside/fictious remain, Localize function removed     - FlowEngine is able to receive as input boundary conditions (flow/pressure) to be applied to walls     - Oedometer test can be performed via python scripting     - A new force calculation scheme (facet scheme) had been implemented
+      - Forgot def_types.h in previous commit (sorry Tieng!)
+      - Added function to compute average cell velocity     - Added function to apply sinusoidal external fluid pressures
+      - Solved retriangulation problems in seabed simulations     - Code maintenance
+      - Solved compilation errors
+      - Added average_cell and average_grain velocity computation     - Updated vtk_file creator function
+      - Moved functions and variables related to geometry in Network.cpp/.h     - Update other files to these changes     - Code maintenance
+      - Commented flow_engine definition, sorry Sergei
+      - Really solved compilation problem with 'cgal' feature, sorry again
+      - Update flowEngine files
+      - Added missing #ifdef FlowEngine condition
+      - Fixed compilation error
+
+Jan Stránský (3):
+      1. add function yade.utils.stressTensorOfPeriodicCell     2. removed BoundDispatcher from pack.randomDensePack
+      1. correct some misprints and do some actualization in user's manual.     2. correct mistakes in Shop::stressTensorOfPeriodicCell()
+      1. modification of Vector6     2. change of Peri3dController (+docs and examples)
+
+Janek Kozicki (11):
+      making TriaxialStressController more python friendly.
+      revert last commit
+      fix two typos, replace Real strain[3] with Vector3r strain
+      fix two small typos in docs, add spheresVolume python wrapper for TriaxialStressController. (I need it to calculate void_ratio=voids/sphresVolume)
+      Sphinx documentation for plotting + color plotting.     Added missing comment in TriaxialCompressionEngine
+      Let TriaxialStressController calculate sphereVolume for clumps correctly.
+      A trivial fix for exceptions when drawing data that is being modified right now
+      refer to matplotlib manual
+      remove duplicated part about pyplot
+      Added pdf figs (not .svg, they are 5MB big!). added info about TeX usage of plot.labels. small fixes
+      Added a throw condition if two spheres have zero distance. Works in #ifdef YADE_DEBUG only.
+
+Jerome Duriez (7):
+      - Re-write of SimpleShear PreProcessor with YADE_CLASS_... macro
+      - Creation of KinemSimpleShearBox, new class containing the features common to the various Kinem...Engines, and from which these Engines inherit now.
+      - Replace of .isDynamic (deprecated) by .dynamic in some python scripts
+      - the script simpleShear.py (renamed from SimpleShear.py) allows now to illustrate/test the various Kinem...Engines
+      - Documentation typos/formatting in few files
+      Few modifications in the doc of NormalInelasticityLaw (class Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity), following the request done http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg05207.html. Not sure it is perfect, but hope it is at least better...
+      Re-write of "NormalInelasticityLaw" with use of ScGeom6D for what concerns rotations.     => Rename of the corresponding Law2...
+
+Luc Scholtes (1):
+      publication list update
+
+Sergei Dorofeenko (6):
+      Viscoelastic basic particle model: move mass of particles from material to interaction
+      Fix bug666246. See https://bugs.launchpad.net/yade/+bug/666246
+      merge with trunk
+      Fix STLImporter; fix some examples
+      1. Fix ViscElBasic law to handle periodicity; 2. Add some regression tests
+      Fix bug in Ip2_ViscElMat_ViscElMat_ViscElPhys
+
+Václav Šmilauer (88):
+      1. Docs update     2. Remove Dispatcher::add(string) (only accept functor objects instead)
+      1. Update documentation (backported to 0.50)     2. Remove the long deprecated object['attribute'] syntax.
+      1. Update docs     2. add some yade publications in bibtex
+      1. Port packaging changes from the 0.50 branch
+      1. Remove dem6dof related classes     2. add a few more publications to the bibtex db
+      1. Remove old io code in Omega     2. Update yade.eudoxos     3. Fix bug in pack.randomDensePack loading memoized scaled periodic packing from (backported to 0.50 as well)
+      1. Fix some spiral projection functions     2. Add manpage generation to yade and yade-multi     3. Add manpages to debian packaging, including alternatives (man yade -> man yade-bzr2284 etc)
+      1. Bugs in Cell (!!! no yet fixed: see scripts/test/peri8.py !!!)     2. Add optional devirtualized functors (experimental)     3. Adjust Peri3dController for large strains and test (modulo the cell bug)     4. doc fixes
+      1. Fix multiple authors syntax in bibtex (multiple authors MUST be separated by "and", not by comma!!!)     2. Add doctests of all modules, fix where failing     3. Add SpherePack.toSimulation
+      Minor documentation fixes.
+      1. Split publications in articles, conferences, theses     2. Fix problem with scons 2.0, now it works out of the box     3. Add a better error message for VelocityBins with NaN velocity
+      1. Add show Paraview documentation to the postprocessing section     2. Fix at least partially the rotated cell bug in shift2 (https://bugs.launchpad.net/yade/+bug/601866), still some issues elsewhere, though.
+      1. Fix stale potential interactions -- we've been dragging this bug since april, I will backport it to 0.50. You are strongly recommended to update!!! The bug was, in the end, not in the collider, but in the container; it had <= instead of >= in one condition. Sorry.
+      Fix Facet AABB computation in periodic scenes (another important update!)
+      1. LIVE PLOTTING (thanks to Janek for the idea and the suggestion of mtTkinter). Report bugs.
+      1. Fix InteractionGeometryDispatcher (in case someone still uses it).
+      1. Move triaxial documentation from the wiki to sphinx
+      1. Make utils.saveVars, utils.loadVars and utils.readParamsFromTable synthesize modules in yade.params.* to avoid name clashes in builtins (see docs and user's manual, you have to adapt your code if you use those)     2. Rewrite the installation page in sphinx (sorry, Anton, I hope it is a little more readable now)     3. Fix several undefined xrefs in the docs.     4. Disable wm3-compatibility in eigen wrapper (Vector3.UNIT_X etc)     5. Rename utils.chCylinder to utils.chainedCylinder, update docs there (sorry, Bruno, but chCylinder is really not a self-explanatory name)
+      1. Fix dispatch-torture scripts/test/dispatcher-torture.py     2. Remove wm3-compat code     3. Escape \d in the doc (must be \\d in c literals)
+      1. Make GL dispatchers proper classes exposed to python     2. Make State and derived classes indexable     3. Update scripts/test/dispatcher-torture.py
+      1. Fix compilation error due to free-standing function out (remember: NO FREE FUNCTIONS, everything must be inside classes, otherwise there is the risk of name clashes.)
+      1. Fix the GL dispatch (was enumerating child classes non-recursively, and your Gl1_ChainedCylinder did not inherit directly from GlShapeFunctor)     2. Do not use '|||' to separate plot axes, use None instead (||| is deprecated)     3. Move the Gl1_ChainedCylinder functor inside #ifdef YADE_OPENGL (please pay attention to that)
+      1. Add noqt3 feature (still keeps OpenGL available), run qt4 app at the beginning (emits warning)     2. Make GLUtils independent of QGLViewer     3. Add some metadata to attribute docstrings     4. Add scripts to render scene to pyQGLViewer and to show basic serialization interface in PyQt4.     5. Make static attributes non-static in python (enables docstrings)
+      1. Make static attributes documented (xrefs still not working, though)     2. Add section on the Material-State association to the Programmer's manual     3. Fix syntax error in qt4-attributes.py
+      Fix docs
+      1. Do not uselessly pass Scene* pointer to Law2 functors (already in LawFunctor)     2. Attempt at Law2_ScGeom_CpmPhys_Cpm (not tested)
+      1. Add the possibility of custom constructors to python (not a hack as it used to be)     2. Add cached functors to explicitly created interactions (not saved, though)     3. Improve the ScGeom-based Cpm law     4. Change interface of StepDisplacer to specify mov and rot separately (old interface with deltaSe3 works, but warns)     5. Add scripts/test/cpm-dem3dof-scgeom.py to show some differences between the 2 geometry formulations.
+      1. Turn many fatal warnings in UniaxialStrainer to exceptions, remove some guess-logic     2. Automatically disable live plots in batches.     3. the concrete uniaxial test now has the scGeom switch
+      1. Some VTK recorder fixes.     2. cpm fixes (untested)
+      1. Save interaction as vtkPolyData rather than vtkUnstructuredGrid (to allow the Tube filter to operate on it).
+      1. add noShow to uytils.plotDirections     2. Some fixes for ScGeom+Cpm (still problematic)
+      1. Preliminary version of PyQt4 interface (3d viewer flickers, reason unknown). Config checks largely absent.
+      1. Remove linkStrategy option. Specifying chunkSize=1 provides the per-plugin linkage.     2. Add qt4 feature, which conflicts qt3. Qt3 must be now explicitly defined. QT4DIR must be defined (defaults to /usr/share/qt4, which works for debian)     3. Add checks for python modules and prettify boost checks.     4. Remove a lot of legacy code, so that the qt4 build avoids yade::serialization completely     5. Add live inspection and modification of arbitrary sequences, for a showcase see the Inspect button on the simulation tab (Body/Interaction inspection will be rather easy as well)     6. Add common handling of number arrays (Vector3, Matrix3, Quaternion)     7. Add to-python converters for vector<vector<string>> and list<string> (only needed in Dispatchers, avoids tome exceptions)     8. Rename OpenGLRenderingEngine to OpenGLRenderer
+      Path hotfix.
+      1. Dispatchers cleanup (will continue)
+      1. Remake inheritance tree for Dispatchers, so that functors are really of the right type. Involves some macro ugliness.     2. Add rudimentary (but working) inspection interface for engines, bodies, interactions     3. Fix compilation without qt3 (will be removed soon, completely)
+      (forgotten file)
+      1. Make types and attributes in all editors clickable     2. Add editor for Se3, Vector3i, Vector2, Vector2i     3. Fix bugs in eigen's wrapper for Vector2i and Vector3i
+      1. Fix static properties of Eigen objects (return values, not references - see http://www.mail-archive.com/yade-users@xxxxxxxxxxxxxxxxxxx/msg02339.html)
+      1. SpherePack.makeCloud can distribute grains based on their mass (rather than count) along arbitrary PSD or uniformly if rMean is given (the default behavior is unchanged)     2. SpherePack.psd() function for generating particle size distribution, either based on particle count or their volume (mass)     3. A few fixes in the UI     4. Fix facet "coincident vertices" warning
+      1. Add script demonstrating mass-based and size-based particle size distributions (PSD) and how to specify and arbitrary function for PSD when generating random loose packing with SpherePack.makeCloud
+      1. Disable (experimental and malfunctioning) multiblock files with vtk<5.2 (did not exist)
+      1. Remove qt3 interface     2. Remove yade::serialization and related otherwise useless files     3. Remove lib/loki, use the official Loki library (in /usr/include/loki, package libloki-dev) instead, except for (highly incompatible) Singleton, which was moved to lib/base.
+      merge noqt3 branch
+      1. Body flags instead of bools + isBounded/setBounded flag.     2. Move body_id_t to Body.hpp
+      1. Change body_id_t to Body::id_t     2. Assign Body.bounded in py/utils.py funcs (in prep for making BoundDispatcher 1d)
+      1. Make Bo1 functors really 1D     2. add Body::isBounded/setBounded so that there is a way to ask for a body to not have bound created by BoundDispatcher     3. Change bool Body::dynamic into a bit inside Body::flags     4. Change body_id_t to Body::id_t since boost::serialization can handle class-defined types gracefully
+      1. Integrate BoundDispatcher into Collider, its python ctor takes list of BoundFunctors now     2. Warning and help if BoundDispatcher is used directly (more precisely: if Collider has no BoundFunctors defined and there is BoundDispatcher in O.engines)     3. Remove Body(id,mask) ctor as it bypasses default value initializers     4. Adjust preprocessors to the previous item
+      1. Remove BoundDispatcher from O.engines in examples, scripts and sphinx (accidental typos possible, sorry)
+      1. Remove outputFilename from FileGenerator, pass that as argument directly; remove message as FileGenerator's member; FileGenerator is no longer ThreadWorker (was not used)     2. Remove all variables named 'rootBody' in generators
+      (detail: make SeqSerializable number nicer)
+      1. Rename some stuff in Omega and Scene to make it consistent with python:     Scene::currentIteration->Scene::iter     Scene::getSimulationTime()->Scene::time     Scene::getComputation...Time()->Scene::getComputationTime()     Scene::stopAtIteration->Scene::stopAtIter     etc.     2. Fix bug with per-class compilation (thanks to Sega for reporting)
+      1. Adjust docs for changes in the last commit     2. Add version requirement for python-sphinx to debian/control-template (Anton: that's the reason why the build fails in maverick; I uploaded 1.0~hg... into yade-users/external so it should build fine in a few hours; there is no use uploading 0.6 which is in maverick already)
+      1. replace {pre,post}ProcessAttributes by {pre,post}{Save,Load} (not virtual)     2. change attribute specification adding and additional attribute flags (read-only from python, not saved, should call postLoad after changing value from python)     3. Macros cleanup in Serializable     4. Support clang for compilation (more than 2x faster) https://yade-dem.org/wiki/Compilation_with_LLVM/clang     (documentation not yet update to reflect those changes fully, sorry)
+      1. Add sub-stepping functionality (step by engines rather than by whole iterations)     2. Expose Scene in python properly (not very well tested yet...)     3. Update documentation about attribute flags     4. Remove some 3rd party files no longer needed
+      1. Add foce, torque etc display in the body tab of the inspector     2. Make force, torque etc access from python not require thread synchronization (sums up threads on demand)
+      1. When disabling sub-stepping when the last step is done only partially, all remaining substeps are run at the next step.
+      1. Fix bugs related to 3d views (centering, secondary views, closing views). Thanks to Sega for reporting.
+      1. Consistently use SUFFIX for what is the same for debug and non-debug version, and libDir for plugin installation directory. Hopefully that cleans the mess we've had. That should also fix startup problems with --debug that Anton reported     2. Do not #define PREFIX and SUFFIX as macros, since they are not used in the c++ code anymore (and should not be)
+      1. Link to the standard libstdc++.so.6 (which is instaleld everywhere) instead of libstdc++.so, which is only in the devel package of gcc     2. Full support for compilation with clang (packaged for lucid and maverick now), as explained at https://www.yade-dem.org/wiki/Compilation_with_LLVM/clang#Building_yade (openmp and optimizations do not work)     3. Add function to ScGeom to compute incident velocity from python.
+      1. Fix QT4CXX key error, thanks to Anton for reporting.
+      1. Fix startup error with debug-only builds. Sorry, Anton.
+      1. Enhance the gl-drawer for LawTester.
+      1. Fix both rotation and shear in LawTester. Signs are now consistent are correspond to displacements as defined on classical beam (x is the axis, y and z are in the shear plane)
+      1. Clear erro message when running debug-only build without --debug
+      1. Make number in qt4 show the left-most part if the text field is narrower, rather than the left part     2. Run the debug version if optimized is not available, even without --debug     3. Add the possibility of running the monolithig compilation (mono=True); not fully functional yet.     4. Add warning when using march with clang, which leads to crashes (optimizations are not the cause, in the end)
+      1. Flattening the file hierarchy, as mentioned previously. No changes to #include paths so far.     2. Change the directory where to install headers to not include yade version
+      1. Add OpenGLRenderer to DomainLimiter, that should fix the linking issue reported by Janek.
+      1. Fix debian linkage with MatchMaker (hopefully)     2. Add preliminary and experimental L3Geom class (do not use, do not ask etc -- yet).
+      1. Make forgotten class members public (sorry, Anton)
+      1. Enhance LawTester to work with L3Geom, fix some bugs     2. Add uN and uT references inside L3Geom, for respective components of the deformation vector
+      1. Add Vector6r wrapper (both c++ and python)     2. Fix prefix bug in initialization braking debian packages     3. Fix renames in py/test which made regression tests fail     4. Update LawTester and L3Geom for 6 dofs (not yet tested, please do not use now)
+      1. Add menu entry for the dbg package (yes, it really does not show up, dunno why either)     2. Add plasticity to Law2_L3Geom_FrictPhys_ElPerfPl, add convenience function to apply local forces
+      1. Clean up Vector6 and friends     2. Create Matrix_computeUnitaryPositive template to be compat between eigen2 and eigen3 (in the future)
+      1. undefine pi in MindlinPhys     2. Add isAspherical() flag to Body     3. Adjust kineticEnergy with PBC (not yet fully tested)     4. Make createInteraction work with PBC     5. Fix getIncidentVelocity with PBC and !avoidGranularRatcheting     6. Add some regression tests related to Cell (not yet fully done)
+      1. syntax hotfix for batch -- thanks, Ema.
+      1. Fix kinetic energy in PBC     2. Add tests to check PBC: Ek, incident velocity with ScGeom (with and without ratcheting), homothetic resize     3. Make it possible to set O.dt=0, for reasons of testing.
+      1. Deprecate NewtonIntegrator::homotheticCellResize in favor of Cell::homoDeform (compatibility interface with warning)     2. Add the possibility of homothetically changing positions rather than velocities; avoid the meanfield/fluctuation velocity jazz at the expense of vel not being time derivative of pos     3. Add PBC tests for the previous variant     4. Add defThreads arg to scons, which, if specified, gives default number of threads for simulations, if not overridden with -j     5. Fix a few example scripts, more work ahead come (please help!)     6. Add regression tests for saving/loading yade objects; on maverick, this makes the unregistered class to re-surface (!!)
+      1. Update the dispatch-torture script.
+      1. Fix laoding of unitialized LawTester
+      1. Disable debug messages from ScGeom in both debug and non-debug (!!) builds
+      1. Fix boost::sertialization class export (changed slightly in boost 1.42, which broke our case); that also solves the issues at maverick     2. Add framework for tracking energies (will be documented at some point), added to Law2_ScGeom_FrictPhys_CundallStrack, see scripts/test/energy.py     3. Convert energy trackers in Hertz-Mindlin to OpenMPAccumulator     4. Make OpenMPAccumulator align storage so that each thread uses one cache line (should be faster)     5. Make OpenMPAccumulator not require zero value pointer (is handled via ZeroInitializer template in lib/base/Math.hpp     6. Make OpenMPAccumulator work transparently with python (it can be used as a regular attribute now), make it boost::serializable as well; it appears transparently as a number in python.     7. Add OpenMPArrayAccumulator, for linear array of values (used in EnergyTracker)     8. Make deprecated attributes with non-g++ compilers (clang); previously, only g++>=4.3 was supported     9. Fix a few example script (not completed)
+      1. (hopefully) fix build with boost::serialization<1.42 broken by previous commit.
+      1. Add warning for missing ForceResetter in NewtonIntegrator (based step forces were last reset)     2. Rename *Spiral*  to *Helix* (suggested by Jan, thanks!)     3. Generalize the post2d module to handle interactions (not just particles)
+      1. Fix intiialization problem in Shop::kineticEnergy (thanks, Anton)     2. Several enhancements of the post2d module     3. Fix a few crashers with deleted particles.     4. Improve utils.facetCylinder
+      1. Add HdapsGravityEngine which reads acceleration from real accelerometer in thinkpads (toy engine)     2. Fix bug in qt4 interface where multi-number entries (Vector3r etc) might have some values zeroed due to wrong order of initial update and signal connects.
+      1. Make clumps subclass of Shape (instead of Body)     2. Favicon in the batch web interface     3. Fix for clang compilation
+      1. Fix examples, delete a few other ones     2. Fix a bug in post2d
+
+==================================================
+yade-0.50.0
+Wed Jun 9 08:30:02 2010 +0200
+
+Anton Gladky (77):
+      Added an example of VTK-recorder using. Thanks Sergei Doroffenko aka Sega
+      Changes in facetBox function to get other facet normals
+      Added import_mesh_geometry function to import mesh files into facets
+      Function import_LSMGenGeo_geometry is added to import into the simulation .geo files, generated by LSMGenGeo libraries. Example is added in ./scripts/test/regular-sphere-pack.py and ./scripts/test/genCylLSM.py
+      Fixes import_LSMGenGeo_geometry and its example
+      Adaptation RockPM and PressTestEngine for material and state classes
+      PressTestEngine is temporarily disabled as it causes YADE crash on start
+      1. TranslationEngine and PressTestEngines are activated     2. regular-sphere-pack.py is updated according to new material class
+      1.VTKRecorder is activated, except REC_CPM
+      1. scale factor is added to ymport.gengeo
+      1. Trivial change scale factor in regular-sphere-pack.py
+      CohesiveStateRPMRecorder base templates are added. This Engine is for calculating     cohesive contacts in the RPM model.
+      1. Created yade.ymport.gengeo() function for importing LSMGenGeo geometry directly to the YADE simulation without intermediate files. See ./scripts/test/genCylLSM.py     2. yade.ymport.gengeo() (import .geo-files function) was renamed to yade.ymport.gengeoFile()     3. CohesiveStateRPMRecorder is now working. (thanks Vaclav)
+      1. "Patch" to fix 490223
+      1. CohesiveStateRPMRecorder now derives from the Recorder
+      1. REC_INTR in VTK changed to save interaction data not only for CPM model.
+      Very trivial fix in utils.py
+      1. In utils.facetBox added 'Defence from zero dimensions'     2. regular-sphere-pack.py is updated due to new names
+      1. Added moveTo und scale parameters for ymport.gmsh function
+      Some syntax fixes: moveTo has been renamed to shift in utils.py and ymport.py
+      ymport.gmsh function was renamed to ymport.mesh one
+      ymport.mesh was renamed back to ymport.gmsh
+      Trivial bug fix 318439
+      1. gmsh.ymport function is fixes to be more universal     2. "Bad" bug #505783 fix
+      Fix bug 505783
+      1. Added utils.facetCylinder function to create arbitrarily-aligned cylinder composed of facets     2. utils.facetCylinder example is added to ./scripts/tests/regular-sphere-pack.py     3. RotationEngine example is added to ./scripts/tests/regular-sphere-pack.py
+      1. utils.facetBox() and utils.facetCylinder() function description where changed according to Epytext format.
+      utils.facetBox() and utils.facetCylinder() description has been formatted to reStructuredText-format.
+      1. vtk-feature is on by default now     2. Added eigen library like a feature
+      1. Eigen check library fix. Thanks Bruno
+      1. Added some more Eigen headers to check in SConstruct     2. Commented the string in py/SConscript which made an error during compiling     3. Added yadeEigen.hpp to make a wrapper for Eigen
+      1. yadeEigen.hpp is added
+      1. Some changes for Eigen migration     2. TranslationEngineEigen to test Eigen library
+      1. Some changes in utils.facetCylinder function
+      1. Convert a RockPM class to YADE_CLASS_BASE_DOC_ATTRS
+      1. Convert Recorder class to YADE_CLASS_BASE_DOC_ATTRS
+      1. Removed TranslationEngineEigen     2. TranslationEngine and PressTestEngine were updated according to a new register standard     2. In SConstruct were added some more Eigen headers to check.
+      1. YADE_CLASS_BASE_DOC_ATTRDECL_CTOR_PY for CohesiveStateRPMRecorder is added, but not activated.
+      1. ForceRecorder added.     2. Some minor changes.
+      initRun=true added to ForceRecorder
+      1. spheresToFile() has been fixed and moved to export file. Do we need "consider=lambda id: True" there?     2. ymport.ascii() was renamed to spheresFromFile; wenjieFormat was deleted there. The function is rewritten, comments are available now.     3. Added export.spheresToFile() and ymport.ascii() examples to regular-sphere-pack.py.     4. In timing.py InteractionDispatcher->InteractionDispatchers     5. Some default values in scons were changed to make YADE compilable with "standard" Ubuntu machine with 4GB RAM: chunkSize=7, jobs=2
+      Rotate function is added to manualWrap
+      RotationEngine parallelized
+      GravityEngine parallelized
+      Some scons changes. Vaclav`s patch
+      1. penetrationDepth() is added to DemXDofGeom
+      1. penetrationDepth() declaration fixed. Thanks to Vaclav.
+      1. NewtonIntegrator - fixes of normalizing null-vectors     2. penetrationDepth() has been deleted from DemXDofGeom
+      Adaptation to Eigen Library
+      Previous commit correction. Thanks to Vaclav.
+      Fix compilation error
+      Orientation parameter is added for ymport.gmsh() function
+      Small changes in ymport.gmsh()
+      Some changes in utils.ymport module due to new Sphinx requirements.
+      Some examples clean
+      Examples cleaning
+      Trivial genCylLSM.py fix
+      Ubuntu 10.04LTS has GMSH version, where medit-mesh format is changed.     It fixes wrong import of newly formatted files.     Back compatibility is saved.
+      1. Quaterion.Rotate() wrapper is added     2. mill.py fixed
+      1. Examples cleaning     2. Code adopting to Eigen library
+      `materialID` property is added to VTKRecorder
+      VTKRecorder changes:     1. clumpIds recorder changed to clumpId     2. materialID recorder changed to materialId     3. ids recorder changed to id     4. Syntax cleaning     5. Default parameter 'all' is added
+      subscribedBodies parameter is added to VTKRecorder
+      Some fixes in VTKRecorder
+      1. Parameter groupMask is added to utils.sphere and utils.facet     2. VTKRecorder. subscribedBodies mechanism was changed to
+      VtkRecorder changes:     1. Velocities of particles are now exported as Vector3 and Length component separately.     2. Added 'force' parameter for facets and spheres (sorry, not good tested yet)
+      Force calculation mechanism is changed in VTKRecorder (Thanks to Vaclav). Experimental.
+      VTKRecorder. force->stress. But only for Dem3DofGeom now
+      1. Some warnings were commented (please, don't leave unused variables!)     2. In Shop created getStressForEachBody method to clean up VTKRecorder a little bit (not tested yet, but compiles)
+      1. VTKRecorder is static now.     2. function ymport.testExt and export.testExt are added
+      Comment parameter is added to export.textExt
+      groupMask parameter of bodies is now exported to VTK-output as `mask`
+      Blocking the crashing string in ElasticContactLaw
+      in ./examples/rotatingCylinder.py encoding is fixed
+      Some changes in examples
+      1. Fixes crash in VTKRecorder, when some bodies are erased
+      0.50.0
+
+Boon Chiaweng (17):
+      BasicPM.cpp hpp BasicPMTest.py in pkg/dem/meta
+      BasicPM @ pkg/dem/meta
+      BasicPM @ pkg/dem
+      BasicPM @ pkg/dem meta
+      local commit
+      local commit
+      Removed BasicPM.cpp and added CundallStrack.cpp. It is a duplication of Law2_Dem3Dof_Elastic_Elastic but written in meta style like RockPM.  It is therefore cleaner and more friendly to a beginner.
+      Comment
+      local commit
+      local
+      local
+      committing files which were not uploaded in last commit
+      committing files which were not uploaded in last commit
+      local
+      Cohesionless Moment Rotation LLaw as implemented by Plassiard et al (2009).  Verified
+      changed Cohesionless Rotation Law to be cleaner
+      added instructions on how to use ContactLaw with TriaxialTest
+
+Bruno Chareyre (102):
+      A flag "neverErase" is added to the contact law to define if it can     erase interactions. This flag can be turned on when another constitutive     law (e.g. capillaryCohesiveLaw) is in charge of erasing interactions.
+      - fix wrong usage of "neverErase" in TTWater     - synchronise versions of ECLaw
+      Fix the path in the warning.
+      Please, never make me do that again!!
+      A (little) bit of cleaning.
+      Fix warnings.
+      And one more back.
+      - fix segfault in test.cpp (testing the triangulation functions)     - adapt the collider to state/material
+      State/Mat fix.
+      Fixed : 2 "unused variable" warnings.
+      - fix the bug on bodies type in CFTriaxialTest     - rename CohesiveFrictionalBodyParameters => CohesiveFrictionalMat     - fix the bias in cloud generation (try and position a sphere of constant radius)     - some more cleanup of the code
+      - update of the documentation
+      Add the missing #include AABB
+      Code using the velocity gradient to define periodic deformations (experimental) + script to test it.     Needs compilation with #defined VELGRAD (currently needs uncommenting "#define VELGRAD" in 4 files in total).
+      Fix some warnings.
+      -Restore default behaviour even with #define VELGRAD, restore default homotheticCellResize=0 and register it. All py scripts should work whatever VELGRAD, except     periodic-triax-velgrad.py (throw without VELGRAD for homotheticCellResize=1).     -Clean code     -Fix mail adress E.C.
+      Make non-proportional scripts really work with VELGRAD :     -Update Hsize when refsize is modified once (this is ugly! needs a cleaner way)     -Adapt size control by periodic engines.     Sorry for this new change in Cell.h. It will not change for a while now, next commits will be in engines.
+      Add a new periodic compressor engine (candidate for replacing/merging with PeriTriaxController). Most important changes :     - stress control using mass     - defines the full stress tensor (not only normal stress for each axis)     - defines strain with logarithm for comparison with goals and postprocessings
+      - merge stiffness/inertia control in PeriTriaxEngine and remove periEngine     - show usage of inertia (commented out) in py script
+      A funny script, and no crash!
+      -Fix the loading path, this example shows how shear create rotations.
+      -A commented suggestion for dispatchers     -Get back r1932 in PIC     -Fix a wrong assignment of max vels in StressController that was causing non-isotropic compression (introduced a while ago when Luc Si. implemented 3D independant     controls probably)
+      Optional porosity in makeCloud, giving a value discards rMean (avoid guessing rMean when you know size and number).
+      -Fix messed comment (save before commit!).
+      Comments.
+      - Rename Poison -> KsOnKn in some preprocessors. Not project-wide : I don't know what laws are used in PHYSPAR'ed files.     - some cleaning in TT code
+      - Add CGAL excpetion in GNU GPL license.
+      rename KsOnKn -> KsDivKn.
+      Revert weird changes from JFJ in TWrapper interface (min/max should not be mandatory in any functions!).
+      I managed to remove the variable while adding the comment. Glad nobody noticed yet...
+      - Remove old files
+      - add insert(Scene& scene) to tesselation wrapper (faster)     - move TWrapper out of namespace CGT and make it a YADE plugin     - move TWrapper sources to pkd-dem/globalEngine, keep different (uncompiled) versions in lib for possible out of tree builds     - some more documentation in TWrapper.hpp
+      - missing files in previous commit     - fix a member's name in TW
+      - Fix : old names used in #includes and code
+      - Add a function KLA::DefToFile() writing the triangulation and deformations to a file     - Use it in MMAnalyser.
+      - Fix read/write details in TriaxialState and few other small fixes     - MMA is now fully operational for strain maps
+      - switch some spaces/endlines
+      Fix compile errors in VTKWritter and KLA.
+      - Fix size range in makeCloud. It was generating an interval twice smaller than expected.
+      Update the documentation. Used with uniform distribution, makeCloud now generates radii between mean-rRelFuzz and mean+rRelFuzz.
+      1. Remove lib/triangulation/TesselationWrapper. No need to keep in Yade files used only for out-of-tree builds + it was confusing to have the same file names twice.     2. Reformat vtk output.     3. Implement more methods to control the input/output of TesselationWrapper, access MicroMacroAnalyser methods via TWrapper interface, return all data in a python array     (still commented).
+      1- move subdivideTriangle in the glNewList section. No reason to do that elsewhere.     2- Suggest using glList even when stripes=false (commented code) for better performance.     Both changes affected by this bug for now : https://bugs.launchpad.net/yade/+bug/509084.
+      - Remove the part of the code that was only a hack to display bodies with broken contacts, and remove some spaces.
+      - Uncomment the line assigning deformation values in python::dict get().     - Add MATRIX3R_TO_NUMPY macro in numpy.hpp
+      -Add missing members declarations (forgot to commit the header with a previous commit)
+      Fix a compile error when openMP is not in features.
+      - Global update of the triangulation lib.
+      - Fix some compile errors.     - Re-implement arbitrary boudaries ids.     - Generalize boundary conditions.     - Clean the code.
+      -disable the independant GL display.
+      - Fix compile errors with cgal in features.
+      - Fix compile error (forgot this one in lastr commit)
+      Flow:     - Implement bz2 read/write for TriaxialStates     - 3rd method for hydraulic force and some optimizations in FlowBS (Ema, I'll let you remove unused code)     - new data in cell_info
+      - Mostly some formatting.     - Compute the new tesselation in Interpolate().
+      - remove files not used in yade.
+      - Comment the includes pointing to out of tree files to prevent compile errors with implicit link.
+      - Fix the bug (r2025 probably) in GSTimeStepper (test of line 28).     - Register timeSteppers.     - numpy : comment and new line at EOF     - TW : fix a warning.     - PTCollider : remove a "using namespace std" in the header.
+      Some changes in the TCE behaviour. Save the state before stopping simulation, and start compression for reloaded files with autoCompression=true.     Please keep intact the behaviour even when the code looks strange, there are reasons behind. I ran 1 week simulations, expecting     saved xml at the end, but got nothing... I've included a fews comments about this.
+      - A few more comments and code cleaning.
+      - Fix an error in max_vel's definition.
+      - Register attributes of the stress controller and of derived classes.     - Make them "global" engines instead of "partial" (and replace "applyCondition" by "action")     - Add a function computing the solid volume of a sphere packing in Shop.
+      - py wrapping for getSpheresVolume (usage : O.getSpheresVolume)
+      - Missing in previous commit and creating compile error, sorry for that.
+      - Some documentation and code cleaning.
+      - Fix syntax error + small changes in the documentation.
+      Fix compile error ifndef YADE_OPENPM.
+      -Register and code cleaning.
+      -Link to the wiki page for general instructions and files download.
+      -One more initialisation in ctor (strain).
+      - Fix : wrong assignnment of friction for boxes. compactFrictionDeg was used in place of boxFrictionDegree. No idea when     it was introduced.
+      - Register TriaxialTest (yes!!).
+      - Remove useless transition returning a LOG_ERROR.
+      - More registering!
+      - Remove unused unregistered engine.
+      - Register, rename, clean code, doccument some attributes.
+      - New names in Attic files (follow-up of r2156, more to come).
+      - Add a "cohesiveFrictional" functor for usage in interaction dispatching (functionally replace the global engine CohesiveFrictionalContactLaw, which is still here and     used in cohesive preprocessor).     - Register "cohesiveFrictional" classes and rename them.     - Some cleaning and a fix in the law for brittle failure.
+      -Use new names.
+      - Some fixes in triangulation. Python array still crashing in TW.
+      - Use new names.
+      - Remove SCG_SCHEAR, clean code and documentation a little bit more.
+      - Take "fuzz" into account for the definition of rMean in the generated distribution.
+      - Update the link to capillary files.
+      - Make the radius of fictious sphere equal to the one of real sphere in box-sphere geometry.     - Implement energy tracing in ElasticContactLaw     - Remove some "#ifdef SCG_SHEAR"
+      - Remove equilibriumDistance and initialEquilibriumDistance from FrictPhys and inheriting code.     - Remove rotationBlocked from TriaxialTest.     - Fix documentation (backticks in pkg/dem/PreProcessor/TriaxialTest.hpp, pkg/dem/Engine/PartialEngine/TriaxialStressController.hpp,     pkg/dem/Engine/PartialEngine/TriaxialCompressionEngine.hpp).
+      - Fix cohesiveFrictional crasher     - Initialise saveSImulation correctly in TCE     - Remove initialKn/Ks assignment Ip2_2xCohFrictMat_CohFrictPhys
+      - Put back Vector3r::Zero()
+      py wrapping for shop::getSpheresVolume(). Used e.g. for computing porosity in a periodic cell.
+      - Use Shop::kineticEnergy in the recorder (adds the rotational term).
+      - Fix strainRate comparisons for the case dynCell=true.     - Simplify the code, removing cellGrow totaly and using gradVel everywhere instead (its time derivative).     - Rmk : I suspect some of those changes have been commited before, then reverted, but I couldn't really spot when/why. Actually, the revert     attempt broke the "dynCell" behavior. This commit should not change anything for dynCell=false. Let me now if you see a difference.
+      - Fix the distance correction in plastic slip.
+      - Compile error (sorry) : matrix(i,k) instead of matrix[i][k]... (couldn't we overload simply define [][] operator for Eigen matrices?)
+      - Simplify equations inside plastic condition of Dem3Dof (1 sqrt instead of 3, less norm()), add a new function that uses a multiplier instead of maxDisp to take     advantage of this new formulation (Vaclav, could you review and tell if we should merge maxDisp/multiplier in one single function with a bool? I didn't want to break any     other part so I didn't touch the previous function).     - Fix a wrong equation in shop::unbalanced force (max is for body force, not contact force).     - hardcode tensor product in PeriIso, as this is instanciating a matrix and it is done for each contact at each step.
+      - Remove one more norm(), return 0 for compatibility.
+      - Fix the plastic dissipation equation in ElasticContactLaw and make plasticDissipation a OpenMPaccumulator.     - Fix the name scaleDisplacementT(Real multiplier), handle the case force=0 correctly (thanks Vaclav).     - Fix mail adress.
+      - Implement scaleDisplacementT(multiplier) for all functors derived from Dem3DOF. This function is only used in     Law2_Dem3DOFGeom_FrictPhys_basic at the moment.     - Fix the undefined scene pointer in ElasticContactLaw.
+      - Register TTWater correctly.     - Update documentation of some classes, reformat a little, and fix (again) some email adresses.
+      1 - stress definition in PeriIsoCompressor was wrong for ScGeom (sign mistake due to double-reverse);
+      Missing files in r2249.
+      This commit complete the implementation of periodicity for incremental formulation, with updated relative velocity across periods.     It has been tested carefully in periodic triaxial tests.     1. updateShearForce is renamed rotateAndGetShear and DOES NOT update shear force any more : this is Law2's job. Two versions are available, for resp. periodic and     non-periodic case so that people don't have to worry about the additional "shift" in function parameters.     2. put the line fs+=ks*dus in laws using the former ScGeom::updateShearForce.     3. Put back Hsize in Cell (I need that each time I write a line in periodicity, really, please don't remove it).     4. The rest is details (fix wm3 incompatibilies, formating, documentation, etc.).
+      - Fix compile error, sorry.
+      - Fix Wm3 build in Dem3DofGeom_FacetSphere.cpp, the Real*Vector had not     been reverted in that file.     - Workaround https://bugs.launchpad.net/bugs/585898.
+      - Implement Cundall-style positions scaling when (homotheticCellResize=2).     - Rename Water=>Capillary (more accurate)     - Register CFTTest.
+
+Chiara Modenese (5):
+      Added constitutive law with Hertz formulation for contact stiffnesses
+      Make penetrationDepth directly accessible through python
+      Removing variable timeStepOutputInterval from the TT, it was useless.
+      Add tangential values for the stiffnesses in HM law so that GSTS can be used (anyway contact forces are computed from the secant stiffness values to avoid numerical approximations). Avoid to store trialFs to the physics functor as it is already referenced. Correct a banal mistake in failure criterion.
+      - Small changes in HM to handle PBC if scene is periodic (same logic as in ElasticContactLaw.cpp)
+
+Emanuele Catalano (16):
+      Add code for flow problem resolution.
+      Updated flow engine files.
+      Made some correction in flowengine files.
+      - Made corrections on flow code     - Class registration via new macros introduced
+      Few corrections in flow files.
+      Forgot to delete some line.
+      - Modified the type of some function in FlowBoundingSphere     - Adapted FlowEngine to that modifications     - Adjusted the use of "currentTes" in FlowEngine
+      - Introduced timing information from engines and functors     - Reorganized the code and cleaned from useless stuff
+      - Verified properly re-triangulation     - Made corrections on Gauss-Seidel break criterion     - Assigned more severe tolerance to permeability computation
+      - Fixed some error due to pointer scene* deletion     - Added functions to write Mplotlib files
+      - Adjustments to the code
+      - Fixed retriangulation problems
+      - Flow Code Maintenance     - Introduced local permeabilities' correction agent
+      - Fixed retriangulation problems
+      - Walls proper identification is no more ID dependent     - New output files for fluid pressure and settlement evolution     - Fixed some warning came out with new compiler version
+      - Fixed errors in walls' identification
+
+Janek Kozicki (4):
+      fixes #571674
+      don't segfault when TriaxialStressController is facing clumps
+      Scene.hpp -> remove obsolete comment     QtGUIGenerator -> wider view on vector fields     TriaxialStateRecorder and TriaxialCompressionEngine -> it was segfaulting with clumps: fix it.
+      was not compiling with wm3
+
+Jerome Duriez (26):
+      Beginning of adapting code about simple shear (to train with bzr almost)     - There are still indeed the YADE_REQUIRE_FEATURE(PHYS_PAR) lines which prevent these files to be compiled.     - There is only one change that will be detected by your news compilings : change of a line in ElasticContactLaw. I corrected a link towards an URL corresponding to "old     wiki"
+      Renaming of all (normally) linked with this famous "ContactLaw1". Thanks to Vaclav for his scripts !
+      Dplt de SimpleShear hors de attic
+      Re-activation (suppression de YADE_REQ...(PHYS_PAR) ) de RockJointPhys, et RockJointLawRelationships
+      - "SimpleShear" was re-introduced in pkg/, instead of attic/
+      (Last ?) renaming of classes linked with "my" contact law. The normal inelasticity is now emphasized in the name, because it is what is specific to these classes. NB : this     contact law takes also into account a moment transfer.
+      Re-writing of classes CinemCNCEngine, NormalInelastictiyLaw (and those linked : NormalInelasticityPhys and Ip2_2xCohFrictMat_NormalInelasticityPhys) according to the macros     replacing former REGISTER_ATTRIBUTES...
+      Move of the line YADE_PLUGIN((...)) of CinemCNCEngine : it was before the "include...", and for Emmanuele it did not compile thus. Moved after the "include".
+      Re-write of CinemKNCEngine according to new macros. Anecdotic changes in CinemCNCEngine
+      Suppressing of commented lines
+      Renaming of Cinem...Engine in an english way :     - CNC = Constant Normal Load => CNL     - KNC = Constant Normal Stifness => CNS     - DNC = Constant Normal Displacement => CND     - DTC = Constant Tangential Displacement => CTD
+      - Correct writing of Disp2DPropLoadEngine : in order to perform tests on a shear box, piloted by dispNormal + k*dispTangential = 0     Compilation enabled by the way.     - Minor syntax changes of doc of KinemCNSEngine
+      - Suppression of CinemCisEngine, which even me almost never used.     - Add of KinemCTDEngine: performs constant tangential displacement (=oedometrical) compressions on the simple shear box     - move of KinemCND from pkg/common to pkg/dem. This Engine does not use really any DEM-specific concept, but I guess it will always be used in DEM simulations, so I thought     it will be more adequate in dem/     - modify of corresponding "include"...     - rewrite of KinemCNDEngine.hpp, with "good" macros
+      - Use of YADE_CLASS_BASE_DOC_* macro family in KinemCNDENgine (it was not in r2082, contrary to what was previously said)
+      - Rename of NormalInelasticityLaw into Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity (I accept sincerely any proposal of shorter file names...)     In fact it is not yet a functor, but I want to try to write it in a more proper way...     - Corresponding changes in affected files     - Details in other files
+      - Rename of NormalInelasticityLaw into Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity (I accept sincerely any proposal of shorter file names...)     In fact it is not yet a functor, but I want to try to write it in a more proper way...     - Corresponding changes in affected files     - Details in other files
+      ANECDOTIC COMMIT     - fix typo in Engine.hpp : "fron" corrected by "from"     I commit this alone, with no other changes, to make clear to everyone that this change to a central part of Yade is really anecdotic...
+      - the code concerning the inelastic normal law is now in files named NormalInelasticityLaw.* instead of Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity.*     The class itself has still the same name (Law2...), but I changed the name of the files for practical reasons, as it seem other people do (files HertzMindlin,     CohesiveFrictionalPM for ex). Tell me if this is problematic
+      Re-write of CohesiveFrictionalMat with YADE_BASE... macro.     It is not one of "my" files but I wanted to use it with Python, so I did it. I hope noone will be offensed.
+      - Add of a script NormalInelasticityTest to test ... the NormalInelasticityLaw (Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity)     Moreover my python problems I had difficulties to obtain "perfect results". I think it is linked to the way un is computed in Ig2_Sphere_Sphere_ScGeom (see for     example this "shift2").     Why not making penetrationDepth directly accessible through python ??
+      - Change of Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity into a real functor instead of an Engine (compilation checked, and that's all)
+      - Run of NormalInelasticityTest, now Law2...NormalInelasticity is a functor => same results as before it seems     - Change of .Length() in .norm() in other scripts, as .Length() seems to be deprecated
+      - One more change of .Length() in .norm()     - check in NormalInelasticityTest.py that the curves are perfect !
+      **** "My" files *****     - Law2_ScGeom_NormalInelasticityPhys_NormalInelasticity is now a functor as it should.     - Related changes in few files     - The script NormalInelasticityTest tests now the tangential component also, and it will normaly soon check the MomentLaw. It illustrates also the various ways of controlling disp$
+      Fix of https://bugs.launchpad.net/yade/+bug/589516 (sorry, the compilation did not crash on my computer when I tried)
+      - Cleaning changes in NormalInelasticityFiles...             =>Add of a new Material storing the info for differences between loading and unloading (related changes)
+
+Luc Scholtes (13):
+      - correction of thickness computation in TriaxialStressController - submission of an updated version of cohesiveFrictionalContactLaw called cohesiveFrictionalPM (more details in CohesiveFrictionalPM.hpp). Tried to follow the new rules for variables declaration with documentation...
+      NEW TRY to add the updated version of cohesiveFrictionalContactLaw called cohesiveFrictionalPM (see revision 2068)
+      SORRY FOR THE REDUNDANCY... updated comments in cohesiveFrictionalPM.hpp to be consistent with the computation
+      correction of few bugs in CohesiveFrictionalPM
+      fix almost all of the classes related to CapillaryCohesiveLaw (except TriaxialtestWater) to suit YADE_CLASS_BASE_DOC_* macros. Everything compiles but the efficiency of the code needs to be tested.
+      This version fixes a bug which produced FATAL ERROR when 2100 version was launched. SORRY.
+      Removed CapillaryRecorder and ContactStressRecorder. Renamed SimpleElasticRelationshipsWater to Ip2_FrictMat_FrictMat_CapillaryLawPhys (can probably be removed as it is identical to Ip2_Frictmat_FrictMat_FrictPhys...) and CapillaryCohesiveLaw to CapillaryLaw. Modified all Capillary related files.
+      some updates of capillary files. Rk: all must be tested!
+      -updates for capillary files (doc in Law2_..._Capillarity and changes in CapillaryStressRecorder)\n\n -add a feature to CohesiveFrictionalPM (creation of CFpmState to stock number of broken bonds)
+      fix compiling error in previous rev (but some warnings linked to TriaxialStressController.hpp)
+      new line added at the end of CohesiveFrictionalPM to avoid corresponding warning + cleaning
+      some updates in CohesiveFrictionalPM. Unfortunately, the law still does not work in macroscale simulations...
+      CohesiveFrictionalPM update - add normalization of a quaternion + other few changes
+
+Luc Sibille (2):
+      I added the (updated) ThreeDTriaxialEngine, and it is also to see if we managed to make bzr working through an ssh tunnel
+      - update of ThreeDTriaxialEngine with YADE_CLASS_BASE_DOC_ATTRS_CTOR_PY \n - modified ThreeDTriaxialEngine to be able to perform internal compaction (growing particles) \n - modified TriaxialStateRecorder to be able to use it with ThreeDTriaxialEngine
+
+Sergei Dorofeenko (37):
+      1. virtual facets don't have a BoundingVolume (flag noBoundingVolume in utils.facet)     2. new engine ResetRandomPosition (another name?). This engine reset the body position to a random position in specifed (by virtual facets) region.     3. example of using of ResetRandomPosition engine: scripts/test/ResetRandomPosition.py
+      Fix [Bug 485209]
+      1. adapt VTKRecorder to body removing     2. fix bug with colon separated paths in a profiles.
+      fix bug in scons.profile*: now CPPPATH and LIBPATH is a simple string (not a list) with colon separated paths.
+      Adaptation of viscoelastic model classes and some others to new material/state classes:     1. Add a meta package ViscoelasticPM, which now contains all classes for viscoelastic model.     2. Fix STLImporter, getViscoelasticFromSpheresInteraction     3. Fix bug in utils.sphere, utils._commonBodySetup
+      Adaptation examples/STLImporterTest.py for new viscoelastic classes.
+      Adaptation NewtonDampedLaw to material/state classes
+      Add to NewtonDampedLaw a modified leap-frog algorithm for accurate integration of rotation equation. This is intermideate commit: new algo seems to work, but needs some coupling with previous code.
+      merge clump branch with trunk
+      Add some tests for clumps
+      Fix bug with import facets from stl
+      small optimization of acc.rot.alg; fix velocity and add angVel in VTKRecorder."
+      1. handle DOFs for new rotation alg.; 2. add new clump-hopper-viscoelastic script
+      merge with clump branch:     1. handle DOFs for new rotation alg.;     2. add new clump-hopper-viscoelastic script;     3. small optimization of acc.rot.alg; fix velocity and add angVel in VTKRecorder.
+      Intergate new acc.rot.alg. to code. Intermediate commit.
+      Rename prevAngMom to angMom
+      revert NewtonDampedLaw to r1817 and rename prevAngMom to angMom
+      Integrate new rotate alg. into code. Intermideate commit
+      integrate a new acc.rot.alg to NewtonDampledLaw framework
+      remove log_trace from NewtonDampedLaw::lfRigidBodyRotate
+      Integrate new rotate integrator into the NewtonDampedLaw framework
+      NewtonDampledLaw: rename functions and remove duplicate code as suggest Vaclav (thanks!)
+      1. NewtonDampedLaw: rename functions and remove duplicate code as Vaclav suggest  (thanks!)     2. Add spheres ids to VTKRecorder
+      1.fix link with GLU for QGLViewer; 2.fix header for Shop; 3.Add clumpids to VTKRecorder
+      Update ResetRandomPosition
+      STLImporter returns a vector imported facets instead of adding them directly     utils._commonBodySetup does not reset body id.
+      small update examples/STLImportedTest.py
+      Fix bug #531394
+      refixing bug #531394
+      Reanimation of some examples; fix bug in ymport.stl
+      fix bug in utils.py; consistent signs in ViscoelasticPM
+      fix typo
+      small modify of STLImporterTest.py
+      Fix shear direction damping as Chiara Modenese suggest.
+      And more fixing damping shear direction
+      yet more fixing ViscoelasticPM
+      Add doc for utils.getViscoelasticFromSpheresInteraction
+
+Unknown (5):
+      1. Make all paths given to scons on the command line COLON separated rather than space separated. BACKWARDS INCOMPATIBLE if you used scons in scripts (doesn't affect saved profiles). (Rationale: impossible to save the option in shell and later use it due to quoting issues)     2. Optionally set PATH as argument to scons (you can use scons PATH=$PATH as well)     3. Enhance VTKRecorder to record interactions andsome data on them.
+      1. Fixes in scons for qt path (hopefully OK now); remove VTKINCDIR, use CPPPATH which alread exists     2. Improve yade-multi web interface (keep it running if --http-wait specified; show total time at the end)     3. Fixed in VTKRecorder and CPM
+      1. Enhance yade-multi to query running jobs for status (percentage, step number etc), to keep connections, allow more fine-grained thread number control     2. Add some more cpm data (like sigma, sigmaMean, tau)     3. Enhance vtkrecorder to save those cpm data     4. Don't set matplotlib backend in yade.plot automatically, since ti breaks in headless environments     5. Add O.tags.has_key
+      A typo in SConstruct.
+      getClassIndexStatic() member turned to public.
+
+Vincent Richefeu (2):
+      - Increase DISTANCE_MAX     - use gcc-4.0 (4.3 doesn't work correctly on mac snow leopard)
+      Rewrite KinematicLocalisationAnalyser::DefToFile for vtk format.
+
+Václav Šmilauer (264):
+      1. Hopefully fix vtk libs in SConstruct (?)     2. Add compress parameter to VTKRecorder (doesn't seem to make any difference in the output files, however...?)     3. Add CPM damage to VTKRecorder     4. Move spiralProject to Shop, to be usable from within c++     5. Add a 2 functions to compute 2d and 3d stresses to yade.eudoxos
+      1. Enhance VTKRecorder to save more CPM data     2. Add confinement storage to CpmMat; CpmStateUpdater now computes that.     3. Add method to get aabb of Gauss-smoothed domain.
+      1. Update examples/concrete/uniax.py and add CpmPhysDamageColorizer to renamed classes dictionary with warning.
+      1. Use colon as separator to all path parameters to scons (PATH, CPPPATH etc), to avoid shell escaping insaneness. NOT BACKWARDS COMPATIBLE if you call scons from scripts with multiple paths. Scons.profile-* files will work.     2. Add PATH parameter to scons, for things like pkg-config that we call during the configure stage (you can propagate whole path by saying scons PATH=$PATH)     3. Extend VTKRecorder to record interactions as well; add some cpm-related parameters.     4. avgStress is now Vector3r     5. Fix openGL-less builds (missing parenthesis in core/SConscript)
+      1. Remove VTKINCDIR (duplicates already existing CPPPATH)     2. Fix handling of QTDIR (hopefully?)     3. Yade multi now displays total time at the end, takes --jobs (long option for -j), and the http server keeps running as long as the summary page is requested if run with --http-wait     4. Fix computation of sxx, syy, szz in cpm
+      Yade-multi, VTKRecorder enhancements, &c
+      1. Fix compilation on nfs (unable to delete .nfs* files)     2. remove debug message from the info socket     3. Make SpiralEngine assign velocities to (nondynamic) bodies so that when velocityBins are used, contacts are not missed.
+      1. Add example of generating randomly-packed tunnel-like scene (6 lines of python code).     2. Add explicit check for physics dispatchers in InteractionDispatcher even in the optimized build.
+      Fix what seems like bug in is2is4scg...
+      1. Set timeout on infosocket     2. Add velocity bins to uniax.py example
+      1. New yade.post2d module for 2d post-processing (raw/smooth scalar/vector field plots), with docs and examples     2. Add epydoc brief documentation to all python modules     3. Change constructor of GaussAverage in python to take always the relThreshold parameter
+      1. New BodyVector written from scratch: supports body removal, intelligently allocates new ids at insertion. Is now default; a few pecent faster than BodyRedirectionVector which will be removed after a while.     2. Remove BodyAssocVector     3. Remove mass-spring for good     4. Add body removal support to InsertionSortCollider     5. Add empty body support to NewtonsDampedLaw, GravityEngine, OpenGLRenderingEngine and a few others     6. Wrap body removal from python     7. scripts/test/remove-body.py to demonstrate continuous dynamic body addition/removal.
+      1. Remove InteractionHashMap
+      Add 'deprecated' feature which guards code pending removal.     To compile those, you have to add 'deprecated' to features.
+      1. Add infinite axis-aligned planes (Walls), interacting with spheres; I would like to deprecate Boxes soon. scripts/test/wall.py show the functionality, utils.wall create ready-made body.     2. Add Walls to triaxial test as an option to facets and boxes.     3. Unbreak ef2_Spheres_Elastic_ElasticLaw (passing neverErase broke virtual function resolution -> exception)     4. Make Simulation controller always open, closing it quits yade. Generator accessible from controller; player must be accessed from controller by opening generator, closing it (where by main window apprears), then opening player.     5. Change prototype for InteractingGeometry functors, to get some information about the openGL context (scene radius and center, ATM).
+      1. Remove all deprecated classes as described in the last commit.     2. Start flagging code needing GeometricalModel by YADE_REQUIRE_FEATURE(shape). Once it compiles without shape, affected classes will be removed.
+      Remove GeometricalModel from everywhere, unless you compile with the 'shape' features. Many classes had to be disabled; those who care about them are expected to fix them so that they don't rely on GeometricalModel. I will post on the mailing list on how to do that.
+      Trivial fix. But shape feature is no longer supported, fix such things yourself next time, if you need them.
+      1. For each interaction, save when it was last seen by the collider. Adapt SpatialQuickSortCollider for that (remove Interaction::cycle), it saves 2 loops over interactions. The deletion is triggered in InteractionDispatcher/InteractionGeometryDispatcher afterwards. This infrastructure is neede for the grid collider.
+      1. Flatten file hierarchy a little bit.     2. Add MetaEngine{1,2}D and EngineUnit{1,2}D to the MetaEngine.hpp and EngineUnit.hpp instead of having them in separate headers.
+      Remove 'deprecated' features from SCons files since they're not in the codebase anymore.
+      1. Change syntax of python docstrings to restructured text instead of epytext (for future compatibility)     2. Workaround CPPPATH error saving option     3. Make SpatialQuickSortCollider skip boundless bodies     4. Fix rendering bodies with names (i.e. selectables)
+      Initial commit of new Material and State classes that will replace PhysicalParameters in the future. No changes in functionality.
+      1. Fix crash when removing bodies with velocityBins and MetaInteractingGeometry2AABB     2. Add option to draw normals for InteractingFacet (off by default); see scripts/test/remove-body.py (commented)
+      Fix compile error introduced in last commit.
+      Rollback point for adding YADE_REQUIRE_FEATURE(physpar) everywhere.
+      rollback point 2
+      Build core only OK (no gui,python,extra)
+      NewtonsDampedLaw, Clumps, SpatialQuickSortCollider compile.
+      Checkpoint before replacing PhysicalParametersMetaEngine and friends
+      REMOVED PhysicalParameters, add Material and State classes.     DISABLED many (most) plugins, I ask the respective authors/users to fix them.
+      1. A few small leftovers.
+      1. Initialize dnesity to 4800 in CpmMat     2. Add warning if passing obsolete physParamsClass to utils.{sphere,facet,box,wall}     3. Add Material.cpp to ensure virtual functions work properly (not sure if they didn't, but now they do)     4. Fix uniax.py
+      1. shared materials; see scripts/test/facet-sphere.py and also py/tests/omega.py.     2. added some regression tests for Omega     3. python iterator over O.bodies silently skips erased bodies now     4. finally rename all MetaBody::transientInteractions to MetaBody::interactions
+      1. Fix uninitialized memebrs in Material (thans Anton)     2. Add equivalent of dispSe3 to OpenGLRenderingEngine directly     3. Fix pack.py
+      1. Make the optimized build default (as per Sega's suggestion); it also sets linkStrategy to monolithic (is that OK?)     2. Add some vtk dirs to default CPPPATH     3. Fix periodic boundaries in OpenGL & remove some YADE_SHAPE stuff from there.     4. Fix some warnings     5. Fix pack.randomDensePack **kw     6. Adapt examples/concrete/uniax.py to shared materials
+      1. Add Material::newAssocState creating State instance that is supposed to go along with given material; wrapped in python. It is used by utils.{sphere,facet,box,wall} functions now (hence by most or all body-construction things in python)     2. Fix py/post2d.py and examples/concrete/uniax-post.py     3. Fix crash for material-less bodies in scripts/test/regular-sphere-pack.py
+      1. Move import functions from utils to yade.ymport (sorry, import is python keyword and cannot be used ;-) ). yade.utils contains proxy function that warn and call the implementation in ymport.     2. Added virtual book Material::stateTypeOk(State*).     2. MetaBody checks that material--state couples are OK at the first run (like initializers, but not listed among initializers...); throws on error. Added this to regression tests.     3. O.step() now calls MetaBody::moveToNextTimeStep() directly, instead of spawning worker for 1 iteration.     4. Adapt stl import test to yade.ymport (the facets look weird, though?)
+      (forgotten: remove prototypes for incrementCurrentIteration and incrementSimulationTime that are no longer used from Omega.hpp)
+      Regression check that NULL state throws (if there is a material) as well.
+      1. Merge PeriodicInsertionSortCollider into InsertionSortCollider (periodicity detected automatically); PeriIsoCompressor moved to a separate file.     2. Initialize GranularMat properties (such as posisson't ratio) to arbitrary but non-zero values (avoids NaN's and disappearing bodies, bug #488100)     3. Re-enable clump logic in NewtonsDampedLaw (was #ifdef'd out), fixes bug #488100     4. Change prototypes of Shop::sphere and other methods, to take advantage of shared materials.     5. Change Collider::probeBoundingVolume prototype to return vector<body_id_t> instead of storing it in the collider itself.
+      1. Enable velocityBins in pack.randomDensePack for periodic compression, speedup of about 13% (quite small?)
+      1. Fix Bruno's compile error pkg/dem/meta/Shop.cpp:281: error: operands to ?: have different types     'boost::shared_ptr<Material>' and 'boost::shared_ptr<GranularMat>'     2. Fix warning's from out-of-order initializer in State.
+      1. add #error to DataRecorder so that people don't use it, with explanation.     2. Add Recorder, deriving from PeriodicEngine and taking care of opening file.     3. Derive TriaxialStateRecorder from Recorder. (Anton: do the same for CohesiveStateRPMRecorder, I don't want to edit it since the version would probably diverge if you work on it now)     4. Fix PositionOrientationRecorder (is that one being used at all?)     5. Rewrite Singleton (to work accross different translation units)     6. Remove qt3 from 'exclude'. Enabling opengl requires qt3 automatically now.     7. Remove lib/sqlite3x, which was only used in noew-removed SQLiteRecorder     8. Experimental main in python (not fully functionaly for now)
+      1. Re-enable temporarily commented code.
+      1. Re-enable PeriodicPythonEngine and a few other YADE_REQUIRE_FEATURE(PYTHON) that I overlooked     2. Make the python main program work with plugins (RTLD_GLOBAL in both DynLibManager and python); doesn't work with openmp and opengl (investigation ongoing), looks promising otherwise. The program is called yade-trunk-dbg-py and such; not all options of the c++ main is implemented (yet?).     3. (In previous commit) Remove loading preferences.xml, just use QtGUI if possible and enabled, otherwise "only" python console.
+      1. Remove rests of Preferences.     2. Remove HUP emergency saving (was disabled since long anyway)
+      1. Add chunkSize option that determines how many plugins will be compiled together. (orthogonal to linkStrategy, that one determines how many will be linked to together). Should avoid issue with monolithic link on machines with less RAM; allows parallel compilation of plugins on machines with lots of RAM. Defaults to 20.     1. Re-enable crash warning in pyboot.cpp
+      1. Remove implementation of global functions from Tetra.hpp to Tetra.cpp (gave errors on linking multiple objects including that same header.)     2. Add Body().geom as alias for (now deprecated?) Body().mold
+      Make YADE_DEBUG work as expected (set debug leverl with log4cxx); avoid possible crash when logging during early log4cxx initialization.
+      1. Change prototype for InteractionGeometryMetaEngine to receive const State& instead of const Se3r&. Add const Vector3r& shift2 for peroioditiy (ZERO by default).
+      1. Fix Sega's and Anton's bug which was introduced in r1820 (keeping return from older version, instead of continue :-| )
+      1. Rename EngineUnits to Functors, MetaEngines to Dispatchers (only the 4 types that we will keep). Python scripts should not be affected, except for raising deprecation warnings for the old names     2. Fix corner cases in deprecated names logic in python
+      1. Rename MetaBody to World (it had to be done at some point, regardless of what the name is)     2. Add Engine::world, set before every call in moveToNextTimestep     3. Change names of a few related methods
+      1. Fix "rootBody" in FileGenerator saver.
+      1. Add scan&replace scons builder     2. Get libstdc++ path from the compiler, embed it in main.py; it runs fine     3. Fix temporary filename in Omega (forgotten dir separator)
+      (doesn't compile, will fix in a few minutes; need to transfer between computers now) cleanup of python boot code
+      1. Add yade.system module containing most startup things     2. yade-trunk-py usable now; startup is _much_ faster than the c++ main :-) (lazy linkage?). If everything works well, the c++ main will be deprecated soon (though still functional)
+      1. Add YADE_LINK_EXTRA_LIB so that plugin can request to be linked with additional library (used in MicroMacroAnalyser)     2. Add -frounding-math when compiling with CGAL     3. Lot of reorganization of python code. Yade is now fully usable (it seems) with the python main (yade-trunk-py), and also lodable from pure python
+      1. Fix assertion failure in NewtonsDampedLaw triggered by clumps in debug mode (typo)     2. Fix periodicity for Dem3Dof classes     3. Don't put things to __builtins__ in python, from yade import * will import wrappers as necessary into current global scope instead.     4. Expose Omega as yade.wrapper.O instance in the c++ code directly.
+      1. Error out if adding the same body twice from python     2. First steps for user tutorial (please do not edit now)
+      1. Move TesselationWrapper to lib/triangulation.     2. Main program (e.g. yade-trunk) is now in python; the old is yade-trunk-cxx. Most functionality should be the same, but please do report undesired behavior.     3. Adjust ipython configuration to be more friendly.     4. Improve default log4cxx output format     5. rename yade.PythonTCPServer to yade.remote     6. Remove annoying "INFO: sanitize failed" warnings     7. SimulationController now closes on escape or any function key.
+      1. Rename World to Scene, as Bruno suggested. It feels better, we are no gods to create worlds...     2. Rename BoundingVolume to Bound; BoundingVolumeDispatcher to BoundDispatcher; dtto for Functor     3. The 'shape' feature was renamed to 'geometricalmodel' feature to not conflict with the following:     4. Rename InteractingGeometry to Shape     5. Rename ef2_*_Sphere_Dem3DofGeom to Ig2_*_Sphere_Dem3DofGeom     6. Rename ConstitutiveLaw to LawFunctor, ConstitutiveLawDispatcher to LawDispatcher
+      1. Fix many warnings in various parts of python code related to renaming.
+      1. Rename data members to follow types: Body::boundingVolume → Body::bound, Body::interactingGeometry → Body::shape. Old names are still present as references with deprecation warning by the compiler. Regression tests passing.
+      1. make realVersion to be bzr revision     2. Re-enable Controller at startup always     3. Always rebuild python template files invisibly, since they wouldn't spot revision change otherwise (very fast)
+      1. Fix the plot example.
+      1. Add PeriTriaxController, with sample script in scripts/test/periodic-triax.py; works perfectly     2. Fix stress sign in PeriIsoCompressor (summing abs stresses still broken)     3. Handle periodic boundary moves with velocityBins     4. Rename ncb to scene in NewtonsDampedLaw (gradual change)
+      1. Fix (hopefully) an issue with log4cxx 0.9 reported by build robot.
+      (Python 2.5 fix for robot)
+      1. Enhance PeriTriaxController for controlling strain/stress in periodic simulations; stress and strains appear to be physically correct now (however, see https://bugs.launchpad.net/yade/+bug/493102)     2. Add examples/concrete/periodic.py, showing uniaxial/biaxial periodic loading. Results are awesome.     3. Fix stiffness computation for Cpm.     4. Add (unpolished) pack.randomPeriPack for generating periodic packings.     5. Add some sphinx doc files (no contents, just skeleton).
+      1. Change prototype to InterationGeometryFunctor (see https://www.yade-dem.org/index.php/API_Changes)     1. Write some docs
+      1. Fix PeriTriaxController example
+      1. Refactor parameter table support (one reader class)     2. Fix yade-multi, add detection of regular exit with log4cxx crash at exit     3. Add --nice option to main.py     4. Make O.exitNoBacktrace output either "Yade: normal exit." (magic for OK exit, detected by yade-multi for instance) or "Yade: error exit".
+      Fix reading parameters from table (thanks Anton for patience)
+      Hopefully fix yade-multi https://bugs.launchpad.net/yade/+bug/493686 now? Please confirm.
+      1. Add Scene* Functor::scene, update it from all dispatchers at every step.     2. Add NewtonsDampedLaw::homotheticCellResize (0,1,2 for disabled, velocity or position update) (not tested at all)     3. Start removing Scene* ncb and Scene* rootBody etc from Engine::action as I stumble accross them. Please do the same, Engine::scene can be always used instead.
+      1. Renames as discussed on yade-dev: NewtonsDampedLaw -> NewtonIntegrator, StandAloneEngine -> GlobalEngine, DeusExMachina -> PartialEngine. Regression tests ok.     2. Rename the confusing scons 'pretty' option to 'brief'. Profiles will be updated automatically, both options are valid for now.
+      1. Finish renaming DeusExMachina -> PartialEngine
+      1. Enable search engine in doxygen.
+      1. Fix https://bugs.launchpad.net/bugs/495358 (seems like concurrent access with Anton ;-) )     2. Add mask check to the collider     3. Initialize Body::id with Body::ID_NONE rather than -1     4. First attempt at doctest (for utils.sphere)
+      1. Don't call CreateIndex in Materia::Material (see https://bugs.launchpad.net/yade/+bug/495437)     2. Add dipl and rot methods to body, for querying displacement and rotation relative to reference position and orientation (moved from the python wrapper).     3. Add .classIndices to return list of class indices from the instance up to the top-level indexable from python.
+      1. Rename Sphere (as GeometricalModel) to SphereModel (to facilitate InteractingSphere -> Sphere soon)     2. Initialized density to 1000 in Material, to avoid weird explosions     3. Add scripts/tests/triax-basic.py, a TriaxialTest in python
+      1. A few renames: Facet → FacetModel, Box → BoxModel, GLDrawSphere → GLDrawSphereModel, GLDrawBox → GLDrawBoxModel     2. Remove shadowVolume functors, since they were not used anywhere in OpenGLRenderingEngine
+      1. Rename GLDraw* to Gl1_*     2. Scene no longer inherits from Body, some of its properties are "emulated" (bound, shape). Not sure if Shape is really needed, perhaps for periodicity things etc in one place? It can be in the class itself just as well.     3. Remove MetaInteractingGeometry2AABB from all files (no longer needed); backwards-compatibility with python assured.
+      Hotfix for twice-renamed Bo1_SceneShape_Aabb.
+      1. Add some introspection interfaces to Indexables and dispatchers, as needed for Programmer's manual (https://yade-dem.org/sphinx/prog.html#multiple-dispatch), remove dead code, some cleanups.
+      1. Move lib/triangulation stuff to CGT namespace as suggested by Bruno in https://lists.launchpad.net/yade-dev/msg02658.html
+      1. Rename SpheresContactGeometry to ScGeom     2. Rename corresponding functors:     InteractingBox2InteractingSphere4SpheresContactGeometry -> Ig2_Box_Sphere_ScGeom     InteractingFacet2InteractingSphere4SpheresContactGeometry -> Ig2_Facet_Sphere_ScGeom     InteractingSphere2InteractingSphere4SpheresContactGeometry -> Ig2_Sphere_Sphere_ScGeom
+      1. Rename InteractingBox -> Box, InteractingSphere->Sphere, InteractingFacet->Facet.
+      1. Fix renaming conflict (InteractingSphere->Sphere shadowed by older Sphere->SphereModel)
+      1. use stderr for standard startup messages     2. add scripts/test/dispatch-torture.py for visualizing dispatch matrices in html. Add support HTML.py module from the web.     3. call cleanupTemps if exiting; we should leave cruft in /tmp/yade-* only if crashing before trying to exit (unusual)
+      1. Make MetaInteractingGeometry2AABB warning more descriptive.
+      1. Remove Scene::{cellMin,cellMax}, use just Scene::cellSize; update all related code and scripts     2. Change python interface: Omega.periodicCell=Vector3 (only size, no more min/max)     3. Add (not yet used) core/Cell.hpp header. Will be accessible as Scene::cell, once used.
+      1. call centerScene() in GLViewer ctor, bind C to centerScene if no body is selected (was deactivated most likely by mistake, bzr annotate thinks it was me...!?). This should fix bug reported by Chiara for TriaxialTest with UpperCorner=Vector3(12,12,12)
+      Fix missing import in py/post2d.py
+      1. Use Scene::cell instead of Scene::cellSize; update all code     2. Have O.cellSize (instead of O.periodicCell; add wrapper with warning) and add O.cellShear     3. Add scripts/test/periodic-shear.py (purely for showing the display things, no interactions etc yet!)
+      Do pending renames:         *  AABB → Aabb         * Interacting{Box,Sphere,Facet}2AABB → Bo1_{Box,Sphere,Facet}_Aabb         * Wall2AABB → Bo1_Wall_Aabb         * GLDrawAABB → Gl1_Aabb
+      1. Finish implementation of sheared periodic space.     2. Fix bug which might have caused missed asymetric (Facet - Sphere, for instance) in periodic space, when interaction order was reversed.     3. Add possiblity to pass a callable to utils.spheres' material parameter, to avoid shared material properties when called indirectly (pac.randomDensePack)     4. Remove Aabb::{center,halfSize}, since they were used only rarely and were redundant.
+      1. Remove abstract RenderingEngine     2. Remove SceneShape and related classes
+      1. Add python2.5 relative module import workaround (hope it works)     2. Move some python accessors from yadeWrapper to their respective classes     3. Half work on periodic cell scaling in the OpenGL renderer
+      1. Add ctor priorities, but only for gcc >= 4.3 (for early logging and plugins; necessary for the next point)     2. Register Functor core class in the factory (will be done for the rest soon, see https://bugs.launchpad.net/yade/+bug/498337)     3. Wrap Matrix3 class in python, write unit tests for it.     4. Re-enable ForceEngine and FacetTopologyAnalyzer     5. Update a few scripts in test/scripts
+      1. Implement arbitrary strain for periodic cell (see scripts/test/periodic-shear.py). Most code adapted accordingly.     2. ClassFactory now logs to cerr if YADE_DEBUG env var is defined, not otherwise. This avoids initialization order of plugins vs. ClassFactory itself
+      1. Fix weird behavior reported by Luc at https://lists.launchpad.net/yade-dev/msg02794.html (numerical issue)     2. Fix crash at body selection (wrong dispatcher arguments)     3. Add warnings about what Luc observed, should it happen again.
+      1. Allow spaces after YADE_REQUIRE_FEATURE (before parenthesis) and around its argument inside parentheses.
+      1. Fix https://bugs.launchpad.net/yade/+bug/499697 (sorry, Luc)
+      1. Rename BexContainer to ForceContainer, O.bex to O.forces etc. Mostly backwards-compatible in python.     2. Add Shop::flipCell which changes shear without affecting interactions (by integral steps), demonstrated in scripts/test/periodic-shear.py (not yet fully tested, but doesn't crash ;-) ) [BROKEN due to recent VELGRAD changed]     3. Add InteractionsContainer::eraseNonReal
+      (Fix unsignificant hasShear mistake in Cell, clean old code there)
+      1. Make python interaction iterator return only real interactions. (TODO: regression test & check scripts for compat)
+      1. Add cell strain rate integration to the Scene loop.     2. Remove Cell::Hsize and friends, remove VELGRAD; unify both approaches.     3. Update some scripts, fix Shop::flipCell (demo in scripts/test/periodic-triax-velgrad.py)
+      1. Use Cell::trsf instead of Cell::strain (which really meant trsf-Id)     2. NewtonIntegrator now precomputes cellTrsfInc for the current step, instead of using Cell::getTrsfInc getting increment from the previous step (!?)     3. Update scripts and other code.
+      1. fix size computation in cell     2. Save history at exit, incremental history search with arrows up/down     3. Don't return false in Ig2_Box_Sphere_ScGeom for existing intr
+      1. Separate rotation&shear from scaling in cell. Fix possible error (but also possibly not?) error in collider. Spheres' Aabb's are still probably not correctly enlarged.
+      1. Forgotten new file.
+      1. Re-enable error check in InsertionSortCollider, make the explanation clearer     2. Fix sphere's Aabb (hopefully) (Bruno, could you check that?)     3. Worker thread now catches exception from simulation and O.wait() (or O.run()) will rethrow it; avoids crashes from exceptions.
+      1. Preliminary attempt at https://blueprints.launchpad.net/yade/+spec/c++-numpy-arrays (for postprocessing and similar), example in eudoxos.testNumpy     2. SpherePack::makeCloud can be asked for negative number of spheres (= as much as possible)
+      1. May fixes for errors found when running larger simulation.     2. Move material properties from Ip2_CpmMat_CpmMat_CpmPhys to CpmMat itself.     3. Some reverts in PeriIsoCompressor (log strain and usage of refSize)
+      1. Add clone function to python objects, taking optinal python dictionary with changed attributes     2. Fix PeriIsoCompressor for examples/concrete/periodic.py     3. GaussAverage relThreshold argument is now optional in python, as it is in c++ (again)
+      1. Fix examples/concrete/periodic.py     2. Fix (partially) scaling of periodic cell resize in OpenGL
+      Implement https://blueprints.launchpad.net/yade/+spec/sphere-gl-stripes (weird lighting things). Must be enabled via "Gl1_Sphere(stripes=True)" in python.
+      1. Fix SpherePack().makeCloud() in python
+      1. Remove some old docs     2. Attempt at update-alternatives     3. packaging updates
+      1. FIx core class registration in the factory (fixes inheritance info in python for such classes)     2. Fix debian packaging, use update-alternatives
+      Bulk of consistency renames (hopefully last for long time to come):     * ElasticMat → ElastMat     * GranularMat → FrictMat     * NormalInteraction → NormPhys     * NormalShearInteraction → NormShearPhys     * ElasticContactInteraction → FrictPhys     * SimpleElasticRelationships → Ip2_FrictMat_FrictMat_FrictPhys     * ef2_Spheres_Elastic_ElasticLaw → Law2_ScGeom_FrictPhys_Basic     * Law2_Dem3Dof_Elastic_Elastic → Law2_Dem3Dof_FrictPhys_Basic
+      1. Document PeriodicEngine (doxygen comment in the header)     2. Fix runtimePREFIX vs. PREFIX in yade-multi (only affects packages, not regular builds)
+      1. Fix epydoc generation with python main (thansk Anton for th yade-cxx hint!)     2. Expose O.tmpFilename returning unique filename in temporary dir that is deleted at exit     3. Do not import yade.plot at startup, since it initialized matplotlib to TkAgg, which needs $DISPLAY (and fails later if no $DISPLAY exists, i.e. for headless simulations)     4. Fix shear stress computation in CpmStateUpdater
+      1. Fix numpy_boost and TesselationWrapper     2. Start moving python registration code inside classes themselves. That should allow proper class hierarchy in python as well as (faster) object.attribute access instead of hacky object['attribute']. Please report errors you might encounter.     3. Resurrect Dem6DofGeom, doesn't work for now.
+      1. Add new-style python wrapper to most classes that were previously wrapped in yadeWrapper.cpp. Let me know if this breaks something for you.
+      1. Add YADE_CLASS_BASE_DOC_ATTRS and YADE_CLASS_BASE_DOC_ATTRS_PY macros for python wrapping, including documentation (e.g. https://yade-dem.org/sphinx/yade.wrapper.html#yade.wrapper.Body). All classes should be converted in the future.     2. Remove global functions (diagDiv, componentMinVector, ...) from the wm3 wrapper
+      1. Add new python wrapper to a few more classes.     2. Make python's executable have real python path in the #! line at the beginning (that is, the same python interpreter used for running scons)
+      1. Fix body_id_t typedef (add includes)     2. Check body id when accessing ForceContainer from python     3. Override prefix in config.py already if YADE_PREFIX is set
+      1. Fix python docstring options for boost <=1.35 (hopefully)
+      1. Classes now warn at startup if they don't register &document attributes with YADE_CLASS_BASE_DOC_ATTRS & friends.     2. Add YADE_CLASS_BASE_DOC_ATTRDECL_CTOR_PY macro that declares, documents and initializes data members.     3. Add NaN to lib/base/yadeWm3Extra.hpp, which is std::numeric_limits<Real>::signalingNaN()     4. Fix syntax in a few python modules, away from the old obj['attr'] to obj.attr
+      1. Add detection & mention workaround for https://bugs.launchpad.net/ubuntu/+source/boost1.38/+bug/457688     1. Convert a few more classes to YADE_CLASS_BASE_DOC_ATTRS
+      1. Re-disable CInem{CNC,KNC}Engines (sorry, Jerome)     2. don't compile cxx main anymore; delete the executable from installation if present     3. Add help for --threads equali with OMP_NUM_THREADS
+      1. Moved all (most) unused files to attic/* (such as those that have YADE_REQUIRE_FEATURE(PHYSPAR);). We will not keep them there indefinitely (they are in the history), though. If you want to re-enable some classes, fix them and move them back (using bzr mv) to pkg/*. If I inconsciously moved some file that was being used, please fix it yourself (it is unlikely, though).
+      Get rid of physpas a geometricalshape relicts in non-attic code.
+      1. Fix class registration macro without attributes (remove "cap" in Rpm LawFunctor as well)     2. Remove StretchPeriodicEngine, it was probably too complicated to be really used; remove yade.plot data reduction which was relying on StretchPeriodicEngine     3. Properly expose PeriodicEngine, PythonPeriodicRunner, VTKRecorder, FileGenerator to python
+      1. Fix python registration of CohesiveStateRPMRecorder (YADE_PLUGIN was missing for PeriodicEngine and Recorder, it seems). Thanks Anton.
+      1. Wrap many classes using YADE_CLASS_BASE_DOC_ATTRDECL_CTOR_PY and friends.     2. "Fix" problems with features=all (is rejected now, features must be written by hand)     3. Add |ystatic| sphinx role (for static data memebers)     4. Rename GLDrawCpmPhys to Gl1_CpmPhys
+      1. Wrap yet more classes with YADE_CLASS_BASE_DOC_ATTRS and friends. I strongly ask people to do the same for "their" classes (like Bruno for TriaxialTest and so on); I will not and it might make those classes unfunctional in the future.     2. Add documentation here and there, where it was lacking
+      1. Remove wm3 includes from everywhere, use lib/base/Math.hpp instead (in preparation to the eigen switch). Regression tests passed.
+      1. Remove a few forgotten files.
+      1. Fix empty display (improperly initialized drawMask)
+      1. Catch io exceptions in the gui     2. Detect io error and throw in IOFormatManager     3. Set config dir at startup, enabling use of logging.conf etc     4. Fix display issues we had. When not running script/xml from command line, yade doesn't display the controller (press F12 to have it). Let me know if this is OK or not.     5. Fix OpenGL initialization code.
+      1. Add bin with 0 interactions to _utils.bodyNumInteractionsHistogram, hereby fixing utils.avgNumInteractions as well (thanks, Luc)
+      1. Update comments in scripts/simple-scene-plot.py (thanks, Chiara)
+      Document registration macros (will move to Programmer's manual later)
+      (Add 2 more hyperlinks to ElasticContactLaw, once it serves as example for docs)
+      1. Remove some garbage     2. Make code partially compile with the wm3-eigen glue.
+      (more fixes for wm3-eigen compat)
+      1. Fix compilation for per-class builds     2. Add manual wrapper for wm3 classes instead of the auto-generated one, to ease transition to eigen. Let me know if it broke something.
+      Fix compilation error introduced in last commit; sorry.
+      Fix setting # of OpenMP threads via -j switch
+      1. do not build miniWm3 at all if not needed
+      1. Document a few classes.
+      Register TimeStepper with YADE_PLUGIN as it should be (that's the reason it wasn't reported as not being registered with YADE_BASE_DOC_* -- thanks Bruno for pointing that out)
+      1. Add #ifndef YADE_* feature handling to implicit build scanner (till now, it was only supporting #ifdef YADE_*)
+      rename sphere{From,To}File to {ymport,export}.text for consistency.
+      1. Add scene->forces.sync() to several places
+      Fix typo (Scene::force vs. Scene::forces). Sorry. Thanks to Chiara for reporting.
+      1. Add no-alignment macros to compiler command line directly, this fixes compilation with eigen, including the tt.py test and scripts/regression-testss.py
+      1. Fix plugin registration for CinemCNCEngine, remove some cruft, fix formatting, add hyperlinks.
+      1. Fix quaternion/vector initializers in NormalInelasticityPhys     2. Fix some eigen related macros
+      1. Add eudoxos.InteractionLocator and eudoxos.IntrSmooth3 for 3d smoothing of arbitrary quantities defined on interactions.     2. Adjust some docstring formatting
+      1. Doc fixes     2. Change prototype for Funtor::getFunctor, since it doesn't seem to work from python now (perhaps it's that Functors don't inherit from Functor in python universe, actually?!)     3. Fix some stuff with class indices for GenericSpheresContact. (It doesn't seem to help, though, either)
+      1. Fix instruction set (march) for debian packages     2. chunkSize=∞ if <= 0
+      1. Add docs at several places     2. Update debian/rules to run tests     3. Add funnel.py scripts/test/CundallStrackTest.py     4. Add more formats to SnapshotEngine (don't seem to work, though)
+      1. Add IntrCallback and BodyCallback (not yet really documented), for hooking into interaction loop in InteractionDispatchers and body loop in NewtonIntegrator (suggested by Bruno). Two real callbacks are defined, to compute summary (hence also mean) forces on interactions and bodies. Sample script is scripts/test/callbacks.py, but currently it crashes for reasons beyond my comprehension.     2. Remove Scene* ncb and similar stuff from everywhere, since all Engines have scene declared in the base Engine class and don't need it pass as arguments. Later, the prototype will be changed (Engine::action(void) etc).     3. Add docs here and there.
+      1. Eninge::action and Engine::isActivated no longer takes Scene* pointer. It must be set beforehand by the caller (done e.g. in moveToNextTimeStep). Please check for suspicious crashes.     2. Remove PartialEngine::applyCondition, replace by action just like other engines (https://blueprints.launchpad.net/yade/+spec/remove-partial-engine-apply-condition)     3. Resurrect JumpChangeSe3 engine     4. add py/_extraDocs.py for documentation of c++ classes/function written conveniently in python strings rather than c++ string literals.     5. Fix bug in Dem3DofGeom_SphereSphere, introduced when avoiding normalization of (0,0,0) vector; is OK now.
+      1. devirtualize BodyContainer and InteractionContainer (they use implementation from BodyVector and InteractionVecMap). There is some speedup. I ask people (you) to run some simulation with the older and current version and report what they observe on the ML. I had more than 2x faster in some cases (in debug mode, though).     2. Fix chunkSize=-1 linkage (is like setting it to infinity)
+      1. Set docstring format for yade.qt
+      1. Code cleanups, docs     2. Make sure we are able to compile with boost::serialization (loading/saving works now as well, but no compression yet; about 3x faster for saving and even more for loading)     3. Enable boost-serialization feature for debian builds
+      1. Don't create python proxy classes for those not using YADE_CLASS_BASE_DOC_*     2. Remove few deprecated things like O.bex and such.     3. Warn about object['attribute'] syntax     4. Add yade --update option, which will do in-place replace for deprecated class names. Run on scripts/test/*.py     5. Wrap ResetRandomPosition and PositionOrientationRecorder     6. Remove some olden scripts
+      1. Move SpherePadder from extra to py/pack/SpherePadder     2. Add py/pack directory, to avoid too many files in py     3. Other small fixes
+      1. Fix crasher in Ip2_FrictMat_FrictMat_FrictPhys (??)     2. Cleanup python code     3. Add feature gl2ps, hitting 'v' in the GL view will save PDF (seems to freeze on large scenes, but works nice on small ones)     4. Add special syntax for deprecated attributes. For testing, renamed Shape::diffuseColor to Shape::color.
+      1. Fix gl2ps, works even for larger scenes now.
+      1. Rename many attributes in OpenGLRenderingEngine, using the deprecated attribute framework     2. Add pickling support to Serializables (useless)     3. Fixes of docstrings here and there
+      1. Disable deprecated attributes handling for gcc<=4.2, which gives errors on that code.
+      1. Use BSP sort in gl2ps only if len(O.bodies)<100     2. Remove ClumpMemberMover, no longer used anywhere     3. Fix pack.regularHexa bug, reported by Nasibeh http://www.mail-archive.com/yade-users@xxxxxxxxxxxxxxxxxxx/msg01424.html
+      1. Uniformize accumulator interface for open and openmp-less builds.
+      1. Fix compilation of deprecated attributes for gcc 4.3 (thanks Jerome for reporting)     2. Re-add facet rendering code.     3. Add docs to predicates.
+      1. TriaixalStressController: originally compilation fix, but Luc was faster; Bruno, I tried to replace on c-array with boost::array; if that works, you could use it for other c-arrays as well     2. Add yield surface query function from python to Law2_..._Cpm     3. Make plot support label translation via yade.plot.labels     4. make chunkSize very small for debian; add strip for the optimized build
+      1. Fix action(Scene*) vs. action() virtuals (mass replace in attic as well), in TranslationEngine. Thanks to Nasibeh Moradi for reporting.
+      1. Add doc/references.bib, which can be references from docstring using [Author2008]_ syntax (note the underscore).     2. Added a few bibliography items to test, and changed relevant docstrings -- see e.g.     https://www.yade-dem.org/sphinx/yade.wrapper.html#yade.wrapper.NewtonIntegrator.damping
+      Add doc to SimpleViscoelasticPhys, add Jean-Francois' paper to both bibtex and SpherePadder's docs
+      1. add axis parameter to utils.uniaxialTestFeatures, to force strain direction
+      1. Import yade.plot when showing graph     2. Fix bibtex entry     3. Handle unseen interaction in InteractionDispatchers differently than with requestErase, as that will not work with certain colliders     4. Add from yade import utils to utils.py docstrings, and show full utils.sphere instead of sphere in session transcripts (thanks to Jerome for pointing that out)
+      1. Add toy grid-based collider (very slow)
+      1. Rename viscoelastic classes as discussed on the mailing list     2. FIx some docstrings.
+      Fix weird crash http://www.mail-archive.com/yade-users@xxxxxxxxxxxxxxxxxxx/msg01482.html in glGetError() (disable error check)
+      1. Reorganize engines a little bit, as discussed in http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg03337.html and other messages in the thread (trivial to change, though)     2. Small fixes at different places
+      1. Fix https://bugs.launchpad.net/yade/+bug/539562 (thanks, Luc)     2. Fix import warning in yade.remote
+      Fix monolithic build (#pragma once for BoundaryController and FieldApplier), sorry
+      1. Add importing native SpherePadder meshes     2. Fix LSMGenGeo interaction with our own type Sphere (in yade itself and in SpherePadder (HACK!!)     3. Fix sample scripts for GenGeo and SpherePadder     4. Allow both gengeo and GenGeo imports     5. Fix ymport.gengeo (shift vs. moveto)
+      1. Start filling NEWS for upcoming 0.5: do the same if you have some big things in mind     2. Fix hyperlinks in Gl1_Sphere doc
+      1. Make python return Vector2r, Vector2r, Vector3i, Vector3r, Quaternionr and Matrix3r by reference rather than by value; fixes http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg03406.html and was introduced by fixing https://bugs.launchpad.net/yade/+bug/539562. See explanation in Serializable.hpp.
+      1. Replace the ugliest code I've ever written by something more sensible. Still ashamed, though, please forgive me.
+      1. Completely remove HydraulicForceEngine which didn't exist in sources (removed by Bruno in previous commit)     2. Experimental binary io using boost::serialization     3. Some function in yade.eudoxos
+      1. Some preliminary work to make boost:;serialization work (MUCH faster)
+      1. Fix calling {pre,post}ProcessAttribute multiple times with boost::serialization.
+      Fix unchanged name (Bruno, do you use scripts/rename-class.py, right? https://www.yade-dem.org/sphinx/prog.html#renaming-class)
+      1. Skip yade::ObjectIO for boost::serialization-less builds. (thanks Nasibeh for reporting)
+      Fix Jerome's problem with boost 1.35 (don't compile code uselessly)
+      1. Fix cached values for cell and facet when modified from python     2. Fix table parsing for lines with 1 character onlyDynamic
+      1. Clarify error message i Law2 functor is not found (thanks, Chiara)     2. Make static attributes initialized by values provided in YADE_CLASS_BASE_DOC_STATICATTRS     3. documentation fixes here and there
+      1. Fix yade.plot broken in last commit     2. adjust interpolating-force example script
+      1. Adjust interpolating-force.py script; present for Chia
+      1. Fix boost::serialization and postProcessAttributes     2. Add scripts/test/serialization-benchmark.py for comparing serialization time/size (http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg03496.html)     3. Fix bug #557124 (hopefully)     4. Don't call postProcessAttributes on Facet in utils.facet, as that is called automatically when setting vertices now.
+      Some eigen compatibility stuff
+      Some more replaces
+      After some text replaces (IDENTITY etc); removed MarchingCube
+      1. Replace things for eigen compatibility. See https://www.yade-dem.org/wiki/Wm3%E2%86%92Eigen for details. Code should not be changed functionally. Report if it is.     2. Remove PositionOrientationRecorder from everywhere.     3. Make the timestep entry behave differently: only when enter is pressed, it will change timestep. Fixes bug #394687
+      1. Forgotten fixes.
+      REALLY fix bad end iterator on InteractionContainer (since r2092!!). UPDATE your code, this makes simulations little wrong (some interaction might be processed twice in one step).
+      (Remove unnecessary aseerts in InteractionContainer.)
+      1. Remove some ToAxisAngle and FromAxisAngle as per https://www.yade-dem.org/wiki/Wm3%E2%86%92Eigen     2. Fix NewtonIntegrator using [i] on quaternions.     2. Add docs for VTKRecorder
+      1. Make controller a little more compact     2. JumpChangeSe3->StepDisplacer (does it sound ok, Chia?), MomentEngine->TorqueEngine     3. Fix a few docs     4. Disable building of CapillaryPressureEngine, it cannot work.
+      1. Change Wm3 interface so that it is eigen-compatible. Please let me know if there are regressions.     2. Fix body selection with python when no onBodySelect callback is defined
+      1. Some garbage removal     2. Fix assertion in NewtonIntegrator
+      1. Fixes for Eigen compatibility (compile with features eigen,nowm3)
+      1. Add forgotten file
+      1. Add docs for kineticEnergy     2. Complete wrapper for Eigen in Python (will be renamed from miniWm3Wrap to yade.math or similar later), passes scripts/regression-test.py now
+      1. Rename miniWm3Wrap module to miniEigen. Let me know in case of regressions (shouldn't be, unless you imported that module directly)     2. Add documentation to the eigen wrapper, document operators (https://www.yade-dem.org/sphinx/external.html#module-miniEigen)     3. Add custom converters from sequences for all supported vector types
+      1. Fix bug with facet import Luc reported (thanks)     2. Add None to separate y1 and y2 axis (instead of |||, which will still work, but is not documented anymore)     3. Add the possibility to plot multiple x axes with the save variable by adding spaces to the name in yade.plots     4. Rename TestWm3Wrapper to TestEigenWrapper
+      1. Add backward-compat to Cpm model if from external files     2. Complete the eigen wrapper     3. Fix some docstrings.
+      Fix inplace operators.
+      1. Add Pournin article to references.bib     2. Fix some docstrings (still not clear)
+      Fix DOI for Luc's article
+      1. Make yade compile with eigen by default. Use 'wm3' feature to compile with Wm3 instead (beware, you still need eigen installed)     2. Disable the possibility of ocmpiling with external wm3.     3. Add Identity, Ones, Zero, Unit{X,Y,Z} to old wm3 wrapper so that they can be used in python.
+      1. Fix O.tags with keys with spaces (historical relics)
+      1. Add forgotten ctor with kwargs to classes with static attrs (such as GL functors)     2. Update scripts/test/Dem3DofGeom.py
+      1. Fix facet wall vertices addition in TriaxialTest.
+      1. Fix O.tags tag update. Thanks to Anton for spotting the problem.
+      1. Change O.dt semantics (negative value activates TimeStepper)     2. Rename O.usesTimeStepper to O.dynDt     3. Remove several Omega wrapper functions that really pertain to Scene, adapt code accordingly.     4. Remove bunch of useless files from attic (mostly seem to have equivalents in our tree, or are obsolete WRT code structure)
+      1. Change O.dt as per http://www.mail-archive.com/yade-users@xxxxxxxxxxxxxxxxxxx/msg01767.html + update docs
+      1. Remove some old garbage code     2. Make Material::id read-only from python
+      1. Forgotten Scene #include in StepDisplacer, sorry.
+      1. Partial fix for clump eigen decomposition
+      1. Fix apparent clumps problems, spheres in the dogbone were getting through.
+      1. Rename groupMask to mask, change its default value to match that of Body::Body ctor (Bodies with 0 mask would not collide!!!!!!!!!!!!) and add to to waoll and box as well (please keep the interface the same for all 4: sphere, facet, wall, box).
+      1. Remove old sphinx docs before adding new ones.
+      1. Merge sphinx docs from https://launchpad.net/~eudoxos/+junk/ydoc/
+      1. remove sdecGroupMask from functors (handled by the collider already) -- thanks to Chiara for pointing it out.
+      Fix compilation error (Bruno, you must have been terribly tired today)
+      1. add explicit qt dependencies.
+      1. Fix scene pointer in CohesiveFrictionalContactLaw     2. add doc to utils.avgNumContacts.
+      1. Fix timestepper selection     2. Disable debuggin in Eigen (for higher performance with debug builds)
+      1. compile with package QGLViewer, if installed (package libqglviewer-qt3-dev)
+      1. Add Peri3dController, done by Jan and me during a rainy day     2. Implement memoizeDb for pack.randomPeriPack     3. add polar decomposition to Matrix3 in python     4. make the 3d view update even if there are no bodies
+      1. Fix bibliography path in generated docs     2. Fix bug #582679 hopefully (compile error with clean builds)     3. Add import gts to gts related function in yade.pack, to make the error message more informative     4. Rewrite scripts/debian-prep in python instead of shell     5. Add qglviewer to some versions in debian/control-template
+      1. Remove pause time from omega, avoids negative realtime     2. Fix some scripts in scripts/test
+      1. Avoid recompilation of the UI when already compiled
+      1. Tentative fix for the clumps bug
+      1. Re-enable PeriIsoCompressor and PeriTriaxController
+      1. Update docs for Peri3dController     2. Fix compiler warning
+      1. Adjust debian-related packaging files     2. Remove NullGUI for good     3. Remove non-DISPATCH_CACHE code (not used)
+      1. Fix a non-critical typo in the script
+      1. packaging fixes
+      1. Remove attic (use bzr co lp:yade -r2280 to get it)     2. Remove QGLViewer     3. Remove miniWm3
+      1. Remove wm3 sources     2. Remove #ifdefs pertaining to Wm3
+      1. make Body::isDynamic a method (and Body::setDynamic to change it), in preparation towards making dynamic equivalent to State::blockDOFs==State::DOF_ALL     2. make YADE_BOOST_SERIALIZATION and YADE_SERIALIZE_USING_BOOST #defined in all builds (will be removed later once the switch is complete)
+      1. Replace wm3-compatibility functions (component{Min,Max}Vector, angleAxisFromQuat, diag{Mult,Div}) with their eigen equivalents.
+      1. Fix stl import with different material
+
+==================================================
+yade-0.20.2
+Sat Sep 19 21:41:52 2009 +0200
+
+Anton Gladky (34):
+      1. This is my first test commit     2. Added some initial files for mining rocks classes simulation
+      1. Some changes in RockPM, still does not work good
+      1. Some small changes on RockPM.* files     2. Test SVN_2_email
+      1. Test     2. RockPM.* updated
+      Changes on RockPM.* files
+      1. RockPM, first variant of "destruction mechanism"
+      1. Deleted euclid.py
+      1. delete euclid.py (fised Sconscript)
+      1. In utils.py alignedFacetBox has been changed to facetBox. It is now possible to create arbitrarily-aligned box composed of facets     2. Updated regular-sphere-pack.py     3. Some small changes on RockPM.cpp
+      1. RockPM update. Added simple "destruction mechanism"     2. Added scripts/installOnUbuntu.sh to make "oneButton-checkout+compile+install+doxygen+epydoc" script. Not tested yet. Requires corrections.
+      1. Updated some scripts according to new syntax
+      1. Added PressTestEngine for simulating presses.        Can be used and for PointLoadTest simulations.
+      1. Updated simple-scene-graph.py according to a new syntax     2. Updated simple-scene-video.py according to a new syntax
+      1. Changes on PressTestEngine. Now it defines the destruction moment more precisely     2. YADE CONSOLE emblem shows now without upper row shifted.
+      1. Some small changes
+      1. All variables initialize in PressTestEngine and RockPm
+      Some changes on News
+      Fix compile error
+      1. Partly fixed
+      1. Almost fixed https://bugs.launchpad.net/yade/+bug/412892     Just 1 warning:
+      Some changes in INSTALL file because of migrating to BZR
+      Some changes on one-click-install script
+      Added "warning" in one-click-install script
+      1. Fixes compiling error without openmp feature.
+      1. 418107, I guess it is more correctly.
+      Some nonessential changes
+      Blocked some warnings in RockPM.cpp
+      Small changes
+      Press Engine and RockPM changes
+      Added demonstration of buldozer simulation
+      "Thanks" and Thanks to Janek :)
+      Fixes VTK-librabry dependencies for Ubuntu
+      Some small changes on Buldozer
+      0.20.2
+
+Bruno Chareyre (22):
+      A wrong comment on contact laws in PFC3D is removed.
+      svn update - no real change (in principle)  - recovering from erased local file
+      - Fix conflicts and prepare next implementation of isotropic compression
+      - Few files missing in the previous commit.     - Add a new class for computing/recording micromechanical data based on     tesselation
+      Still recovering from conflicted files... I hope this is the last one.
+      A class with algorithm for analysing contacts-forces-displacements     statistics. Using the triangulation lib.
+      1. Fixed a critical bug in ElasticContactInteraction (kn, was not registered and left undefined after loading a simulation).     2. Test if fn!=0 (i.e. contact exists) before adding kn/ks to the global stiffness.
+      1. "Water" classes are updated based on the code developped locally (but not commited for a while) by Luc Scholtes.     2. Triangulation code updated as well (not compiled by default).
+      1. Add a missing class (for the capillarity model), this fixes a compilation error in the previous commit due to the missing files.
+      The "stopSimulation" command in the compression engine is now optional, as sometimes you don't want it to stop at all(1).     The default behaviour of the compressionEngine is not affected, with autoStopSimulation=true by default.     However, the TriaxialTest IS affected : it sets autoStopSimulation=false by default.
+      1. Update capillary files and add a new engine for them.     2. Prepare for removing old useless classes (typically some variants of engines with "water" at the end)
+      Remove useless dependency.
+      -Avoid crash when computing fusion number (it was using pointers to deleted interractions)     FIXME : no distant meniscii for now due to deletion by the contact law.
+      Base class for the solid-fluid coupling (E. Catalano PhD).
+      -Register "thickness" so that sample dimensions are computed correctly (and not with 0 thickness)
+      Dimensions could be 0 when "updateParameters" was called from TriaxialCompressionEngine before     TTController::action
+      Missing  declarations in r1836.
+      - cleanup : removing unused (and useless) "water" variants of engines     - some cleanup in recorders too
+      Update of the read/write functions for the connection     with comsol. (coupling via Berkeley<->Grenoble mail servers! ;))
+      Missing declarations of member variables.
+      <none>
+      Set default read/write behaviour as in Andrea's version.
+
+Feng Chen (1):
+      This is viscous force damping, equation similar to http://en.wikipedia.org/wiki/Damping, damping parameters are controlled by betaNormal and betaShear, it is sometimes more realistic than the non-viscous (or say, local) damping.     While using this code, please make a reference to:
+
+Janek Kozicki (54):
+      ouch, forgot to mark INSTALL file as outdated. We need to update it.
+      some cleanup in the files
+      fix crashes of this->parentWidget()->parentWidget() in UI
+      yade.cpp: more detailed info about compilation flags.     LatticeExample: added material parameters bond zone between steel fibres and cement matrix
+      update to use latest scons 1.0.0
+      don't refresh display when there's nothing to refresh
+      support for generating multiple file with single NullGUI call
+      add to SimulationController buttons for looking in different directions. The default view direction is now down along the direction of gravity.
+      improved generation of steel fibres in lattice
+      fixed snaphotNames in NullGUI for .xml.gz
+      more configurable MakeItFlat,     TriaxialTest can be now a biaxial test as well.     small fixes in UIs
+      make it compile with boost 1.35 (I wonder what 1.36 will bring)
+      Fixed OpenGL problems with displaying spheres, which      - never occurred on my desktop      - I've seen them sometimes on other peoples computers, but never could reproduce them      - but finally have appeared on my laptop.
+      up direction on Y     release 0.12.1
+      created nearly empty snow package: pkg-snow
+      Snow stuff - generate grains made of layers according to voxel data read from file. And daraw it.
+      forgot some files
+      - make it compile with boost 1.34     - some snow improvements
+      - another fix. now it really compiles with boost 1.34
+      1. TriaxialStressController reads radius from interactingGeometry
+      Code wasn't compiling because of #include MicroMacroAnalyser - comment it out.
+      1. argh, guys. svn HEAD must compile. You didn't check your commits and then I waste 1h to fix that. See this commit, to check what I had to comment out about WATER
+      - added keyboard shortcut '.' that toggles grid subdivision by 10     - fixed error with grid step     - grid step is now shown in gl window
+      small snow update
+      another small snow update
+      1. small snow update     2. fix compilation error by Vaclav (hey, you didn't compile again before commit! ;p )
+      rename file to avoid case conflict with directory
+      1. GLViewer - when sth. is selected don't move it to 0,0,0 position, but use its original position. This is done by delaying assignment to the next call of draw()
+      - added extensive comments to the polyhedron code which will be used for collisions
+      small snow update
+      maybe spheres won't disappear anymore?
+      a placeholder for drawing snow interactions
+      changed guards to #pragma once
+      postpone creating a 3d view, until a file is loaded. That should hopefully fix the problem with the primary view being empty.
+      added AUTHORS file, for the purpose of updating file headers.     This was copied from  http://yade.wikia.com/wiki/Authors
+      Why do I have the impression that I'm adding this file a second time? After all it's referred to in almost all source files "See file LICENSE for details.", right?
+      sort people in alphabetical order
+      sorry for bumping up revisions....
+      Snow, as it is finished by me. Further work on it will to be done by next post-doc     researcher who wants money from EU for working on this :)
+      fix miniwm3 / full wm3 compilation error
+      I forgot to add those, sorry. (I wonder how it could stay unnoticed for so long ;)
+      add option for horizontal or vertical wires in fibre reinforced concrete.
+      1. correct display of lattice rods on 0th iteration     2. on/off switch for using different stiffness for tension and compression in lattice     3. fixed a bug in BodyRedirectionVector related to deleting of bodies     4. two more lattice examples     5. few more safety checks in lattice code
+      1. NullGUI was still usin .gz while thay are not supported anymore     2. small lattice update
+      sanitize stupid numers in QtGUI, eg. 0.1299999999999 becomes 0.13
+      small fix
+      after isNew and isReal are removed I'll update the code to use new contact logic.
+      Add an option to display DOFs and body IDs in the OpenGL window
+      - Lattice uses DOFs now     - old implementation is still accessible by setting a flag backward_compatible, so that hundreds of my old FileGenerator files will still work     - some improvements to recording strains and forces
+      - fix all my warnings     - lattice generator improvements wrt concrete with steel fibres
+      - some improvements wrt to generation of densely packed aggregates and steel fibres in the concrete structure
+      - testing command "bzr commit --fixes lp:414868"     - fixing bug 414868
+      Fix stupid error introduced when we have migrated to bex container
+      1. get snow code to run, albeit still buggy     2. why dynamic_casts stopped working everywhere, that's a mystery to me     3. interactions isNew doesn't exist anymore, snow code needs update for this
+
+Jerome Duriez (9):
+      Added :     - Engines for simulating shear tests at constant normal displacement, normal stress or normal rigidity (CinemDNCEngine, CinemCNCEngine and CinemKNCEngine) for samples     deriving from SimpleShear PreProcessor (added also, former DirectShearCis)     - ContactLaw1 : a contact law with Moment Transfer and inelastic behaviour in compression : see comments. With correspondant Relationships and type of Interactions.     NB : sorry for the name : i didn't search too long for a more explicit one but I think personly that the comments in the files (and I tried to put some) are far much better     than the one
+      - Add of the paragraph for the CL1Relationships, which was forgotten, in the corresponding SConscript
+      A (last ?) error concerning last revision in the paragraph CL1Relationships : "CL1Interaction" does not exist, that's ContactLaw1Interaction
+      -ContactLaw1 : correction of prototype of action() : it needed a body, whereas now action methods of Engines need a Metabody. This led the simulation to crash and is     now fixed     - SimpleShear : now all is normaly done so that this preprocessor could be used (with success) with this ContactLaw. Moreover it is now linked to the     GlobalStifnessTimeStepper (instead of the ElasticOne)
+      Suppress of some useful comments (sorry for the extra mail)
+      (At last) The good Sconscript file
+      - The GlobalStifnessCounter engine (for correct use of GlobalStifnessTimeStepper) was forgotten in the preprocessor SimpleShear...
+      - Correction of the headers of two files "ContactLaw1Interaction" which were commited by me and not by Bruno     - Some features of ContactLaw1Interaction were declared in ElasticContactInteraction. This was a mistake totally not planned (and the fact it was in svn also was not     noticed) and is now corrected
+      - End of the job by suppressing also the corresponding lines in .cpp...
+
+Luc Sibille (1):
+      I added a new engine "ThreeDTriaxialEngine" to perform triaxial simulations with an independant control in stress or in strain in     the three space directions respectively. In this goal, the TriaxialStressControlEngine has been sligtly modified to impose a     different stress value or strainrate in each space direction. I hope I have broken nothing!
+
+Sergei Dorofeenko (32):
+      1. A new algorithm for facets. It use only a class Facet, so classes Vertex and Edge are deprecated and has been removed.     2. Add functions to python gui for import geometry from stl and for creating facets.     3. Add Shop::inscribedCircleCenter for calculate position of center of triangle inscribed circle (use it for set facet's se3.position).     4. ForceRecorder now take cary about old data files and renaming them.     5. SimulationPlayer now allow wire body form view tab.
+      1. ResetPositionEngine is now inherited from PeriodicEngine.     2. Add examples/rod_penetration model and geometry.
+      small fixes
+      1. New random-access interaction container InteractionVecMap (rewrited from  InteractionVecSet)     2. Fixes: default initialization some attributes in SCG and IS2IS4SCG
+      Intermediate commit for SpheresFactory. Don't work yet.     1. New engine SpheresFactory     2. Add function engineByLabel to MetaBody     3. Add members to BroadInteractor.
+      1.First worked version of SpheresFactory engine. Example in examples/SpheresFactory     2.Added PersistentSAPCollider::probeBoundingVolume function (for using with SpheresFactory)     3.InteractionGeometryMetaEngine::explicitAction has been modified to remove artifical (as me seems) asserts.     4.python import_stl_geometry now return list of body ids instead only their number.     5.import stl geometry now allows import facets without BoundingVolume  and InteractingGeometry.     6.Fixed dynamic_cast for BroadInteractor.
+      1. SpheresFactory allows now to create spheres in a convex volume.     2. SimulationController estimates total simulation time if stopAtIteration>0.
+      1. SimulationPlayer now allows to reload filters without reloading all simulation.     2. ColorizedVelocityFilter now allows to setup minValue,maxValue without reloading the filter.
+      Fixed bug in RotationEngine: rotationAxis now normalized in action(), not in postProcessAttributes()
+      ColorizedVelocityFilter counts a scale for each frame, without using previous min,max values.
+      Class SimpleViscoelasticInteraction is renamed to ViscoelasticInteraction and is inherited from ElasticContactInteraction now.
+      1. Convert SimpleViscoelasticContactLaw to ConstitutiveLaw engine unit (Spheres_Viscoelastic_SimpleViscoelasticContactLaw).     2. SimulatonPlayer have now Display tab as one in SimulationController.
+      1. The experimental widget for drawing a color scale for colorized velocity filter.     2. Convenient python function utils.ColorizedVelocityFilter.
+      Merging utils.*_v2 functions with their "first" analogs.
+      Add two new filters: ColorizedTimeFilter and PythonRunnerFilter
+      Migrate GravityEngines and ConstitutiveLaw to BEX_CONTAINER
+      Convert STLImporterTest to ConstitutiveLaw (SimpleViscoelastic contact model) and NewtonsDampedLaw engine.
+      Fix bug in serialization for ViscoelasticInteraction.     Fix compilation error for InteractionHashMap
+      Update contact logic for SpatialQuickSortCollider (hope, it's correct)
+      Fix typo in PersistentSAPCollider
+      1. Remove zeroPoint     2. Add prefix ef2_ to Spheres_Viscoelastic_SimpleViscoelasticContactLaw
+      Fix link errors
+      fixed and updated some examples in keeping with last modifications
+      Realise InsertionSortCollider::probeBoundingVolume() so SpheresFactory now works
+      SpheresFactory now can create a spheres by python function. See scripts/test/SpheresFactory/model.py for example.
+      Add export python module with VTKWriter class (very initial) to export data from YADE to VTK-based post-processing tools
+      Added a c++ VTKRecorder (for spheres and facets) and new feature 'vtk' needed for it.
+      Add colors rec to VTKRecorder
+      Add default path for VTK
+      Fix VTKRecorder headers
+      Fix VTKRecorder headers
+      Add VTKINCDIR to configure options for directories where to look for VTK headers
+
+Unknown (3):
+      I added a new state at the triaxial compression test in order to realize isotropic compression by the walls displacement until a indicated porosity value. These modifications can be seen with generator file "TriaxialCompression" in the last three parameters (added).
+      I corrected my errors on the triaxialtest files.Moreover, i added comments in the TriaxialCompressionEngine.hpp.
+      The isotropic compaction into the TraxialTest is activated: 1)I have deleted the translationspeed parameter (now the translation speed of walls is the strainRate parameter) 2)I have activated the porosity parameter in the TriaxailStressController.cpp file
+
+Vincent Richefeu (42):
+      - initialize radius in InteractingSphere constructor.     - add new plugins used for membrane modelling.
+      - add GLDraw plugin for BssSweptSphereLineSegment displaying
+      - 'Membrane' (in fact geogrid) has been improved but still doesn't work...     - the class GroupRelationData has been add (not used yet) to define interacting parameters such as coefficient of friction or restitution that have nothing to do in the bodies parameters (in my opinion)
+      - forgotten files
+      - add the soft mgpost for DEM simulation post-processing and visualization.
+      - set menus in english mode
+      A very quick guide for mgpost (usage and XML format)
+      a forgotten file in mgpost/doc
+      - add a new tool for sphere packing (still in dev)     - some enhancement in mgpost interface
+      - SpherePadder devel...
+      SpherePadder devel...
+      SpherePadder (devel: 5 steps ok)
+      - SpherePadder update     - add a basic 'user friend' interface for sphere packing generation. The module can of course be used without this interface.
+      Speed enhacement for the SpherePadder algorithm.
+      Add possibility to make PNG screenshots (using libpng)
+      Add a DataRecoder that generate MGP files (only for Spheres for the moment).     The MGP files can then be read with mgpost.
+      - add a class based on CGAL for 3D triangulation.     - Packing method enhanced (place 380000 spheres in less than 2 min)
+      Fix some bugs and enhance the display of positive and negative forces
+      Fix some bugs
+      Begin devel. of densification process
+      2 files that were forgotten
+      Simplify sphere shapes when if there number is increased
+      Bug corrections (min and max radii)
+      - overlap with spheres inserted by user -> bug fixed     - Densification begins to work
+      Increase the number of colors for the display of body's groupMasks from 6 to 10
+      We can now make the packing denser with a stop criterion based on the solid fraction or total number of spheres.
+      Add BasicViscoelasticRelationships: an alternative to SimpleViscoelasticRelationships. It accounts for the effective mass of each contact and considere the parameter cn as a dimensionless ponderation of its critical value (computed for each contact). Parameter cs is set to zero for the moment.
+      Add a boost.python wrapper (module packing)
+      Add a function to SpherePadder_wrapper to pass the result back to python.     As Vaclav suggested, it is a list of (x,y,z,R) tuples.     (Complet integration into yade is not done yet)
+      - Add 'HistoryRecorder' to save the sample and network state with a given time-step interval.     - Correct a small bug due to the fact that a Clump cannot be casted into a GeometricalModel (and I don't know why!)
+      Use the clump mass instead of clump-member mass for the determination of the effective mass.
+      Ooops! There was a bug
+      Add the function NormalRestitution2DampingRate.
+      Add sphere reading for gdm-tk format
+      Remove default linkage with libtiff (png is now prefered)
+      Add an example of python script for SpherePadder
+      Add GroupRelationData serialization (not used yet in *Relationships classes)     This class serves to manage parameters between bodies depending on their groupMasks.     Here is an example of 'command stream' in xml file to set the parameters:     <grpRelationData _className_="GroupRelationData"  commands_="[ngrp 2 parameter kn setall kn 1e6]" />
+      Just try to use GroupRelationData with BasicViscolelasticRelationships.
+      Cast size_t to int in pow(double,int) function to avoid ambiguity for gcc (compilation failled on one of my computer)
+      Some tiny modifications for Mac OS X compatibility (Does not compil yet).
+      Some forgotten tasks
+      replace gcc-3.3 by gcc in the Makefile.macosx of mgpost
+
+Václav Šmilauer (313):
+      Move big news to NEWS, ready for release finally (?)
+      Update INSTALL file from wiki (brief instructions only).
+      1. Reimplement some loop-intensive functions from yade.utils in c++ for better performance (as yade._utils, imported into yade.utils automatically - transparent to the user)     2. Add poisson's ratio and Young's modulus estimation in yade.eudoxos based on linear regressions of position→displacement mapping along different axes     3. Rename Shop::ElasticWaveTimestepEstimate to Shop::PWaveTimeStep, wrapped in yade.utils
+      1. Add python interface for blocking DOFs:     		b.phys.blockedDOFs=['z','rx','ry']     	It is friendlier than b.phys['blockedDOFs']=1<<2|1<<3|1<<4.     	The property is read-write.
+      1. Add code for computing histogram of interaction directions in given plane in _utils.     2. This is code is used by yade.eudoxos.plotDirections() to create the actual (nice) figure.
+      1. Skip (almost) exactly zero projections, implement masking of bodies.
+      1. poisson and young estimator now works on a fractional part of the speciment     2. do not switch ui automatically if selected explcitly     3. body::maskOK to check mask
+      1. eudoxos module cleanups, young estimator arg chages     2. fix harmless compiler warning in _utils.cpp
+      1. add utility function to compute elastic energy within a volume (the dynamic_cast to NormalShearInteraction still fails; what is going on?)     2. add utils.fractionalBox, an AABB reduced to its fraction     3. fix fixmes in Force and Momentum about unused functions about to be deleted     4. plotting interaction direction histogram now works on contrained volume (to study boundary influence on the distribution)
+      1. Beginning hijacking SpheresContactGeometry to hold more elaborate geometry characteristics, such as relative shear displacement. By default, those parameters are neither calculated nor displated (exactRot==False; must be set to True in ISphere2ISphere4SpheresContactGeometry to enable it). Test script is in scripts/exact-rot.py     2. Remove deprecated code from UniaxialStrainController     3. Add GLUtils to draw lines, text, numbers -- copid over from Shop     4. Add operator<< for Quatrnions (axis angle)     5. Fix energy calculation in volume (in _utils.cpp)     6. Other fixes here and there...
+      1. The exactRot code is reasonably verified now to be functional, including rolling correction (SpheresContactGeometry::relocateContactPoints) and will used in brefcom soon.     2. Updated the "testing" script scripts/exact-rot.py, as a showcase as well.
+      1. Remove GL things from Shop, moved to lib/opengl/GLUtils.hpp     2. Cleanup of SpheresContactGeometry code, rename exactRot to hasShear
+      (I thought most of this was already commited?!)     1. Delete unused IS2IS4DistantSpheresContactGeometry (merged with IS2IS4SCG), adapt existing code     2. Adapt new facet code to updated SpheresContactGeometry (only superficially tested) so that     they can interact using BrefcomLaw; add scripts/exact-rot-facet.py to show that.     3. Fix a few missing loggers in others' commits.     4. SimulationController redraws if iteration changes (the +1 button would otherwise not cause redraw)     5. Remove cruft from Brefcom.     6. Fix inheritance (dynamic casts) of NormalShearInteraction and of BrefcomPhysParams     7. Remove cruft from UniaxialStrainer     8. Add some python code to compute stress from stored elastic energy.
+      1. Move interaction direction distribution pie histograms to utils     2. Add plotting histogram of number of contacts to plotDirections()
+      1. Omega().bodies.append can take list of bodies now (instead of just one body), returning list of added id's     2. utils.facet can take both tuples and lists for vertex coordinates
+      1. Add NormalInteraction::normalForce and NormalShearInteraction::normalForce (moved up the hierarchy from ElasticContactInteraction) so that unbalancedForce can be calculated on any subclassed interaction type.     2. Adapt Brefcom for this.     3. Add Shop::unbalancedForce and utils.unbalancedForce     4. Add workaround for saving ipython history as suggested by http://lists.ipython.scipy.org/pipermail/ipython-user/2008-September/005839.html     5. Fix AxialGravityEngine to register parent class attributes.
+      1. Avoid compiler warning in optimized builds from pyOmega     2. Body containers now allocate the lowest possible ID for each added body. The old behavior was to allocate the first free ID greater than the ID of the body, if it was already set. Please let me know if this is critical for someone. We can do things like:
+      1. 3d view now has by default a OSD with iteration number, simulation time and virtual time. This can be toggled (all combinations) by pressing 'D' (which used to mean toggling d+ynamic flag...?) and set also from python with GLView.timeMask='rvi' (Real,Virtual,Iteration) and so on.     2. Simulation player displays real time and wall clock loaded from db (insted of bogus values of system clock when the player is being run)     3. new periodic SnapshotEngine that takes snapshots of any GL view to numbered PNG files.     4. new function qt.makeSimulationVideo that makes video _while running the simulation_.     5. qt.createVideo renamed to qt.makePlayerVideo     6. Added Omega method to query computation duration.     7. An example of using qt.makeSimulationVideo is in new file scripts/simple-scene-video.py
+      1. Add forgotten SnapshotEngine     2. BodyRedirectionVector always really find the lowest unused ID (the same for BodyAssocVector)     3. add Omega().interactions.clear() in python     4. Move the "Less than 500 bodies, moving possible" to LOG_INFO instead of on-screen since it disturbs videos taken during simulation...
+      A few fixes in TriaxialTest:     1. radiusStdDev is a registered attribute parameter     2. skip unloading phase if sigmaLateralConfinement==sigmaIsoCompaction     3. new bool autoUnload, that controls automaticity of going from compaction to unloading; autocompressionActivation controls from unloading to loading.     Note: IFacet2IS4SCG is broken, but not yet fixed.
+      1. TriaxialTest now takes readiusMean argument (by default negative, i.e. disabled); if >0, box size is scaled so that both requested porosity and mean size can be preserved.     2. Attempt to fix computation of stress from stored elastic energy.
+      1. Fix adding empty engine if record wall stress interval <= 0 in TriaxialTest (bug introduced yesterday)
+      1. Add Interaction::swapOrder(), for use in EngineUnits that want to avoid calling goReverse()     2. SnapshotEngine can sleep specified number of msecs after shot, which probably can avoid some hw problems (make_current failed in mesa, freezes etc)     3. InteractingFacet2IS4SCG now works "correctly" (not exactly physically, though) with shear     4. DynLibDispatcher should report names of classes if dispatch fails.
+      1. Add InteractionGeometryMetaEngine::explicitAction and InteractionPhysicsMetaEngine::explicitAction for creating contacts manually using the dispatcher     2. add utils.createInteraction(id1,id2) that requests explicit transient interaction creation     3. Add sample ElasticContactLaw2 (in ElasticContactLaw.cpp) that uses new SpheresContactGeometry code and can be used for "persistent" (transient but not deleted by the collider) contacts.     4. Add Shop::applyForceAtContactPoint (applies contact force at contact point to both bodies (reversed for body2) and moments acting on their cenroids as well)     5. All the previous new functionality is demonstrated in scripts/chain-distant-interactions.py.
+      1. Add Omega().reload()     2. Create map<string,string> Omega::memSavedSimulations, where simulations are saved if they begin with special sequence ":memory:" and can be loaded again, within lifetime of Omega.     3. Add Omega().tmpLoad() and Omega().tmpSave() that use the above mentioned thing.     4. add utils.readParamsFromTable that reads any python variables from text file (useful for automatic parametric studies)     5. Add less expensive routine for sontact point relocation in SpheresContactGeometry
+      1. Separate player into two windows (controller and the 3d view); the controller may be hidden with ::hide() (and ::show()) or with Alt-H from the 3d view. This allows for correctly restoring 3d view size. Closing any of the two closes the player. Please log crashes, if any.     2. Update QtGUI-python.cpp: runPlayerSession
+      1. Yade now runs TCP server at the first free port above 9000 (accessible from localhost only), which simulates python console. (let me know if you need this over network -- it is DANGEROUS, since someone can delete all your files etc without any authentication). The interpreter has its own namespace.
+      1. Fix crasher (under special circumstances) in PersistentSAPCollider (deletion invalidating iterator)     2. PeriodicEngine now takes nDo and nDone attributes, limitng number of activations     3. Fix minor things is BrefcomDamageColorizer, add normalized damage to BrefcomPhysParams     4. Fix some indents in Triaxial
+      Fix stupid sign mistake when applying contact force in brefcom.
+      1. PythonTCPServer now generates random 6-letter cookie (password) at startup and authenticates all connections by that cookie.     It can be retrieved from yade.runtime.cookie
+      1. Add Body().mask in python     2. Add PhysicalParameters().pos and .ori instead of ugly pp['se3'][:3] and pp['se3'][3:]     3. Add dmgPlane plot in brefcom     4. Do not delete renderer if we close the last view (loses all renderer settings)
+      1. Add a quick implementation of bending and torsion code to SpheresContactGeometry     2. Update ElasticContactLaw2 to use that code; stiffnesses are hard-coded for now.     3. Update scripts/chain-distant-interactions.py to show that that code really works     4. Plot residual strength instead of damage in brefcom     5. Add some functions for spiral projections (not correctly working yet)     6. Fix missing std:: in DisplayParameters
+      1. Add 2d weighted average smoothing abstract class and its specialization on symmetric gaussian kernel, with python glue of course.     2. Remove .gz support.     3. Fix some bugs in the spiral projection code.
+      1. Fix errors preventing compilation due to missing TesselationWrapper.
+      !! IMPORTANT !! Introduced new dependency on "python-numpy" package     (numpy/ndarrayobject.h header), which is now checked for by scons.     Tell me if this is not OK!
+      1. Add initializers for all SpheresContactGeometry members, to avoid nan's in the .xml file     2. Add code for saving arbitrary python variables within the .xml file, see documentation on utils.saveVars() and utils.loadVars()     3. Fix error (hopefully) caused by dangling symlinks in the symlinked buildDir/include tree
+      1. Fix algebraic typo in max distance check.
+      1. Commit simple parametric study interface, documented at http://yade.wikia.com/index.php?title=ScriptParametricStudy and wrapper script to queue jobs, which is installed as yade-trunk-multi, yade-trunk-opt-multi and so on.     2. Examples of such parametric "study" added in scripts/multi.py and scripts/multi.table     3. MetaBody now create Omega().tags['id'] at initialization like '20081028T102950p15498' (date, time, pid) that is unique
+      1. Changed colors to be random by default on utils.{sphere,box,facet}
+      1. Make our intelligence-challenged deserializer finally gracefully handle nan, inf, -inf (arbitrary lower-upper case).     2. Fix crash in MembraneTest (leftover in the commit from testing, oh well)     3. Add TriaxialTest::fixedBoxDims to not scale selected box dimensions if sphere mean radius is given (example underway).
+      1. experimental support for Real==long double (#defines QUAD_PRECISION, scons quad=1). long double is not necessarily quadruple precision (not on IA32, at least) though, but is still more precise than double. (search "long double" on wikipedia)     2. Some preparation to compile with -std=c++0x (not yet functional) WRT <boost/shared_ptr.hpp> and boost::shared_ptr vs. <memory> and std::shared_ptr     3. Fixed in yade-multi.     4. New direct oofenm exporter in yade.eudoxos.     5. Don't fiddle with termios in non-interactive sessions.
+      1. Add INTEGER (besides FLOAT) to the list of wrapped c++ types in python. Fix type detection for long double     2. Fix Real->double conversions in GLDrawBssSweptSphereLineSegment.cpp
+      1. Body().phys.refPos is directly accessible now (old way Body().phys['refSe3'[0:3]] still works, though)     2. Labeled engines are at load-time or when Omega().engines are modified assigned to variables __builtins__.label;       for example
+      Add forgotten file.
+      1. Add linear templated interpolation function working on 2 lists, t and values     2. Add InterpolatingRotationEngine that changes rotation speed as given by value table     3. Lower info about starting python thread to debug message only.
+      1. Rename REGISTER_SERIALIZABLE(class,bool) to REGISTER_SERIALIZABLE_GENERIC, add two macros REGISTER_SERIALIZABLE and REGISTER_SERIALIZABLE_FUNDAMENTAL. Changed all uses accordingly.     2. Added REGISTER_CLASS_AND_BASE(class,base) which performs REGISTER_CLASS_NAME and REGISTER_BASE_CLASS_NAME at once.     3. Added REGISTER_ATTRIBUTES (not trailing 'S'), expanding to void registerAttributes(){...}, and REGISTER_ATTRIBUTES_WITH_BASE, which prepends call to baseClass::registerAttributes() (specified as the first argument).
+      1. Added Se3Interpolator engine, with scripts/test/Se3Interpolator.py     2. Added from math import * to PythonUI_rc.py so that math functions are readily accessible everywhere     3. Implemented stopStrain in UniaxialStrainControlledTest     4. other small fixes
+      1. Modify REGISTER_ATTRIBUTES macro so that it work with or without base class given. Change all headers in core to use that. It should help us if we ever make the transition to boost::serialization.     2. User REGISTER_CLASS_AND_BASE instead of REGISTER_CLASS_NAME and REGISTER_BASE_CLASS in core and at a few other places.
+      1. Removed cerr garbage from glviewer (use LOG_DEBUG if needed)
+      1. Fix warnings in GLViewer     2. Add (35.4%)-style counter if stopAtIteration is set to the OSD in gl view     3. Add utils.downCast to downcast object to its derived class and copying all attributes.     4. Add utils.SpherePWaveTimeStep to compute critical dt from a few parameters only     5. Add routine to compute overall kinetic energy to Shop (indirectly to utils as well)     6. Add routine to sum torque (momentum) with respect to an axis from forces and torques on given set of bodies.
+      Fix typo (compilation error in debug mode) in Shop::kineticEnergy
+      1. Fix a bug in rotation ode in SpheresContactGeometry. Now the code gives the same results as almost-for-sure-correct FEM code regarding strain computation.     2. Add label attribute to StandAloneEngine (inherits from Engine)
+      omg
+      (code cleanup, no functional changes)
+      Exit once the simulation finishes; do not rely on simulation exiting itself.
+      1. SpiralEngine that does both rotation and translation along the same axis     2. InterpolatingSpiralEngine for variable rotation+translation speed (replaces InterpolationgRotationEngine)     3. scripts/test-spiral.py for rudimentary functionality testing.
+      1. Un-disallow (bug) having all dimensions scalable in triaxial if particle radius is fixed.     2. Don't record anything by default to file in UniaxialStrainer (only useful for debugging)
+      1. Add a few functions for integrating piecewise-linear functions in new module yade.linterpolation
+      1. fix damage colorizer (removed dynamic_cast causing segfaults on non-spheres)     2. InterpolatingSpiralEngine now takes bool wrap rather than Real period.     3. qt.makePlayerVideo takse startWait argument, which waits for Backspace before starting (useful for setting up the view manually); postLoadHook gets run afterwards now.
+      1. Add algorithm for pushing sphere always to the same side when in contact with facet, even under extreme stress where the sphere geometrically passes to the other side.     2. Add bool SpheresContactGeometry::initContactOnPositiveFacetSide for that     3. Add test/demo script for that.     4. Re-enabled GLDrawSphere::glutUse (cosurgi?)     5. Renamed yade.runtime.args to argv, to be consistent with sys.argv     6. Allow passing sys.argv (arguments to scripts) through QtGUI as well
+      1. Fix clip plane orientation inversion as well as wheel normal movement.     2. Clip planes not displayed at all unless one of the clip planes is being manupulated.
+      1. Unbreak bad type (list) for sys.argv[0], broken recently     2. Color bodies by residual strength rather than damage parameter (smoother)     3. Make player messages (maybe) better formatted
+      omg...
+      1. Make player reuse existing renderer if there is one (allows setting Draw_mask etc before running player)     2. Add initRun parameter to PeriodicEngine (false by default), to run at the very fist run.
+      1. Make BrefcomDamageColorizer run at 0th iteration as well     2. Make player set stopAtIter to last iteration in db so that percentage is displayed in the output.
+      Fix previous commit, overlooked. sorry.
+      1. Number lines in parameter table for multijobs from 1 (as text editors do)     2. Print short summary at the end of job log (when started, when finished, exit status, duration, commandline)
+      1. Fix logic typo in QtGUI (warning when there shouldn't be and vice versa)
+      1. logarithmic strain for Brefcom.     2. change sphere-facet algorithm such that it works on corners. Maybe no longer necessary, but it doesn't hurt now. scripts/test-sphere-facet-corner.py as provided by sega demonstrates that.     3. "from __future__ import division" in python init such that 3/2==1.5 and 3//2=1 (is default since python 2.6)     4. Global GL lock to avoid crashes/freezes with GL accessed from multiple threads concurrently. scripts/gl-test.py (which used to crash) now works with one view;     5. Properly lock/unlock on all gl ops in QtGUI-python.cpp, like setting view direction, resizing etc.     6. Fix wrong assertion in SQLite player     7. add Omega().resetTime to reset iteration number, virtual and real time.     8. Changed utils.loadVars/saveVars code to be more reliable.     9. Added utils.aabbExtrema2d
+      1. Lock GL when closing view. Seems to fix crashes / delays at exit
+      1. Contact sphere-facet must be deleted by the constitutive law once created. Let me know if that is a problem -- I think it is the way it should be in the future everywhere, though.     2. Fixes for boost 1.37 (boost::thread not fully compatible)     3. utils.basidDEMEngines (not tested yet)     4. Fix warning in GroupRelationData     5. add march switch to scons ('native' is default, but not supported by older compilers)     6. Prepend default CXXFLAGS so that user-defined ones (like warning suppression) come after the default ones and override those.
+      1. Tentative fix for newer scons, which links empty files (dummy plugins) with plain gcc and doesn't find default c++ libs to link with.
+      1. File not needed.
+      1. Beautify no-debug code in main     2. SpiralEngine now saves angle it has turned so far     3. Remove failing assertion from IFacet2ISphere4SCG (why it fails? it was a (I->isReal&&I->interactionGeometry)||(!I->isReal&&!I->interactionGeometry)...)     4. Improve the utils.spiralproject function to specify period (moderately tested, but seems to work)     5. Adjust locks in GLViewer. Fixes my crashes on nvidia for both player and 3d view (didn't dare to try 2nd view). Next step will be to move this lock to Omega and lock it when loading/resetting simulation etc.     6. Change theora video quality to 63 (maximum) instead of medium 32 in utils.encodeVideoFromFrames. Makes the video about 3x bigger.
+      Two BIG changes:
+      1. Add ef2_Spheres_Brefcom_BrefcomLaw, is faster (!)     2. Fix locking in Omega, we don't get crashes when loading simulation with the 3D view enabled anymore (please report any further crashes in OpenGLRenderingEngine, that should be fixed)     3. Automatic update of Doxygen configuration file     4. Dem3DofContactGeometry, which should be in near future parent of SpheresContactGeometry and other new geometries providing normal and shear strains (SphereFacetContactGeometry, in my mind)     5. Add convenience function to apply force to contact point between two particles.
+      (remove no-warn for c++0x since that flag is not known to gcc-3.4)
+      1. Add possibility to change container types from python (for benchmarks) -- code not yet tested!     2. Possible optimization in PhysicalActionVectorVector, now disabled.
+      collider mistake hotfix
+      1. Make triaxial stop if !autoCompressionActivation and already unloaded. If this breaks something, please let me know, we can do it otherwise, but, for Cundall's sake, can we keep the same behavior for at least 6 months??     2. SpatialQuickSortCollider will not delete real contacts, even if bodies don't collide.     3. Remove redundant attribute registration from SpheresContactGeometry
+      fix typo in collider
+      1. removed persistentInteraction from most places; they are still present in MetaBody, but not serialized any more, most importantly (avoids warnings) and not GL-drawn.     2. Plugin loading loginc completely changes, the underlying macro YADE_PLUGIN has still the same interface. We used __attribute__((constructor)), __attribute__((visibility("internal"))) and anonymous namespace magic to get there. This will make it possible to put multiple plugins to a single shared library without touching the source, only fiddling with SConscript's.     3. PythonUI is interactive by default (it was not?? weird.)
+      1. Add new non-generic Bex container. For non-optimized build, it increased the speed by about 11% (9:35 vs. 8:49) as compared to PhysicalActionVectorVector.
+      Users willling to go with the slower PhysicalActionContainer can compile with scons CXXFLAGS=-DNO_BEX now to get the old behavior.
+      1. Adapted TriaxialTest and ElasticContactLaw to BexContainer (switchable at compile-time).     2. Adapter GlobalStiffnessTimeStepper to BexContainer (GlobalStiffnessCounter code put to a function inside this one, hence that engine is not needed anymore).     3. Adapted Shop::Bex to BexContainer (probably not needed anymore?)     4. Exception is thrown in PhysicalActionVectorVector is used && built with BEX_CONTAINER (would most likely crash anyway).     5. transientInteractions and persistentInteractions are only references to MetaBody::interactions now. Removed extra loops in InteractionPhysicsMetaEngine and InteractionGeometryMetaEngine.     6. Remove including qglviewer into miniWm3, as it breaks compilation if using miniWm3 separately from yade (for testing purposes).
+      1. Define Janek's functions to convert from/to QGLViewer vector where they are used.
+      1. Add BexContainer (same interface, but separate implementation) in openMP flavor.     2. openmp=0 is the default for scons now (for some time), since openMP BexContainer gives about 7% slowdown and thus is not useful before at least some engines are parallelized as well.     3. Removed getting references to Force/Torque from BexContainer, since that breaks concurrency. Instead, addForce/addTorque must be used. If you need to read back with getForce/getTorque, you have to call sync() (expensive!!) beforehand, which will compute summary values for all bodies; if you forget, exception will be thrown. Note that sync() is invalidated at next write operation.     4. Adapted a few constitutive laws and other engines for the changes mentiones here.
+      1. Add time-profiling classes. See http://yade.wikia.com/wiki/Speed_profiling_using_TimingInfo_and_TimingDeltas_classes for details. It is accessible from python as well.     2. SimulationController no longer asks for output format. It just uses XML, the only available one.     3. Engine, EngineUnit have timingInfo member and pointer to optional timingDeltas. Timing is disabled by default, but it may still have some overhead in the order <1% perhaps (will test)
+      1. Forgotten file with yade.timing.stats() that pretty-prints some numbers.
+      1. Move all container to core, remove linking with them since it is not necessary     2. Fix things so that everything compiles (at least) both with and without BexContainer     3. Parallelize ConstitutiveLawDispatcher, InteracionPhysicsMetaEngine and InteractionGeometryMetaEngine with openMP if enabled on command-line     4. Make InteractionVecMap default container for interactions; necessary for parallel code.
+      1. New InteractionDispatchers class that has one common loop for InteractionGeometryMetaEngine, InteractionPhysicsMetaEngine and ConstitutiveLawDispatcher. It can be used from python like this:
+      1. Adapt ForceEngine to BexContainer     2. Add BEX_CONTAINER and YADE_OPENMP flags to be reported by -h.
+      1. Add two more forgotten headers. They are not used anywhere, though, and will be removed later.
+      1. Enhancement of utils.box from Marco.
+      1. Make Shop load 4/5/6 columns text files for spheres (and skip 5-cols)     2. Change evaluation of args in readParamsFromTable to be able to pass strings better (single quotes) and consistently     3. Parameters passed as env. vars by yade-multi are prefixed with !     4. fix typo in timing for resetting timers.
+      1. Make the yade-multi scheduler multithread-aware.     2. Add the collider performance test as example     3. added utils.replaceCollider(anotherCollider) for convenience     4. added Omega().isChildClassOf(classNameChild,classNameParent)
+      1. Fix collider-perf (TriaxialTest has hardcoded dt=0.001 !!!!), set timestep by hand at first     2. Fix Shop:: loading spheres from file (regression from yesterday)     3. Add functorCache to Interaction and to InteractionDispatchers. About 5% improvement, but not yet finished.     4. Add DynLibDispatcher::getFunctor2D     5. Add BexContainer::sync() to other places in triaxial (thrown otherwise)
+      1. Fix old rename of runtime.args to runtime.argv in default-test.py. Should run OK now.
+      1. Fix for the compile error in snow for OrthogonalPlaneFit3. It still misses pkg/snow/Engine/ElawSnowLayersDeformation.cpp in the repo. Compile with exclude=...,snow as workaround.
+      1. Rename BroadInteractor to Collider.     2. Move some part of the contact logic to this common base class. The Collider::handleExistingInteraction is subject to discussion and not yet used.
+      1. Small fix in the collider code.
+      1. Remove SAPCollider completely     2. Make yade log4cxx 0.10 compatibile     3. Other minor fixes
+      1. Fix linking of realtime-rigidbody WRT PersistentSAPCollider
+      1. change default xiShear to 0 instead of NaN (is not used anyway)     2. Fix linking of mass-spring in cliean build
+      1. Fix #include's that include files not in the current source directory via "".     2. Add scripts/linkdeps.py that can automatically determine what plugin links to what other plugins, which can be once used for configurable monolithic/pluggable builds etc.
+      1. Fix crashed in TriaxialTest introduced by me a few days ago (referencing engine before being created)     2. Add simple (working?) memory usage query to utils and collider perf test.
+      1. Fixed collider performance benchmark     2. Added script to generate graph from log files (like http://yade.wikia.com/wiki/Colliders_performace)
+      1. Added SpheresContactGeometry::updateShearForce, will be used (not activated though yet) by ElasticContactLaw and other.
+      hotfix related to last commit
+      1. Initial checkout for the DemXDofGeom classes (will contain the hasShear code from SpheresContactGeometry and more eventually).
+      1. Preliminary version for sphere-facet collisions with total formulation (moderately tested).     2. Same for sphere-sphere collision.     3. test script for facet-sphere collision geometry.
+      1. Use local foreach.hpp if not found in the system     2. Use local file defining boost::python::len for boost<1.34
+      1. remove explicit linkage to boost_python in gui/SConscript
+      Forgotten empty file.
+      1. Remove logger from ClassFactory     2. Cleanup logging stuff in main (use constructor function, among other)     3. Cleanup system exit from python in PythonUI_rc.py     4. Add SpheresContactGeometry::updateShear that can be optionally used with ElasticContactLaw to update shear displacement instead of updating shearForce. triax-identical-results.py show quite large difference between both implementations, but I am not able to tell which one is correct. scripts/test/shear.py shown almost no difference for 2-sphere scenarios, modulo differences at 15th decimal place or so.     5. Remove debug output from BexContainer     6. Remove warning about meniscus data from CapillaryCohesiveLaw (warning is given in postProcessAttributes now, i.e. iff the class is actually used)     7. Add logger to snow.     8. Removed shear computation code in ElasticContactLaw, use SpheresContactGeometry::updateShearForce.     9. Fix scons deprecation warnings
+      1. Add functions to augment forces/torques in BexContainer.
+      1. Remove some garbage from SpheresContactGeometry     2. Verify that SCG_SHEAR doesn't alter behavior if ElasticContactLaw::useShear is false     3. Implement SCG_SHEAR for sphere-box interactions     4. sphere-box interactions no longer call goReverse, but swap interaction order instead, as facets do.     5. Fix triax-idnetical-results.py to reload generated initial config to avoid rounding issues of sphere coords in text file.
+      Minifix: link core with librt (clock_gettime) for platforms that require it
+      1. Add rate-dependent damage to normal and viscoplasticity to shear components of Brefcom (not yet tested, just compiles); other cleanups there.
+      1. add addF and addT to legacy ActionContainer
+      Add label attribute to engine units. Python wrapper updated.
+      1. Rate-dependent fixes (more to come) in brefcom.
+      1. Remove MetaBody::physicalActions if compiling with BEX_CONTAINER (default)     2. Make everything work with both BexContainer and deprecated PhysicalActionContainer     3. Change PhysicalActionDamper, PhysicalActionDamperUnit, PhysicalActionApplier and PhysicalActionApplierUnit to dispatch only according to PhysicalParameters (not PhysicalAction anymore). That means that only one unit will be called for each body and that NewtonsMomentumLaw has to do the job of NewtonsForceLaw as well (same for CundallNonViscousMomentumDamping).     4. Fix (finally) defaultDt computation in TriaxialTest (forgotten assignment to defaultDt in the GlobalStiffnessTimeStepper)     5. Fix (finally?) timestep manipulation form within the QtGUI. If reloading the same file, timestep settings will be preserved, otherwise those saved in the XML are used.
+      1. Create ef2_Spheres_Elastic_ElasticLaw that has the ElasticContactLaw algorithm     2. ElasticContactLaw now merely calls ef2_Spheres_Elastic_ElasticLaw.     3. TriaxialTest::parallel controls whether to use InteractionDispatchers or not.     4. Added examples/triax-perf to show the impact of that. Also see http://yade.wikia.com/wiki/Triaxial_Test_Parallel     5. Fix a few compilation issues.     6. Flush stdout before exiting from main, so that in case of crash upon exit (log4cxx?) we have all messages output.
+      1. Hotfix for 2 issues with ElasticContactLaw
+      1. Remove all traces of physical actions:
+      1. Remove Shop::Bex (no longer necessary)     2. Add InterpolatingDirectedForceEngine for Roger (not yet tested!)
+      1. Fix linking of ForceEngine with interpolation     2. Random rate-dependent things.     3. Typo in BexContainer docs
+      1. A few fixes in Brefcom.     2. Make python wrapper correctly handle long long attributes.     3. Added test script for InterpolatingDirectedForceEngine
+      1. MAJOR change in python syntax (backwards-compatible, though): through small bit of very dirty code,  classes can be instantiated as python objects with keyowrd arguments, i.e. instead of
+      1. cleanup UniaxialStrainer code, add vars to control length of the acceleration phase and the ability to set absolute speed     2. EngineUnits within InteractionDispatchers can be labeled and accessed from python now.     3. A few minor things in the plot module
+      1. Remove cruft from brefcom, a few fixes there     2. Add gnuplot grid to gnuplot by default     3. Fix speed in USCT     4. Fix InteractionDispatchers traversal in pyOmega
+      1. Fix weird python problem if LIBS is not defined by distuils (?)
+      1. Add working version of facet adjacency finder (to get their mutual angle at edge)
+      1. Parallelize initial bound filling in PersistentSAPCollider. Gives almost 3x speedup for the first step.     2. Fix missing headers so that it compiles with g++-4.4 (in QGLViewer)     3. FacetTopologyAnalyzer works (not tested extensively), questions of where to put topology data for InteractingFacet (will be raised on yade-dev)     4. Test script for FacetTopologyAnalyzer.
+      1. Remove leftover var in PersistentSAPCollider
+      1. Add preliminary gnuplot plots merging facility to yade-multi     2. Fix yade.log module so that it also works without log4cxx (and gives 1 warning)     3. Switch to new syntax in scripts/plot.py
+      1. Fix race condition in brefcom (omp critical section)     2. Remove -ffast-math from optimized build, since NaNs do not work properly (e.g. isnan(NaN)==false!)
+      1. Fix bug in FacetTopologyAnalyzer algorithm     2. Add angle info to InteractingFacet (not yet used)     3. Add triangulated sphere test for FacetTopoloyAnalyzer to facet-topo.py     4. Fixes in rate-dep in brefcom
+      1. Add approximate viscosity equations to brefcom (not working)     2. Fixes in yade-multi
+      1. Finish implementation of Dof3DofGeom_FacetSphere (with plastic slip as well)     2. Adapt Brefcom optionally to Dem3DofGeom     3. Add d0fixup to SpheresContactGeometry to get correct normal strain in sphere-facet contact with fictive sphere     (zero for sphere-sphere)     4. Finish FacetTopologyAnalyzer; angle usage in Dem4DofGeom_FacetSphere not yet tested.
+      1. Remove cruft from UniaxialStrainer, add the ability to set initial velocities to suppress inertia at the simulation beginning     2. Jobs in yade-multi can be automatically named after variables suffixed with !     3. yade-multi now shows and updates automatically some statistic on localhost:9080 using http
+      1. Finish Dem3Dof for both spheres and facets, migrate Brefcom. Removing stuff from SpheresContactGeometry is on schedule, once thorough testing is finished.     2. Fix attribute inheritance for a few engine units     3. Add ef2_Dem3Dof_Elastic_ElasticLaw, which works like ElasticContactLaw (but faster ;-) )     4. Remove BrefcomLaw, keep just the constitutive law as functor. Adapt sample generators for that.     5. Add hydrostatic confinement to brefcom (isoPrestress), remove viscApprox.     6. Add interface for querying and setting (doesn't work yet) number of openMP threads     7. Job description is taken from columns suffixed with ! or by combining all parameters     8. Add function for plotting yeild surface of brefcom to the eudoxos module     9. Oofem export now uses reference (starting) positions of particles as it should     10. Add "-" before profile name when generating default variant suffix in scons (which is expected)
+      Fix comp9ilation error for Janek.
+      1. Add python wrapper for clumps, see scripts/test/clump.py on how to use it (O.bodies.appendClumped)     2. Fix clump support in NewtonsDampedLaw (damping is quite wrong, it seems...; Bruno, any ideas on that?)     3. Move clump to pkg-dem (even though it depends on extra/Shop)     4. Remove absolute shear computation from SpheresContactGeometry, as Dem3Dof works fine now and Brefcom will not use SCG anymore; adapt a few other classes to that; remove ElasticContactLaw2 that was using it.     5.
+      1. Warn in --version if -ffast-math was used
+      1. Fixing bug in TriaxialCompressionEngine (introduced by luc apparently).
+      Big changes:
+      Handle boundingVolume-less bodies gracefully in InsertionSortCollider
+      1. Add utils.regularSphereOrthoPack by Anoton
+      Forgotten showcase.
+      1. Add InteractionContainer::requestErase to hint colliders that wouldn't otherwise see !isReal interactions.     2. Use this logic in InsertionSortCollider, PersistentSAPCollider, SpatialQuickSortCollider (noop in the last one)     3. Add InsertionSortCollider::sortThenCollide to make it behave as non-persistent collider (for debugging only?)     4. Add Interaction::reset() that has common initialization code.     5. Assign zero inertia to utils.facet (better than uninitialized binary garbage)     6. Fix contact logic in Brefcom, finally I get the same results with InsertionSortCollider as with SpatialQuickSortCollider on large simulation (more fixes to come)     7. Do not install pkg-config; fixes compilation error reported by the build bot.
+      1. Use bitfield instead of bools in InsertsionSortCollider     2. Revert accidental changes in insertion-sort-collider.py     3. Add function for using renamed classes from python with warning
+      Getting rid of the Brefcom name, classes renamed as follows (moving files around  will follow)
+      1. Add logic to scons to delete files that will not be installed in this run but are on-disk. This should make it unnecessary to remove files by hand. In the same way, disable implicit target cache which was making problems if files shuffle around.     2. Remove Brefcom* files, move to pkg/dem/ConcretePM.?pp. (not sure what other place, since it contains Engines, DataClasses etc in one file that I would refuse to break.).     3. Add detailed comments on ConcretePM to the ConcretePM.hpp     4. Remove extra/usct, moveUniaxialStrainer and put to pkg/dem; move SimpleScene from extra to pkg/dem     5. Remove core/yadeExceptions.*     6. Remove Preferences::dynLibDirectores and Preferences::version. Omega now recursively searches the lib directory for plugins and loads them. preferences.xml has only defaultGUILibName now. Finally. Remove baseDirs and other cruft from DynLibManager.
+      2 forgotten files (separated from UniaxialStrainer before)
+      1. Fix hopefully last relict of pkg-config     2. Degrade deleting non-existent interaction from fatal erro to warning only (not sure where that can come from, though.)
+      Solve the cause of nonexistent interactions being deleted (after O.interactions.clear()). Make warning fatal error again.
+      1. Remove Interaction::isNew, Interaction::isReal. Add Interaction::isReal() which test for presence of _both_ interactionGeometry and interactionPhysics and Interaction::isFresh() which checks the interaction creation timestamp against current iteration. Updated all code for that. Please verify that your stuff works, it is possible I made some mistakes!     2. All code saying isReal=false replaced by interaction->requestErase(id1,id2)     3. make requestErase thread-safe     4. Add interace for traversing interactions pending erase (template)     5. Add TriaxialTest::noFiles and TriaxialCompressionEngine::noFiles to not generate any files (default: off)     6. Add predicate utils.ptInAABB(p,minPt,maxPt)     7. utils.spheresToFile return number of spheres written (instead of None)     8. Add examples/concrete/pack to generate packing; other stuff in concrete will follow, with simplified version of the cpm model in ConcretePM.
+      1. Syntax fixes in ConcretePM model     2. Interactions will be deleted also if the ye4xist, but geometry functor fails (returns false)     3. Add utils.approxSectionArea, utils.spheresFromFileUnixial (get some parameters useful for uniaxial tests from the sphere packing, such as cross-section, principal axis, etc)     4. Add lib/computational-geometry/Hull2d.hpp for computing convex hull in 2d using Graham scan algorithm (I know it is in CGAL already, but I don't want to depend on that commercial stuff)     5. Remove some unused stuff from utils.
+      1. Add epsNPl to Cpm     2. Replace vector<body_id_t> by Vector2<body_id_t> and make it properly serializable (should be faster)     3. Add function to compute forces on interactions crossing plane.     4. Replace custom xcombine function by itertools.product in grid sphere packing
+      Fixes and cleanups in the CPM code.
+      Add new 'feature' to scons called openGL, which is on by default.     Qt3 GUI will not be built without openGL.     YADE_OPENGL is defined in openGL-enabled builds.     Sconscript files adapted to skip GL plugins or GL parts of plugins.
+      1. Fix missing libs for linkage     2. Fix a few typos
+      1. Don't link core with glut (is there a reason for that?)
+      Do not include X11 headers if without opengl
+      1. Move all python modules to PREFIX/lib/yadeSUFFIX/py/yade instead of */gui/yade     2. Add pack module for generating regular packings (thanks to Anton Gladky for his ideas & code)     3. Add _packPredicates module for solid inclusion testing.     4. Update regular-sphere-pack.py to test new packing features.
+      Remove leftover reularSpheresOrthoPack from utils. Is in yade.pack now.
+      Add pack.inHyperboloid predicate. Should be useful for cylindric specimen in uniaxial tension, but with the middle part having smaller diameter. Added to the test script as well.
+      1. Fix (hopefully) clump damping     2. Remove unused code from InsertionSortCollider     3. Make SimulationController NOT change timestep (rounding) by just opening it (!!)     4. Fix paths in PythonUI and lib/SConscript for $PREFIX/yade$SUFFIX/py/yade instead of $PREFIX/yade$SUFFIX/gui/yade
+      1. Add resetting interactionGeometry and interactionPhysics to Interaction::reset(), as it should be...     2. Small things in CPM     3. Add GaussAverage.data method to python (for debugging and plotting)
+      Include Python.h in PythonRunnerFilter. Build this plugin only with EMBED_PYTHON.
+      A few changes to allow run primarily python with qt3 on the top of that (open, close etc as needed). This paves way to running main yade process in python ;-) (just kidding, for now)
+      1. Handle groupMasks of bodies in InteractionDispatchers directly (not in geometry functors etc).     2. Fixes for qt3 started from within python     3. Add Body().dynamic flag to the wrapper, instead of using Body()['isDynamic'] all the time.
+      Anton's new things: axis-aligned ellipsoid predicate and fix in pack.regularHexa.
+      1. Add external euclid.py module (suggested by Anton, thanks!) to our installation
+      1. Propose *.sqlite ending for saved simulations instead of * in the player
+      Fix error-tolerant law which uses no interactionPhysics: add void Interaction physics in the geometry functor if returning true, to make Interaction::isReal return true. (Shouldn't we remove ErrorTolerant...? Does it have some serious use?)
+      1. Remove constructor priority for log4cxx to avoid syntax unsupported by gcc<=4.0.     2. Remove some commented cruft from FrictionLessElasticContactLaw
+      1. Add boolean operators on solid predicates (&,|,^,-), shown in scripts/test/regular-sphere-pack.py     2. Add notch predicate (not functional yet)     3. Add utils.alignedFacetBox to create hollow box from facets. Shown in new file scripts/test/facet-box.py
+      1. Update simulation filename in controller periodically     2. Fix notInNotch predicate, use infinite AABB for unbounded solids and raise exception in the packing generator if such is encountered.     3. Add notch to the head of regular-sphere-pack.py guy
+      1. Add checks for GTS (optional)     2. Add pyGTS to our tree (built only if needed), since no packages are available.
+      1. Fix corner case in InsertionSortCollider related to instability of std::sort (quicksort) and bodies having the same upper and lower bounds (facet in the xy plane, for example). Thanks to Anton for providing the crasher.
+      Fix feature macro definitions (typos)
+      1. Add GTS surface predicate     2. Add example of sphere horse falling onto facet horse in scripts/test/gts.py (try it!)     3. Predicate difference now takes padding in the inverse sense for the second predicate (logical)     4. Attempt to enable lightning on facets (no effect :-( )
+      1. Add coarsened horse geometry for the example gts.py
+      1. Rename ef2_Dem3Dof_Elastic_ElasticLaw to Law2_Dem3Dof_Elastic_Elastic (in scripts as well)
+      1. Make virtual methods on pack.Predicate work in python (inGtsSurface, for instance). Add scripts/test/gts-operators.py to show that.     2. Move scripts/test/gts.py to gts-horse.py     3. Add a few functions to pack for constructing triangulated revolution surfaces from meridians.
+      1. Padding support (though slow and not very precise) for pack.inGtsSurface
+      1. Fix crashers in InteractingMyTetrahedron* classes (introduced by me when updating interaction logic)     2. Reimplement inGtsSurface in c/c++ which makes it faster due to pygts interface limitations (addressed on pygts mailing list meanwhile), but is dirty programming.     3. Set CCOMSTR to correspond to CXXCOMSTR in SConstruct (to show nice line when compiling c source file, for pygts)     4. Set good-looking timestep in the TetrahedronsTest generator
+      1. Add triaxial packing generator, with optional memoization to sqlite database to avoid generating packing if there are suitable ones (same parameters/scalable to same parameters) available. Sample script will be provided soon. This allows for filling arbitrary (gts-defined, for example) volumes with irregular, high-quality sphere packing.     2. Add python-wrapped class SpherePack for manipulating sphere packings (loading, saving, spatial transformations, iterating)     3. Add shared_ptr<MetaBody> Omega::rootBodyAnother to be used with Omega().switchWorld()     4. Move some stuff from gui/py to lib/py, which is more logical hopefully     5. If negative value is specified for TriaxialTest::thickness, wall thickness will correspond to the mean sphere radius (avoids spheres going through the walls during compaction for some radii)
+      1. Add automatic converter from python::tuple to Vector3r and vice versa. Wrapped functions can take/return Vector3r directly instead of manual conversion. Clean code that had to do that. Let me know if something breaks, the changes should not touch any python code.     2. Some preliminary work on wrapping Vector+Quaternion classes in python via py++ (not enabled, just the files are there)     3. Add forgotten _packSphere.cpp, thanks to Vincent for reporting.
+      1. Add scripts/test/gts-traix-pack.py to demonstrate triaxial packing generator.
+      Remove useless include in GlobalStiffnessTimeStepper.
+      1. Fix STUPID (my fault, sorry!!) mistake in setting Interaction::iterMadeReal, which cause ElasticContactLaw to function wrong. It concerns a few other contact laws calling isFresh, which would return true as well. Sorry again.
+      1. Shuffling stuff around, moving most python things to py/     2. Wrapping Vector3r, Quaternionr and Vector2r in python directly, see scripts/wm3-wrap.py     3. Change the way utils.box, utils.sphere and utils.facet works: arguments to physical parameters are passed as keywords, not as dictionary now (update your old code by passing **dict instead of dict as the last argument)     4. Fix a bug with useShear, now getting almost identical results for triaxial again.     5. Preliminary Triaxial::facetWalls, to be able to used Dem3DofGeom with Triaxial. (not fully functional yet)     6. TriaxialStressController::thickness is -1 by default now (get thickness from box width), as 0 is real value for Facets. Doesn't change beahvior in any way.
+      1. Update triax-perf.py     2. Add Omega().tmpToString returning string of :memory: saved simluation
+      1. add yade.plot.resetData(), which unlike reset() resets just data     2. Add scripts/test/compare-identical.py to run 2 simulations at the same time and check at every step (configurable) if they differ or not.     3. Add active=active line to GlobalStiffnessTimeStepper, which for some reason causes two same simulations to be the same. Any explanation someone??
+      1. Add forgotten py/SConscript (sorry!)
+      1. Fix absolute path generated by py++
+      1. Dump XML in ConcretePM in case of problems (nan's)     2. InteractingFacet::postProcessAttributes gives FATAL message if there are coincident vertices     3. Update triax-perf, add script and openoffice sheet to make table     4. InsertionSortCollider is used in TriaxialTest always (not only with fast) now.
+      1. Change prototype of Engine::isActivated() to Engine::isActivate(MetaBody*)     2. Add maxVelocitySq to NewtonsDampedLaw for analysis purposes     3. Add BoundingVolumeMetaEngine::sweepTime and ::sweepDist to sweep bounding volume by given predicted motion over time or by given absolute distance.     4. Add strided run support to InsertionSortCollider (using sweeping)     5. Add scripts/test/collider-stride-triax.py to play with the strategies of sweeping based on strides     6. Add O.interactions.countReal()
+      1. Fix collider-stride.py to match changed parameters. (it is quite useless now, anyway
+      1. Make NewtonsDampedLaw compute maxVlocitySq at every step anew.     2. Make InsertionSortCollider find NewtonsDampedLaw and get max speed from there. Together with InsertionSortColider::sweepLength, this makes stride adapted automatically to maxVelocitySq; this will described at http://yade.wikia.com/wiki/Insertion_Sort_Collider_Stride.     3. Update test script for that.
+      1. Handle clumps in a better way in NewtonsDampedLaw (only if asked by the clump itself) -- future parallelization work. (related to bug #398086)     2. InsertionSortCollider now knows when to run based on maximum distance the fastest body could have travelled. (It is actually the physical meaning of sweepDistance). Handle varying maxVelocitySq in a constitent way.     3. Add InteractionContainer::serializeSorted to sort interactions by id1 and id2 before serializing (useful for comparing XML files). Added Interaction::operator< to compare 2 interactions in that way.     4. Fix openMP strategy in InteractionDispatchers to "guided" (as per https://blueprints.launchpad.net/yade/+spec/omp-schedule-strategy)
+      1. Remove doc/removed, it is in SVN history     2. Tune debian scripts to install docs+examples+scripts instead of headers (targets https://bugs.launchpad.net/yade/+bug/398174, but not yet finished)     3. Add depends on python-numpy instead of python-scientific packages for debian     4. Add ../py directory to doxygen (targets bug #398190)
+      1. Change NewtonsDampedLaw to a StandAloneEngine     2. add .updateExistingKeys (perhaps should be updateExistingAttributes) to all python-wrapped yade objects, which will change only existing attributes from given dictionary     3. Adapt STLImporterTest to new nicer syntax.
+      1. Add virtual destructors to all EngineUnits so that they can by dynamic_cast'ed to. This fixes possible crash from python, bug #398255     2. Rename updateExistingKeys to updateExistingAttrs, add updateAttrs.     3. Add forgotten script to demonstrate predicate operators     4. The default debug level is -ggdb2 (instead of -ggdb3). Libs are about 60% in size and still give the same debug information.
+      1. Rename scons option arcs to PGO (profile=guided optimizations)     2. Install only binaries by default (no docs, must be requested from cmd line via path)
+      1. Various fixes related to generating debian packages
+      1. Fix EngineUnits linkage for SImpleViscoelasticRelationships
+      1. Add velocity binning for collision optimization: requires cooperation of NewtonsDampedLaw, BoundingVolumeMetaEngine and InsertionSortCollider.     2. Remove time-based sweeping from BoundingVOlumeMetaEngine.     3. QtGUI doesn't show annoying warning when run from python session anymore.
+      1. Parallelized NewtonsDampedLaw (scales very well)     2. Parallelized VelocityBins     3. Add const modifier to BodyContainer::size     4. Add virtual dtors to PhysicalAction{Damper,Applier}Unit (for dynamic_cast'ing)
+      1. Move NewtonsDampedLaw to StandAloneEngine directory     2. Add omp critical to ConcretePM     3. Remove SphericalDEMSimulator
+      1. Add sweepLength to TriaxialTest if fast==true     2. Remove euclid from the pack module, since we use wrapped wm3 now.     3. Add _packObb.cpp to compute minimal oriented bounding box on cloud of points     4. inGtsSurface predicate with triaxialPack will work on the minimum OBB     5. Add check for engine to prevent crash as per https://bugs.launchpad.net/yade/+bug/399810     6. Enhance the pack.inSpace predicate to work as expected. Custom center can be given to the ctor
+      1. Fix non-tuple in graph specification     2. Allow plotting agains the y2 axis, after a special parameter '|||'.
+      1. Remove mutex from requestErase (should be verified to compile on non-openMP machine!)     2. Add mutex to PhysicalParameters, so that body state can be locked while updating from the interaction loop.     3. Add linking with EngineUnits to Tetra (thans Emanuelle)
+      why..??
+      1. Adapt simple-scene-graph.py to new instance syntax     2. Add support to y2axis to saved gnuplot plots     3. Change interface for yade.plot.addData to take **kw instead of straight dict (still backwards-compatible)
+      1. Do not use REGISTER_ATTRIBUTE anymore, use REGISTER_ATTRIBUTES instead everywhere. This generates (in addition to serialization code) also some python code and makes python independent on the yade serialization framework (Janek, if you want to try boost::serialization, I have no objections now).
+      1. Remove garbage from doc     2. Instruct getopt to not shuffle command-line arguments, so that their order is preserved     3. Add epydoc documentation for all python classes and functions
+      1. Fix linking logic for _packPredicates (fixes https://bugs.launchpad.net/yade/+bug/401029)     2. Make gts-horse coarse original horse automatically
+      Fix small bug in Velocity bins related to max sweep length (should improve performance as well). Still some incorrect things WRT bboxes, it seems.
+      1. Fix mathematical error with VelocityBins, verified by new script scripts/test/collider-sweep-simple.py to be correct     2. Add py/ directory to skipped dirs for linkdeps.py so that it works on current trunk
+      1. BIG CHANGE: pkg/ no longer have SConscript files but are scanned at startup for plugins. See http://yade.wikia.com/wiki/ImplicitBuilds for some details. Let me know if there are some problems.
+      add boost-serialization and boost-program-options to debian.
+      1. Move STILimport to pkg/dem, as it depends on dem     2. update RockPM with the new-old version (probably svn didn't update the moved version? what a deal. We should definitely move to bzr...)
+      1. Fix unreported version for the debian build
+      1. Fix snow compilation by #including Voxel/* files in SnowVoxeslLoader and noc compiling them directly (sorry)     2. STLReader is a pure-header import lib now, tolerance is passed as regular data member.     3. Fix all warnings in ConcretePM.     4. Merge lib/yade-* into lib/yade-support.
+      1. Fix monolithic compilation even with fem. All modules can now be compiled that way.
+      fix compilation?
+      Fix TetraTestGen crasher (functionally still brokne, though)
+      Remove SDECLinkGeometry, replaced by SpheresContactGeometry at a few places. Not checked for functionality. This avoid many warnings.
+      1. Fix linking with full Wm3 library     2. Automatically add /usr/include/wm3 to CPPPATH if useMiniWm3=False
+      1. Hopefully fix https://bugs.launchpad.net/yade/+bug/402098     2. Fast in TriaxialTest uses nBins==5 and binCoeff==2 for VelocityBins
+      1. Fix SnapshotEngine and simple-scene-video.py to run. It doesn't work, though, because of the makeCurrent() failed error (probably getting snapshot from another thread...)
+      1. Add GLViewer::nextFrameSnapshotFilename to save frame in postDraw     2. Adjust SnapshotEngine to take advantage of that. This should solve https://bugs.launchpad.net/yade/+bug/396023     3. utils.encodeVideoFromFrames can take list of files (instead of just wildcard). Backwards-compatible.     4. scons doc skips debian/ directory (would mess up if deb package was build)
+      1. Fix for https://bugs.launchpad.net/yade/+bug/406343 (at least for me)
+      1. Add GenericSpheresContactClass to unit radius1, radius2 and normal between SpheresContactGeometry and Dem3DofGeom (to make it work with GlobalSitffnessTimeStepper). Partially solves https://bugs.launchpad.net/yade/+bug/399963
+      1. Add docstrings to all wrapper.Omega() methods     2. Fix a few warnings.
+      Fix has_map warning and one more in FlowEngine.
+      1. Add infrastructure for getting temporary filenames in a secure manner to Omega     2. move selectedBOyd to MetaBody; initialize it properly to avoid possible crash.
+      Remove leftover SConscripts.
+      1. Change syntax of YADE_PLUGIN("Plugin1","Plugin2") to YADE_PLUGIN((Plugin1)(Plugin2)) (replaced everywhere)     2. Add some perliminary and not-enabled by default support for boost::serialization (see ClassFactory.hpp)     3. Add boost::serialization code for Se3r, Vector2r, Vector2<int>, Quaternionr     4. Do not reset BexContainer's moves and rotations uselessly (i.e. if not used)     5. Use Omega's mutex in SimulationController to prevent loading-related crashes
+      1. Don't use __COUNTER__ to generate plugin registration function names, as they wre added in gcc 4.3 Use the name of the first plugin instead.     2. Dem3Dof_SphereSphere takes touching distance as equilibrium if distanceFactor is <=1. The initial position otherwise (was the default everytime until now)
+      1. Generate proxy constructors to all classes deriving only from Serializable in python (like GLDrawBox and similar).     2. Fix scripts to have the new syntax everywhere, since e.g. EngineUnit is just abstract class that cannot be instantiated from python.     3. Add check fro valid data before saving plot to gnuplot; raise comprehensible exception if there is nothing to save.     4. Remove leftover scripts/pch.py
+      1. Add an example of uniaxial tension-compression test for concrete (ready long time ago...)
+      1. All different yade types are real python types now. They have their properties defined at startup. One can say O.bodies[0].shape.diffuseColor instead of O.bodies[0].shape['diffuseColor'] now. It also works much better with ipython tab-completion. It is not sure whether we will be able ever to deprecate the old object['attribute'] syntax.     2. Wrap ParallelEngine in python, and finish Dispatcher wraps as well.
+      1. Reset interaction radius after the initial contacts have been created.
+      Fix FileGenerator wrapper in PythonUI_rc.py (has different name in c++ (FileGenerator) and python (Preprocessor).
+      1. Rename Preprocessor in python to FileGenerator, to be consistent with c++. Preprocessor is never used directly, anyway. The old deprecated name put in the deprecation table.     2. Manage crash at exit in defaut-test gracefully     3. Fix serialization of pairs (overlooked replace)
+      1. Initial attempt at regression tests (only the python wrapper so far); run scripts/regression-tests.py     2. Fix a few bugs discovered that way :-)
+      1. Replace PersistentSAPCollider and DistantPersistentSAPCollider by InsertionSortCollider everywhere. The two are still in the sources, but are not compiled. Will be removed in near future. Added to deprecated table in python so that old scripts still work.     2. Add some more regression tests for the python wrapper.     3. Fix timestep in HangingCloth (it does some weird things, can someone check it or just remove mass-spring from the tree?)
+      1. Be more tolerant to specifying invalid GUI at the command line     2. Throw exception about unopenable $DISPLAY rather than letting QApplication abort()
+      1. Fix https://bugs.launchpad.net/bugs/409254
+      https://bugs.launchpad.net/yade/+bug/409254 take 2
+      Maybe fix https://bugs.launchpad.net/yade/+bug/409365
+      1. Fix (?) https://bugs.launchpad.net/yade/+bug/409254 by moving ClumpTestGen out of Clump.hpp     2. Avoid warnings in STL import code (return values _should_ be checked, though!)     3. Avoid warning in yade.cpp in optimized build
+      1. Infrastructure for periodic collision handling. Not at all functional at this moment, don't even try to use.
+      1. Beta version of periodic boundary conditions (try scripts/test/periodic-simple.py
+      1. Assign new function O.exitNoBacktrace to sys.exit. Fixes partially https://bugs.launchpad.net/yade/+bug/410250     2. Add some more comments to periodic stuff.
+      1. Script that shrinks the periodic cell progressively (reveals bugs in the collider, though ;-) )     2. Add function to compute total force in volume from interactions to Shop, wrapped in _utils as well.
+      1. Working periodic collider, yay!! scripts/test/periodic-grow.py shows that     2. A few changes related to that.
+      1. Add PeriIsoCompressor for periodic isotropic compression; see scripts/test/periodic-compress.py. Not so much slower than regular triax, nice surprise.     2. Make SpherePack standalone class (previously just in python's _packSpheres), add the function to generate cloud of spheres, both periodic and non-periodic. _packSpheres wrapper is update, but otherwise not changed.     3. Fix python-less compilation for se3 interpolator engine     4. Add Omega().runEngine()     5. Fix some compilation/linking issues.
+      1. Fix missing vtable for GenericSphereContact (crasher with debugging)     2. Fix collider stride for TriaxialTest with unspecified radius
+      1. Try to fix locking with boost-1.35, possibly fixes https://bugs.launchpad.net/yade/+bug/411572 (please confirm)     2. Add periodic repetition function to SpherePack
+      1. Fix linkage for boost<=1.34 (hopefully)
+      1. Fix a few things in SpherePack     2. Remove TriaxialTest::GenerateCloud, replaced by SpherePack::makeCloud     3. Fix crash in BoundingVolumeMetaEngine, if MetaBody has no boundingVolume     4. Improve sorting operator, remove workarounds for std::sort wrapping minima/maxima (https://bugs.launchpad.net/yade/+bug/402098)     5. Limit minimum cell width in PeriIsoCompressor, to not crash.     6. Add code for periodic packs in pack.triaxialPack (not yet fully functional)
+      1. Add #pragma once to SpherePack.hpp (possibly cause of https://bugs.launchpad.net/bugs/412442)     2. Fix crash in TetraTestGen (finally, I think), closing https://bugs.launchpad.net/bugs/408422     3. Add highlight parameter to utils.{facet,sphere,box}, passed to Body::geometricalModel
+      1. Fix assertion is 2d dispatch code, add indices to RpmPhys, RpmMat, CpmPhys, CpmMat (would break dispatching if using more classes derived from the same base in the dispatch matrix)
+      1. Remove {,Distant}PersistentSAPCollider and Fixed{Position,Orientation}Engine classes     2. Add test script for generating packing
+      1. Summarize important changes since the last release. Add your own things, if they are important for everybody (svn log has the small details)
+      1. Add scripts/rename-class.py for renaming classes (replaces in code, moves files with bzr, adds rename record to python). Not very well tested, though.     2. Remove core/StandAloneSimulator.*pp (not used anymore)
+      Add ignore patterns so that bzr st doesn't show (some) generated files
+      1. Merged upstream changes.
+      1. Clen the plugin loading logic a little (no nominal win32 support), support YADE_PREFIX for changing prefix (should be runtime-detected inthe future, anyway)     2. Use $ORIGIN in rpath to make yade relocatable; it can be fragile, let me know if there are troubles!     3. Add make check to the debian package (will be tested soon)
+      1. Add compatibility for hardy     2. Fix missing newlines (hardy compiler gives warning)
+      Adjust rpath for the main executable (ugly hack)
+      Run tests in debian package (not failing if the test crashes, though, for now)
+      1. IMPORTANT! All features are lower-cased now (avoids mess: openGL or OpenGL etc). This will probably break your profile files.     2. IMPORTANT! openmp is one of features, no longer a separate options. Adjust your profiles     3. Rename LOG4CXX to YADE_LOG4CXX; all features now #define YADE_FEATURE macros     4. Better $ORIGIN syntax in scons     5. Abort yade if running PythonUI_rc.py fails     6. Adjust pbuilder script
+      1. Add wrapper for running tests, to trap exit segfault at squeeze     2. Use the wrapper for tests in debian/control     3. Add wrapper for vector<Se3r>
+      Make the test script report what distribution failed (currently only karmic).
+      Fix GTS features (thanks for spotting that; we need regression tests for all the modules)
+      1. Skip more stuff in doxygen, a few warnings     2. Add debugging code to DynLibDispatcher (disabled)
+      1. Rewrite 2d dispatching code from scratch     2. Expose classIndex to python for indexable classes     3. scripts/test-sphere-facet.py shows how the dispatch matrix fills with data
+      Add python 2.5 compatibility hack
+      Avoid error in pack.triaxialTest if compiled without GTS.
+      1. PeriIsoCompressor: add keepProportions parameter (on by default), decrease global updates interval.     2. Omega: startSimulationLoop warns if there is no simulationLoop (how can that happen? It somehow can)     3. SpherePack: resets periodicity (and warns) if being rotated; cellSize is writable now.     4. pack.triaxialPack: renamed to pack.randomDensePack; fix loads of stuff in that; rename radiusStDev parameter to rRelFuzz; add epydoc documentation; fix erroneous detection of inGtsSurface being defined     5. wrapper: lock renderer when adding list of bodies; Omega().resetThisWorld to reset current world only.     6. Fix scripts/test/{gts-random-pack.py,gts-random-obb.py}
+      ef2_Sphere_Sphere_Dem3Dof: change meaning of distanceFactor, see docs (if < 0, equilibrium is sum of radii, otherwise the initial distance; defaults to -1). Renamed to distFactor, to break old code intentionally     InteractingSphere2AABB: allow negative aabbEnlargeFactor, which doesn't scale aabb at all (same as if it is 1.)     yade-multi: use the first non-blank line as column headings (not necessarily the first line of the file, as is used to be)     SpatialQuickSortCollider: fix clearing interaction with openMP     examples/concrete/uniaxial: move files around, add confinement and docs; remove examples/concrete/pack since not in the pack module (an example should be given, though)     examples/collider-perf: remove PersistentSAPCollider, add InsertionSortCollide with strides, but commented out since no effect at hthe beginning of simulation     PeriodicInsertionSortCollider: remove unnecessary (hopefully) condition that would abort in scripts/test/periodic-simple.py
+      PeriIsoCompressor: fix absolute displacements changing proportions, operate on averages instead     pack.randomDensePack: fix proportions in periodic packs; change residual stress to 1e8 instead of 1e9
+      SConstruct: remove obsolete (unused) standalone openmp option
+      yadeWrapper: Fix compilation with boost<1.35 (again)
+      (now?)
+      1. Fix startup crash if no $DISPLAY set at all
+      miniWm3Wrap: update with newer py++; still errors out at karmic     spirit: avoid warning with newer boost versions
+      Add gts to depends on the script.
+      Remove unnecessary inclusion of indexing_suite which breaks compilation for boost<1.34 (or something like that).
+      utils.uniaxialTestFeatures: fix compat with py2.5     SConstruct: fix compilation issues with older symlinks in include dirs
+      Fix OperationalError, reported by Janek in https://bugs.launchpad.net/yade/+bug/416906
+      SConstruct: add doc for pretty, fix a few lib checks on karmic
+      Fix version detection on systems where version is not specified by hand or in RELEASE file and bzr is not installed
+      main: disable SIGHUP handler (emergency save) and automatic loading.
+      1. Remove garbage from examples.     2. Fix SpheresFactory, fix examples/SpheresFactory/model.py
+      move SpheresFactor to scripts/test as it doesn't work. Add notes to changelog and news.
+      Forgotten file
+      Mark release version
+      Add mill script mimicking http://www.youtube.com/watch?v=005rdDBoe4w     Some changes in qt interface (useless)     Add series to package version to allow same version for multiple series in the ppa (0.20-1~hardy, 0.20-1~karmic etc)
+      Added script for http://www.youtube.com/watch?v=KUv26xlh89I
+      1. Fix facet lighting, mill shown with wire=False now (looks better)     2. Revert recent useless change in QtGUI-python
+      1. Enabling O.timingEnabled when running will not produce garbage values for current engine anymore     2. Add maxRefRelStep to VelocityBins, to limit speed fo maximum velocity changes     3. Fix epydoc format for utils.encodeVideoFromFrames and utils.uniaxialTestFeatures
+      1. Do not save potential-only interactions to the XML; do not save pendingErase interactions (are only potential)     2. Do not save interactions in SQLiteRecorder by default (saveInteractions=True if you want the old behavior)     3. Add slider to the simulation player, in the "snaps" tab
+      1. Add scene that has been sitting here for a few days (should be run for comparison with pfc3d)
+      Workaround bug #416335; static members of Vector3 work only on instance, e.g. Vector3.ZERO will not work, you have to use Vector3().ZERO; changed all occurences in the code accordingly, update your scripts as well.\n2.Some undocumented and untested enhancements for parameter table (backwards compatible)
+
+==================================================
+yade-0.20.0
+Sat Sep 19 21:41:52 2009 +0200
+
+Anton Gladky (33):
+      1. This is my first test commit     2. Added some initial files for mining rocks classes simulation
+      1. Some changes in RockPM, still does not work good
+      1. Some small changes on RockPM.* files     2. Test SVN_2_email
+      1. Test     2. RockPM.* updated
+      Changes on RockPM.* files
+      1. RockPM, first variant of "destruction mechanism"
+      1. Deleted euclid.py
+      1. delete euclid.py (fised Sconscript)
+      1. In utils.py alignedFacetBox has been changed to facetBox. It is now possible to create arbitrarily-aligned box composed of facets     2. Updated regular-sphere-pack.py     3. Some small changes on RockPM.cpp
+      1. RockPM update. Added simple "destruction mechanism"     2. Added scripts/installOnUbuntu.sh to make "oneButton-checkout+compile+install+doxygen+epydoc" script. Not tested yet. Requires corrections.
+      1. Updated some scripts according to new syntax
+      1. Added PressTestEngine for simulating presses.        Can be used and for PointLoadTest simulations.
+      1. Updated simple-scene-graph.py according to a new syntax     2. Updated simple-scene-video.py according to a new syntax
+      1. Changes on PressTestEngine. Now it defines the destruction moment more precisely     2. YADE CONSOLE emblem shows now without upper row shifted.
+      1. Some small changes
+      1. All variables initialize in PressTestEngine and RockPm
+      Some changes on News
+      Fix compile error
+      1. Partly fixed
+      1. Almost fixed https://bugs.launchpad.net/yade/+bug/412892     Just 1 warning:
+      Some changes in INSTALL file because of migrating to BZR
+      Some changes on one-click-install script
+      Added "warning" in one-click-install script
+      1. Fixes compiling error without openmp feature.
+      1. 418107, I guess it is more correctly.
+      Some nonessential changes
+      Blocked some warnings in RockPM.cpp
+      Small changes
+      Press Engine and RockPM changes
+      Added demonstration of buldozer simulation
+      "Thanks" and Thanks to Janek :)
+      Fixes VTK-librabry dependencies for Ubuntu
+      Some small changes on Buldozer
+
+Bruno Chareyre (16):
+      1. Fixed a critical bug in ElasticContactInteraction (kn, was not registered and left undefined after loading a simulation).     2. Test if fn!=0 (i.e. contact exists) before adding kn/ks to the global stiffness.
+      1. "Water" classes are updated based on the code developped locally (but not commited for a while) by Luc Scholtes.     2. Triangulation code updated as well (not compiled by default).
+      1. Add a missing class (for the capillarity model), this fixes a compilation error in the previous commit due to the missing files.
+      The "stopSimulation" command in the compression engine is now optional, as sometimes you don't want it to stop at all(1).     The default behaviour of the compressionEngine is not affected, with autoStopSimulation=true by default.     However, the TriaxialTest IS affected : it sets autoStopSimulation=false by default.
+      1. Update capillary files and add a new engine for them.     2. Prepare for removing old useless classes (typically some variants of engines with "water" at the end)
+      Remove useless dependency.
+      -Avoid crash when computing fusion number (it was using pointers to deleted interractions)     FIXME : no distant meniscii for now due to deletion by the contact law.
+      Base class for the solid-fluid coupling (E. Catalano PhD).
+      -Register "thickness" so that sample dimensions are computed correctly (and not with 0 thickness)
+      Dimensions could be 0 when "updateParameters" was called from TriaxialCompressionEngine before     TTController::action
+      Missing  declarations in r1836.
+      - cleanup : removing unused (and useless) "water" variants of engines     - some cleanup in recorders too
+      Update of the read/write functions for the connection     with comsol. (coupling via Berkeley<->Grenoble mail servers! ;))
+      Missing declarations of member variables.
+      <none>
+      Set default read/write behaviour as in Andrea's version.
+
+Feng Chen (1):
+      This is viscous force damping, equation similar to http://en.wikipedia.org/wiki/Damping, damping parameters are controlled by betaNormal and betaShear, it is sometimes more realistic than the non-viscous (or say, local) damping.     While using this code, please make a reference to:
+
+Janek Kozicki (40):
+      created nearly empty snow package: pkg-snow
+      Snow stuff - generate grains made of layers according to voxel data read from file. And daraw it.
+      forgot some files
+      - make it compile with boost 1.34     - some snow improvements
+      - another fix. now it really compiles with boost 1.34
+      1. TriaxialStressController reads radius from interactingGeometry
+      Code wasn't compiling because of #include MicroMacroAnalyser - comment it out.
+      1. argh, guys. svn HEAD must compile. You didn't check your commits and then I waste 1h to fix that. See this commit, to check what I had to comment out about WATER
+      - added keyboard shortcut '.' that toggles grid subdivision by 10     - fixed error with grid step     - grid step is now shown in gl window
+      small snow update
+      another small snow update
+      1. small snow update     2. fix compilation error by Vaclav (hey, you didn't compile again before commit! ;p )
+      rename file to avoid case conflict with directory
+      1. GLViewer - when sth. is selected don't move it to 0,0,0 position, but use its original position. This is done by delaying assignment to the next call of draw()
+      - added extensive comments to the polyhedron code which will be used for collisions
+      small snow update
+      maybe spheres won't disappear anymore?
+      a placeholder for drawing snow interactions
+      changed guards to #pragma once
+      postpone creating a 3d view, until a file is loaded. That should hopefully fix the problem with the primary view being empty.
+      added AUTHORS file, for the purpose of updating file headers.     This was copied from  http://yade.wikia.com/wiki/Authors
+      Why do I have the impression that I'm adding this file a second time? After all it's referred to in almost all source files "See file LICENSE for details.", right?
+      sort people in alphabetical order
+      sorry for bumping up revisions....
+      Snow, as it is finished by me. Further work on it will to be done by next post-doc     researcher who wants money from EU for working on this :)
+      fix miniwm3 / full wm3 compilation error
+      I forgot to add those, sorry. (I wonder how it could stay unnoticed for so long ;)
+      add option for horizontal or vertical wires in fibre reinforced concrete.
+      1. correct display of lattice rods on 0th iteration     2. on/off switch for using different stiffness for tension and compression in lattice     3. fixed a bug in BodyRedirectionVector related to deleting of bodies     4. two more lattice examples     5. few more safety checks in lattice code
+      1. NullGUI was still usin .gz while thay are not supported anymore     2. small lattice update
+      sanitize stupid numers in QtGUI, eg. 0.1299999999999 becomes 0.13
+      small fix
+      after isNew and isReal are removed I'll update the code to use new contact logic.
+      Add an option to display DOFs and body IDs in the OpenGL window
+      - Lattice uses DOFs now     - old implementation is still accessible by setting a flag backward_compatible, so that hundreds of my old FileGenerator files will still work     - some improvements to recording strains and forces
+      - fix all my warnings     - lattice generator improvements wrt concrete with steel fibres
+      - some improvements wrt to generation of densely packed aggregates and steel fibres in the concrete structure
+      - testing command "bzr commit --fixes lp:414868"     - fixing bug 414868
+      Fix stupid error introduced when we have migrated to bex container
+      1. get snow code to run, albeit still buggy     2. why dynamic_casts stopped working everywhere, that's a mystery to me     3. interactions isNew doesn't exist anymore, snow code needs update for this
+
+Jerome Duriez (2):
+      - Correction of the headers of two files "ContactLaw1Interaction" which were commited by me and not by Bruno     - Some features of ContactLaw1Interaction were declared in ElasticContactInteraction. This was a mistake totally not planned (and the fact it was in svn also was not     noticed) and is now corrected
+      - End of the job by suppressing also the corresponding lines in .cpp...
+
+Luc Sibille (1):
+      I added a new engine "ThreeDTriaxialEngine" to perform triaxial simulations with an independant control in stress or in strain in     the three space directions respectively. In this goal, the TriaxialStressControlEngine has been sligtly modified to impose a     different stress value or strainrate in each space direction. I hope I have broken nothing!
+
+Sergei Dorofeenko (28):
+      Intermediate commit for SpheresFactory. Don't work yet.     1. New engine SpheresFactory     2. Add function engineByLabel to MetaBody     3. Add members to BroadInteractor.
+      1.First worked version of SpheresFactory engine. Example in examples/SpheresFactory     2.Added PersistentSAPCollider::probeBoundingVolume function (for using with SpheresFactory)     3.InteractionGeometryMetaEngine::explicitAction has been modified to remove artifical (as me seems) asserts.     4.python import_stl_geometry now return list of body ids instead only their number.     5.import stl geometry now allows import facets without BoundingVolume  and InteractingGeometry.     6.Fixed dynamic_cast for BroadInteractor.
+      1. SpheresFactory allows now to create spheres in a convex volume.     2. SimulationController estimates total simulation time if stopAtIteration>0.
+      1. SimulationPlayer now allows to reload filters without reloading all simulation.     2. ColorizedVelocityFilter now allows to setup minValue,maxValue without reloading the filter.
+      Fixed bug in RotationEngine: rotationAxis now normalized in action(), not in postProcessAttributes()
+      ColorizedVelocityFilter counts a scale for each frame, without using previous min,max values.
+      Class SimpleViscoelasticInteraction is renamed to ViscoelasticInteraction and is inherited from ElasticContactInteraction now.
+      1. Convert SimpleViscoelasticContactLaw to ConstitutiveLaw engine unit (Spheres_Viscoelastic_SimpleViscoelasticContactLaw).     2. SimulatonPlayer have now Display tab as one in SimulationController.
+      1. The experimental widget for drawing a color scale for colorized velocity filter.     2. Convenient python function utils.ColorizedVelocityFilter.
+      Merging utils.*_v2 functions with their "first" analogs.
+      Add two new filters: ColorizedTimeFilter and PythonRunnerFilter
+      Migrate GravityEngines and ConstitutiveLaw to BEX_CONTAINER
+      Convert STLImporterTest to ConstitutiveLaw (SimpleViscoelastic contact model) and NewtonsDampedLaw engine.
+      Fix bug in serialization for ViscoelasticInteraction.     Fix compilation error for InteractionHashMap
+      Update contact logic for SpatialQuickSortCollider (hope, it's correct)
+      Fix typo in PersistentSAPCollider
+      1. Remove zeroPoint     2. Add prefix ef2_ to Spheres_Viscoelastic_SimpleViscoelasticContactLaw
+      Fix link errors
+      fixed and updated some examples in keeping with last modifications
+      Realise InsertionSortCollider::probeBoundingVolume() so SpheresFactory now works
+      SpheresFactory now can create a spheres by python function. See scripts/test/SpheresFactory/model.py for example.
+      Add export python module with VTKWriter class (very initial) to export data from YADE to VTK-based post-processing tools
+      Added a c++ VTKRecorder (for spheres and facets) and new feature 'vtk' needed for it.
+      Add colors rec to VTKRecorder
+      Add default path for VTK
+      Fix VTKRecorder headers
+      Fix VTKRecorder headers
+      Add VTKINCDIR to configure options for directories where to look for VTK headers
+
+Unknown (1):
+      The isotropic compaction into the TraxialTest is activated: 1)I have deleted the translationspeed parameter (now the translation speed of walls is the strainRate parameter) 2)I have activated the porosity parameter in the TriaxailStressController.cpp file
+
+Vincent Richefeu (38):
+      - add the soft mgpost for DEM simulation post-processing and visualization.
+      - set menus in english mode
+      A very quick guide for mgpost (usage and XML format)
+      a forgotten file in mgpost/doc
+      - add a new tool for sphere packing (still in dev)     - some enhancement in mgpost interface
+      - SpherePadder devel...
+      SpherePadder devel...
+      SpherePadder (devel: 5 steps ok)
+      - SpherePadder update     - add a basic 'user friend' interface for sphere packing generation. The module can of course be used without this interface.
+      Speed enhacement for the SpherePadder algorithm.
+      Add possibility to make PNG screenshots (using libpng)
+      Add a DataRecoder that generate MGP files (only for Spheres for the moment).     The MGP files can then be read with mgpost.
+      - add a class based on CGAL for 3D triangulation.     - Packing method enhanced (place 380000 spheres in less than 2 min)
+      Fix some bugs and enhance the display of positive and negative forces
+      Fix some bugs
+      Begin devel. of densification process
+      2 files that were forgotten
+      Simplify sphere shapes when if there number is increased
+      Bug corrections (min and max radii)
+      - overlap with spheres inserted by user -> bug fixed     - Densification begins to work
+      Increase the number of colors for the display of body's groupMasks from 6 to 10
+      We can now make the packing denser with a stop criterion based on the solid fraction or total number of spheres.
+      Add BasicViscoelasticRelationships: an alternative to SimpleViscoelasticRelationships. It accounts for the effective mass of each contact and considere the parameter cn as a dimensionless ponderation of its critical value (computed for each contact). Parameter cs is set to zero for the moment.
+      Add a boost.python wrapper (module packing)
+      Add a function to SpherePadder_wrapper to pass the result back to python.     As Vaclav suggested, it is a list of (x,y,z,R) tuples.     (Complet integration into yade is not done yet)
+      - Add 'HistoryRecorder' to save the sample and network state with a given time-step interval.     - Correct a small bug due to the fact that a Clump cannot be casted into a GeometricalModel (and I don't know why!)
+      Use the clump mass instead of clump-member mass for the determination of the effective mass.
+      Ooops! There was a bug
+      Add the function NormalRestitution2DampingRate.
+      Add sphere reading for gdm-tk format
+      Remove default linkage with libtiff (png is now prefered)
+      Add an example of python script for SpherePadder
+      Add GroupRelationData serialization (not used yet in *Relationships classes)     This class serves to manage parameters between bodies depending on their groupMasks.     Here is an example of 'command stream' in xml file to set the parameters:     <grpRelationData _className_="GroupRelationData"  commands_="[ngrp 2 parameter kn setall kn 1e6]" />
+      Just try to use GroupRelationData with BasicViscolelasticRelationships.
+      Cast size_t to int in pow(double,int) function to avoid ambiguity for gcc (compilation failled on one of my computer)
+      Some tiny modifications for Mac OS X compatibility (Does not compil yet).
+      Some forgotten tasks
+      replace gcc-3.3 by gcc in the Makefile.macosx of mgpost
+
+Václav Šmilauer (269):
+      1. Add linear templated interpolation function working on 2 lists, t and values     2. Add InterpolatingRotationEngine that changes rotation speed as given by value table     3. Lower info about starting python thread to debug message only.
+      1. Rename REGISTER_SERIALIZABLE(class,bool) to REGISTER_SERIALIZABLE_GENERIC, add two macros REGISTER_SERIALIZABLE and REGISTER_SERIALIZABLE_FUNDAMENTAL. Changed all uses accordingly.     2. Added REGISTER_CLASS_AND_BASE(class,base) which performs REGISTER_CLASS_NAME and REGISTER_BASE_CLASS_NAME at once.     3. Added REGISTER_ATTRIBUTES (not trailing 'S'), expanding to void registerAttributes(){...}, and REGISTER_ATTRIBUTES_WITH_BASE, which prepends call to baseClass::registerAttributes() (specified as the first argument).
+      1. Added Se3Interpolator engine, with scripts/test/Se3Interpolator.py     2. Added from math import * to PythonUI_rc.py so that math functions are readily accessible everywhere     3. Implemented stopStrain in UniaxialStrainControlledTest     4. other small fixes
+      1. Modify REGISTER_ATTRIBUTES macro so that it work with or without base class given. Change all headers in core to use that. It should help us if we ever make the transition to boost::serialization.     2. User REGISTER_CLASS_AND_BASE instead of REGISTER_CLASS_NAME and REGISTER_BASE_CLASS in core and at a few other places.
+      1. Removed cerr garbage from glviewer (use LOG_DEBUG if needed)
+      1. Fix warnings in GLViewer     2. Add (35.4%)-style counter if stopAtIteration is set to the OSD in gl view     3. Add utils.downCast to downcast object to its derived class and copying all attributes.     4. Add utils.SpherePWaveTimeStep to compute critical dt from a few parameters only     5. Add routine to compute overall kinetic energy to Shop (indirectly to utils as well)     6. Add routine to sum torque (momentum) with respect to an axis from forces and torques on given set of bodies.
+      Fix typo (compilation error in debug mode) in Shop::kineticEnergy
+      1. Fix a bug in rotation ode in SpheresContactGeometry. Now the code gives the same results as almost-for-sure-correct FEM code regarding strain computation.     2. Add label attribute to StandAloneEngine (inherits from Engine)
+      omg
+      (code cleanup, no functional changes)
+      Exit once the simulation finishes; do not rely on simulation exiting itself.
+      1. SpiralEngine that does both rotation and translation along the same axis     2. InterpolatingSpiralEngine for variable rotation+translation speed (replaces InterpolationgRotationEngine)     3. scripts/test-spiral.py for rudimentary functionality testing.
+      1. Un-disallow (bug) having all dimensions scalable in triaxial if particle radius is fixed.     2. Don't record anything by default to file in UniaxialStrainer (only useful for debugging)
+      1. Add a few functions for integrating piecewise-linear functions in new module yade.linterpolation
+      1. fix damage colorizer (removed dynamic_cast causing segfaults on non-spheres)     2. InterpolatingSpiralEngine now takes bool wrap rather than Real period.     3. qt.makePlayerVideo takse startWait argument, which waits for Backspace before starting (useful for setting up the view manually); postLoadHook gets run afterwards now.
+      1. Add algorithm for pushing sphere always to the same side when in contact with facet, even under extreme stress where the sphere geometrically passes to the other side.     2. Add bool SpheresContactGeometry::initContactOnPositiveFacetSide for that     3. Add test/demo script for that.     4. Re-enabled GLDrawSphere::glutUse (cosurgi?)     5. Renamed yade.runtime.args to argv, to be consistent with sys.argv     6. Allow passing sys.argv (arguments to scripts) through QtGUI as well
+      1. Fix clip plane orientation inversion as well as wheel normal movement.     2. Clip planes not displayed at all unless one of the clip planes is being manupulated.
+      1. Unbreak bad type (list) for sys.argv[0], broken recently     2. Color bodies by residual strength rather than damage parameter (smoother)     3. Make player messages (maybe) better formatted
+      omg...
+      1. Make player reuse existing renderer if there is one (allows setting Draw_mask etc before running player)     2. Add initRun parameter to PeriodicEngine (false by default), to run at the very fist run.
+      1. Make BrefcomDamageColorizer run at 0th iteration as well     2. Make player set stopAtIter to last iteration in db so that percentage is displayed in the output.
+      Fix previous commit, overlooked. sorry.
+      1. Number lines in parameter table for multijobs from 1 (as text editors do)     2. Print short summary at the end of job log (when started, when finished, exit status, duration, commandline)
+      1. Fix logic typo in QtGUI (warning when there shouldn't be and vice versa)
+      1. logarithmic strain for Brefcom.     2. change sphere-facet algorithm such that it works on corners. Maybe no longer necessary, but it doesn't hurt now. scripts/test-sphere-facet-corner.py as provided by sega demonstrates that.     3. "from __future__ import division" in python init such that 3/2==1.5 and 3//2=1 (is default since python 2.6)     4. Global GL lock to avoid crashes/freezes with GL accessed from multiple threads concurrently. scripts/gl-test.py (which used to crash) now works with one view;     5. Properly lock/unlock on all gl ops in QtGUI-python.cpp, like setting view direction, resizing etc.     6. Fix wrong assertion in SQLite player     7. add Omega().resetTime to reset iteration number, virtual and real time.     8. Changed utils.loadVars/saveVars code to be more reliable.     9. Added utils.aabbExtrema2d
+      1. Lock GL when closing view. Seems to fix crashes / delays at exit
+      1. Contact sphere-facet must be deleted by the constitutive law once created. Let me know if that is a problem -- I think it is the way it should be in the future everywhere, though.     2. Fixes for boost 1.37 (boost::thread not fully compatible)     3. utils.basidDEMEngines (not tested yet)     4. Fix warning in GroupRelationData     5. add march switch to scons ('native' is default, but not supported by older compilers)     6. Prepend default CXXFLAGS so that user-defined ones (like warning suppression) come after the default ones and override those.
+      1. Tentative fix for newer scons, which links empty files (dummy plugins) with plain gcc and doesn't find default c++ libs to link with.
+      1. File not needed.
+      1. Beautify no-debug code in main     2. SpiralEngine now saves angle it has turned so far     3. Remove failing assertion from IFacet2ISphere4SCG (why it fails? it was a (I->isReal&&I->interactionGeometry)||(!I->isReal&&!I->interactionGeometry)...)     4. Improve the utils.spiralproject function to specify period (moderately tested, but seems to work)     5. Adjust locks in GLViewer. Fixes my crashes on nvidia for both player and 3d view (didn't dare to try 2nd view). Next step will be to move this lock to Omega and lock it when loading/resetting simulation etc.     6. Change theora video quality to 63 (maximum) instead of medium 32 in utils.encodeVideoFromFrames. Makes the video about 3x bigger.
+      Two BIG changes:
+      1. Add ef2_Spheres_Brefcom_BrefcomLaw, is faster (!)     2. Fix locking in Omega, we don't get crashes when loading simulation with the 3D view enabled anymore (please report any further crashes in OpenGLRenderingEngine, that should be fixed)     3. Automatic update of Doxygen configuration file     4. Dem3DofContactGeometry, which should be in near future parent of SpheresContactGeometry and other new geometries providing normal and shear strains (SphereFacetContactGeometry, in my mind)     5. Add convenience function to apply force to contact point between two particles.
+      (remove no-warn for c++0x since that flag is not known to gcc-3.4)
+      1. Add possibility to change container types from python (for benchmarks) -- code not yet tested!     2. Possible optimization in PhysicalActionVectorVector, now disabled.
+      collider mistake hotfix
+      1. Make triaxial stop if !autoCompressionActivation and already unloaded. If this breaks something, please let me know, we can do it otherwise, but, for Cundall's sake, can we keep the same behavior for at least 6 months??     2. SpatialQuickSortCollider will not delete real contacts, even if bodies don't collide.     3. Remove redundant attribute registration from SpheresContactGeometry
+      fix typo in collider
+      1. removed persistentInteraction from most places; they are still present in MetaBody, but not serialized any more, most importantly (avoids warnings) and not GL-drawn.     2. Plugin loading loginc completely changes, the underlying macro YADE_PLUGIN has still the same interface. We used __attribute__((constructor)), __attribute__((visibility("internal"))) and anonymous namespace magic to get there. This will make it possible to put multiple plugins to a single shared library without touching the source, only fiddling with SConscript's.     3. PythonUI is interactive by default (it was not?? weird.)
+      1. Add new non-generic Bex container. For non-optimized build, it increased the speed by about 11% (9:35 vs. 8:49) as compared to PhysicalActionVectorVector.
+      Users willling to go with the slower PhysicalActionContainer can compile with scons CXXFLAGS=-DNO_BEX now to get the old behavior.
+      1. Adapted TriaxialTest and ElasticContactLaw to BexContainer (switchable at compile-time).     2. Adapter GlobalStiffnessTimeStepper to BexContainer (GlobalStiffnessCounter code put to a function inside this one, hence that engine is not needed anymore).     3. Adapted Shop::Bex to BexContainer (probably not needed anymore?)     4. Exception is thrown in PhysicalActionVectorVector is used && built with BEX_CONTAINER (would most likely crash anyway).     5. transientInteractions and persistentInteractions are only references to MetaBody::interactions now. Removed extra loops in InteractionPhysicsMetaEngine and InteractionGeometryMetaEngine.     6. Remove including qglviewer into miniWm3, as it breaks compilation if using miniWm3 separately from yade (for testing purposes).
+      1. Define Janek's functions to convert from/to QGLViewer vector where they are used.
+      1. Add BexContainer (same interface, but separate implementation) in openMP flavor.     2. openmp=0 is the default for scons now (for some time), since openMP BexContainer gives about 7% slowdown and thus is not useful before at least some engines are parallelized as well.     3. Removed getting references to Force/Torque from BexContainer, since that breaks concurrency. Instead, addForce/addTorque must be used. If you need to read back with getForce/getTorque, you have to call sync() (expensive!!) beforehand, which will compute summary values for all bodies; if you forget, exception will be thrown. Note that sync() is invalidated at next write operation.     4. Adapted a few constitutive laws and other engines for the changes mentiones here.
+      1. Add time-profiling classes. See http://yade.wikia.com/wiki/Speed_profiling_using_TimingInfo_and_TimingDeltas_classes for details. It is accessible from python as well.     2. SimulationController no longer asks for output format. It just uses XML, the only available one.     3. Engine, EngineUnit have timingInfo member and pointer to optional timingDeltas. Timing is disabled by default, but it may still have some overhead in the order <1% perhaps (will test)
+      1. Forgotten file with yade.timing.stats() that pretty-prints some numbers.
+      1. Move all container to core, remove linking with them since it is not necessary     2. Fix things so that everything compiles (at least) both with and without BexContainer     3. Parallelize ConstitutiveLawDispatcher, InteracionPhysicsMetaEngine and InteractionGeometryMetaEngine with openMP if enabled on command-line     4. Make InteractionVecMap default container for interactions; necessary for parallel code.
+      1. New InteractionDispatchers class that has one common loop for InteractionGeometryMetaEngine, InteractionPhysicsMetaEngine and ConstitutiveLawDispatcher. It can be used from python like this:
+      1. Adapt ForceEngine to BexContainer     2. Add BEX_CONTAINER and YADE_OPENMP flags to be reported by -h.
+      1. Add two more forgotten headers. They are not used anywhere, though, and will be removed later.
+      1. Enhancement of utils.box from Marco.
+      1. Make Shop load 4/5/6 columns text files for spheres (and skip 5-cols)     2. Change evaluation of args in readParamsFromTable to be able to pass strings better (single quotes) and consistently     3. Parameters passed as env. vars by yade-multi are prefixed with !     4. fix typo in timing for resetting timers.
+      1. Make the yade-multi scheduler multithread-aware.     2. Add the collider performance test as example     3. added utils.replaceCollider(anotherCollider) for convenience     4. added Omega().isChildClassOf(classNameChild,classNameParent)
+      1. Fix collider-perf (TriaxialTest has hardcoded dt=0.001 !!!!), set timestep by hand at first     2. Fix Shop:: loading spheres from file (regression from yesterday)     3. Add functorCache to Interaction and to InteractionDispatchers. About 5% improvement, but not yet finished.     4. Add DynLibDispatcher::getFunctor2D     5. Add BexContainer::sync() to other places in triaxial (thrown otherwise)
+      1. Fix old rename of runtime.args to runtime.argv in default-test.py. Should run OK now.
+      1. Fix for the compile error in snow for OrthogonalPlaneFit3. It still misses pkg/snow/Engine/ElawSnowLayersDeformation.cpp in the repo. Compile with exclude=...,snow as workaround.
+      1. Rename BroadInteractor to Collider.     2. Move some part of the contact logic to this common base class. The Collider::handleExistingInteraction is subject to discussion and not yet used.
+      1. Small fix in the collider code.
+      1. Remove SAPCollider completely     2. Make yade log4cxx 0.10 compatibile     3. Other minor fixes
+      1. Fix linking of realtime-rigidbody WRT PersistentSAPCollider
+      1. change default xiShear to 0 instead of NaN (is not used anyway)     2. Fix linking of mass-spring in cliean build
+      1. Fix #include's that include files not in the current source directory via "".     2. Add scripts/linkdeps.py that can automatically determine what plugin links to what other plugins, which can be once used for configurable monolithic/pluggable builds etc.
+      1. Fix crashed in TriaxialTest introduced by me a few days ago (referencing engine before being created)     2. Add simple (working?) memory usage query to utils and collider perf test.
+      1. Fixed collider performance benchmark     2. Added script to generate graph from log files (like http://yade.wikia.com/wiki/Colliders_performace)
+      1. Added SpheresContactGeometry::updateShearForce, will be used (not activated though yet) by ElasticContactLaw and other.
+      hotfix related to last commit
+      1. Initial checkout for the DemXDofGeom classes (will contain the hasShear code from SpheresContactGeometry and more eventually).
+      1. Preliminary version for sphere-facet collisions with total formulation (moderately tested).     2. Same for sphere-sphere collision.     3. test script for facet-sphere collision geometry.
+      1. Use local foreach.hpp if not found in the system     2. Use local file defining boost::python::len for boost<1.34
+      1. remove explicit linkage to boost_python in gui/SConscript
+      Forgotten empty file.
+      1. Remove logger from ClassFactory     2. Cleanup logging stuff in main (use constructor function, among other)     3. Cleanup system exit from python in PythonUI_rc.py     4. Add SpheresContactGeometry::updateShear that can be optionally used with ElasticContactLaw to update shear displacement instead of updating shearForce. triax-identical-results.py show quite large difference between both implementations, but I am not able to tell which one is correct. scripts/test/shear.py shown almost no difference for 2-sphere scenarios, modulo differences at 15th decimal place or so.     5. Remove debug output from BexContainer     6. Remove warning about meniscus data from CapillaryCohesiveLaw (warning is given in postProcessAttributes now, i.e. iff the class is actually used)     7. Add logger to snow.     8. Removed shear computation code in ElasticContactLaw, use SpheresContactGeometry::updateShearForce.     9. Fix scons deprecation warnings
+      1. Add functions to augment forces/torques in BexContainer.
+      1. Remove some garbage from SpheresContactGeometry     2. Verify that SCG_SHEAR doesn't alter behavior if ElasticContactLaw::useShear is false     3. Implement SCG_SHEAR for sphere-box interactions     4. sphere-box interactions no longer call goReverse, but swap interaction order instead, as facets do.     5. Fix triax-idnetical-results.py to reload generated initial config to avoid rounding issues of sphere coords in text file.
+      Minifix: link core with librt (clock_gettime) for platforms that require it
+      1. Add rate-dependent damage to normal and viscoplasticity to shear components of Brefcom (not yet tested, just compiles); other cleanups there.
+      1. add addF and addT to legacy ActionContainer
+      Add label attribute to engine units. Python wrapper updated.
+      1. Rate-dependent fixes (more to come) in brefcom.
+      1. Remove MetaBody::physicalActions if compiling with BEX_CONTAINER (default)     2. Make everything work with both BexContainer and deprecated PhysicalActionContainer     3. Change PhysicalActionDamper, PhysicalActionDamperUnit, PhysicalActionApplier and PhysicalActionApplierUnit to dispatch only according to PhysicalParameters (not PhysicalAction anymore). That means that only one unit will be called for each body and that NewtonsMomentumLaw has to do the job of NewtonsForceLaw as well (same for CundallNonViscousMomentumDamping).     4. Fix (finally) defaultDt computation in TriaxialTest (forgotten assignment to defaultDt in the GlobalStiffnessTimeStepper)     5. Fix (finally?) timestep manipulation form within the QtGUI. If reloading the same file, timestep settings will be preserved, otherwise those saved in the XML are used.
+      1. Create ef2_Spheres_Elastic_ElasticLaw that has the ElasticContactLaw algorithm     2. ElasticContactLaw now merely calls ef2_Spheres_Elastic_ElasticLaw.     3. TriaxialTest::parallel controls whether to use InteractionDispatchers or not.     4. Added examples/triax-perf to show the impact of that. Also see http://yade.wikia.com/wiki/Triaxial_Test_Parallel     5. Fix a few compilation issues.     6. Flush stdout before exiting from main, so that in case of crash upon exit (log4cxx?) we have all messages output.
+      1. Hotfix for 2 issues with ElasticContactLaw
+      1. Remove all traces of physical actions:
+      1. Remove Shop::Bex (no longer necessary)     2. Add InterpolatingDirectedForceEngine for Roger (not yet tested!)
+      1. Fix linking of ForceEngine with interpolation     2. Random rate-dependent things.     3. Typo in BexContainer docs
+      1. A few fixes in Brefcom.     2. Make python wrapper correctly handle long long attributes.     3. Added test script for InterpolatingDirectedForceEngine
+      1. MAJOR change in python syntax (backwards-compatible, though): through small bit of very dirty code,  classes can be instantiated as python objects with keyowrd arguments, i.e. instead of
+      1. cleanup UniaxialStrainer code, add vars to control length of the acceleration phase and the ability to set absolute speed     2. EngineUnits within InteractionDispatchers can be labeled and accessed from python now.     3. A few minor things in the plot module
+      1. Remove cruft from brefcom, a few fixes there     2. Add gnuplot grid to gnuplot by default     3. Fix speed in USCT     4. Fix InteractionDispatchers traversal in pyOmega
+      1. Fix weird python problem if LIBS is not defined by distuils (?)
+      1. Add working version of facet adjacency finder (to get their mutual angle at edge)
+      1. Parallelize initial bound filling in PersistentSAPCollider. Gives almost 3x speedup for the first step.     2. Fix missing headers so that it compiles with g++-4.4 (in QGLViewer)     3. FacetTopologyAnalyzer works (not tested extensively), questions of where to put topology data for InteractingFacet (will be raised on yade-dev)     4. Test script for FacetTopologyAnalyzer.
+      1. Remove leftover var in PersistentSAPCollider
+      1. Add preliminary gnuplot plots merging facility to yade-multi     2. Fix yade.log module so that it also works without log4cxx (and gives 1 warning)     3. Switch to new syntax in scripts/plot.py
+      1. Fix race condition in brefcom (omp critical section)     2. Remove -ffast-math from optimized build, since NaNs do not work properly (e.g. isnan(NaN)==false!)
+      1. Fix bug in FacetTopologyAnalyzer algorithm     2. Add angle info to InteractingFacet (not yet used)     3. Add triangulated sphere test for FacetTopoloyAnalyzer to facet-topo.py     4. Fixes in rate-dep in brefcom
+      1. Add approximate viscosity equations to brefcom (not working)     2. Fixes in yade-multi
+      1. Finish implementation of Dof3DofGeom_FacetSphere (with plastic slip as well)     2. Adapt Brefcom optionally to Dem3DofGeom     3. Add d0fixup to SpheresContactGeometry to get correct normal strain in sphere-facet contact with fictive sphere     (zero for sphere-sphere)     4. Finish FacetTopologyAnalyzer; angle usage in Dem4DofGeom_FacetSphere not yet tested.
+      1. Remove cruft from UniaxialStrainer, add the ability to set initial velocities to suppress inertia at the simulation beginning     2. Jobs in yade-multi can be automatically named after variables suffixed with !     3. yade-multi now shows and updates automatically some statistic on localhost:9080 using http
+      1. Finish Dem3Dof for both spheres and facets, migrate Brefcom. Removing stuff from SpheresContactGeometry is on schedule, once thorough testing is finished.     2. Fix attribute inheritance for a few engine units     3. Add ef2_Dem3Dof_Elastic_ElasticLaw, which works like ElasticContactLaw (but faster ;-) )     4. Remove BrefcomLaw, keep just the constitutive law as functor. Adapt sample generators for that.     5. Add hydrostatic confinement to brefcom (isoPrestress), remove viscApprox.     6. Add interface for querying and setting (doesn't work yet) number of openMP threads     7. Job description is taken from columns suffixed with ! or by combining all parameters     8. Add function for plotting yeild surface of brefcom to the eudoxos module     9. Oofem export now uses reference (starting) positions of particles as it should     10. Add "-" before profile name when generating default variant suffix in scons (which is expected)
+      Fix comp9ilation error for Janek.
+      1. Add python wrapper for clumps, see scripts/test/clump.py on how to use it (O.bodies.appendClumped)     2. Fix clump support in NewtonsDampedLaw (damping is quite wrong, it seems...; Bruno, any ideas on that?)     3. Move clump to pkg-dem (even though it depends on extra/Shop)     4. Remove absolute shear computation from SpheresContactGeometry, as Dem3Dof works fine now and Brefcom will not use SCG anymore; adapt a few other classes to that; remove ElasticContactLaw2 that was using it.     5.
+      1. Warn in --version if -ffast-math was used
+      1. Fixing bug in TriaxialCompressionEngine (introduced by luc apparently).
+      Big changes:
+      Handle boundingVolume-less bodies gracefully in InsertionSortCollider
+      1. Add utils.regularSphereOrthoPack by Anoton
+      Forgotten showcase.
+      1. Add InteractionContainer::requestErase to hint colliders that wouldn't otherwise see !isReal interactions.     2. Use this logic in InsertionSortCollider, PersistentSAPCollider, SpatialQuickSortCollider (noop in the last one)     3. Add InsertionSortCollider::sortThenCollide to make it behave as non-persistent collider (for debugging only?)     4. Add Interaction::reset() that has common initialization code.     5. Assign zero inertia to utils.facet (better than uninitialized binary garbage)     6. Fix contact logic in Brefcom, finally I get the same results with InsertionSortCollider as with SpatialQuickSortCollider on large simulation (more fixes to come)     7. Do not install pkg-config; fixes compilation error reported by the build bot.
+      1. Use bitfield instead of bools in InsertsionSortCollider     2. Revert accidental changes in insertion-sort-collider.py     3. Add function for using renamed classes from python with warning
+      Getting rid of the Brefcom name, classes renamed as follows (moving files around  will follow)
+      1. Add logic to scons to delete files that will not be installed in this run but are on-disk. This should make it unnecessary to remove files by hand. In the same way, disable implicit target cache which was making problems if files shuffle around.     2. Remove Brefcom* files, move to pkg/dem/ConcretePM.?pp. (not sure what other place, since it contains Engines, DataClasses etc in one file that I would refuse to break.).     3. Add detailed comments on ConcretePM to the ConcretePM.hpp     4. Remove extra/usct, moveUniaxialStrainer and put to pkg/dem; move SimpleScene from extra to pkg/dem     5. Remove core/yadeExceptions.*     6. Remove Preferences::dynLibDirectores and Preferences::version. Omega now recursively searches the lib directory for plugins and loads them. preferences.xml has only defaultGUILibName now. Finally. Remove baseDirs and other cruft from DynLibManager.
+      2 forgotten files (separated from UniaxialStrainer before)
+      1. Fix hopefully last relict of pkg-config     2. Degrade deleting non-existent interaction from fatal erro to warning only (not sure where that can come from, though.)
+      Solve the cause of nonexistent interactions being deleted (after O.interactions.clear()). Make warning fatal error again.
+      1. Remove Interaction::isNew, Interaction::isReal. Add Interaction::isReal() which test for presence of _both_ interactionGeometry and interactionPhysics and Interaction::isFresh() which checks the interaction creation timestamp against current iteration. Updated all code for that. Please verify that your stuff works, it is possible I made some mistakes!     2. All code saying isReal=false replaced by interaction->requestErase(id1,id2)     3. make requestErase thread-safe     4. Add interace for traversing interactions pending erase (template)     5. Add TriaxialTest::noFiles and TriaxialCompressionEngine::noFiles to not generate any files (default: off)     6. Add predicate utils.ptInAABB(p,minPt,maxPt)     7. utils.spheresToFile return number of spheres written (instead of None)     8. Add examples/concrete/pack to generate packing; other stuff in concrete will follow, with simplified version of the cpm model in ConcretePM.
+      1. Syntax fixes in ConcretePM model     2. Interactions will be deleted also if the ye4xist, but geometry functor fails (returns false)     3. Add utils.approxSectionArea, utils.spheresFromFileUnixial (get some parameters useful for uniaxial tests from the sphere packing, such as cross-section, principal axis, etc)     4. Add lib/computational-geometry/Hull2d.hpp for computing convex hull in 2d using Graham scan algorithm (I know it is in CGAL already, but I don't want to depend on that commercial stuff)     5. Remove some unused stuff from utils.
+      1. Add epsNPl to Cpm     2. Replace vector<body_id_t> by Vector2<body_id_t> and make it properly serializable (should be faster)     3. Add function to compute forces on interactions crossing plane.     4. Replace custom xcombine function by itertools.product in grid sphere packing
+      Fixes and cleanups in the CPM code.
+      Add new 'feature' to scons called openGL, which is on by default.     Qt3 GUI will not be built without openGL.     YADE_OPENGL is defined in openGL-enabled builds.     Sconscript files adapted to skip GL plugins or GL parts of plugins.
+      1. Fix missing libs for linkage     2. Fix a few typos
+      1. Don't link core with glut (is there a reason for that?)
+      Do not include X11 headers if without opengl
+      1. Move all python modules to PREFIX/lib/yadeSUFFIX/py/yade instead of */gui/yade     2. Add pack module for generating regular packings (thanks to Anton Gladky for his ideas & code)     3. Add _packPredicates module for solid inclusion testing.     4. Update regular-sphere-pack.py to test new packing features.
+      Remove leftover reularSpheresOrthoPack from utils. Is in yade.pack now.
+      Add pack.inHyperboloid predicate. Should be useful for cylindric specimen in uniaxial tension, but with the middle part having smaller diameter. Added to the test script as well.
+      1. Fix (hopefully) clump damping     2. Remove unused code from InsertionSortCollider     3. Make SimulationController NOT change timestep (rounding) by just opening it (!!)     4. Fix paths in PythonUI and lib/SConscript for $PREFIX/yade$SUFFIX/py/yade instead of $PREFIX/yade$SUFFIX/gui/yade
+      1. Add resetting interactionGeometry and interactionPhysics to Interaction::reset(), as it should be...     2. Small things in CPM     3. Add GaussAverage.data method to python (for debugging and plotting)
+      Include Python.h in PythonRunnerFilter. Build this plugin only with EMBED_PYTHON.
+      A few changes to allow run primarily python with qt3 on the top of that (open, close etc as needed). This paves way to running main yade process in python ;-) (just kidding, for now)
+      1. Handle groupMasks of bodies in InteractionDispatchers directly (not in geometry functors etc).     2. Fixes for qt3 started from within python     3. Add Body().dynamic flag to the wrapper, instead of using Body()['isDynamic'] all the time.
+      Anton's new things: axis-aligned ellipsoid predicate and fix in pack.regularHexa.
+      1. Add external euclid.py module (suggested by Anton, thanks!) to our installation
+      1. Propose *.sqlite ending for saved simulations instead of * in the player
+      Fix error-tolerant law which uses no interactionPhysics: add void Interaction physics in the geometry functor if returning true, to make Interaction::isReal return true. (Shouldn't we remove ErrorTolerant...? Does it have some serious use?)
+      1. Remove constructor priority for log4cxx to avoid syntax unsupported by gcc<=4.0.     2. Remove some commented cruft from FrictionLessElasticContactLaw
+      1. Add boolean operators on solid predicates (&,|,^,-), shown in scripts/test/regular-sphere-pack.py     2. Add notch predicate (not functional yet)     3. Add utils.alignedFacetBox to create hollow box from facets. Shown in new file scripts/test/facet-box.py
+      1. Update simulation filename in controller periodically     2. Fix notInNotch predicate, use infinite AABB for unbounded solids and raise exception in the packing generator if such is encountered.     3. Add notch to the head of regular-sphere-pack.py guy
+      1. Add checks for GTS (optional)     2. Add pyGTS to our tree (built only if needed), since no packages are available.
+      1. Fix corner case in InsertionSortCollider related to instability of std::sort (quicksort) and bodies having the same upper and lower bounds (facet in the xy plane, for example). Thanks to Anton for providing the crasher.
+      Fix feature macro definitions (typos)
+      1. Add GTS surface predicate     2. Add example of sphere horse falling onto facet horse in scripts/test/gts.py (try it!)     3. Predicate difference now takes padding in the inverse sense for the second predicate (logical)     4. Attempt to enable lightning on facets (no effect :-( )
+      1. Add coarsened horse geometry for the example gts.py
+      1. Rename ef2_Dem3Dof_Elastic_ElasticLaw to Law2_Dem3Dof_Elastic_Elastic (in scripts as well)
+      1. Make virtual methods on pack.Predicate work in python (inGtsSurface, for instance). Add scripts/test/gts-operators.py to show that.     2. Move scripts/test/gts.py to gts-horse.py     3. Add a few functions to pack for constructing triangulated revolution surfaces from meridians.
+      1. Padding support (though slow and not very precise) for pack.inGtsSurface
+      1. Fix crashers in InteractingMyTetrahedron* classes (introduced by me when updating interaction logic)     2. Reimplement inGtsSurface in c/c++ which makes it faster due to pygts interface limitations (addressed on pygts mailing list meanwhile), but is dirty programming.     3. Set CCOMSTR to correspond to CXXCOMSTR in SConstruct (to show nice line when compiling c source file, for pygts)     4. Set good-looking timestep in the TetrahedronsTest generator
+      1. Add triaxial packing generator, with optional memoization to sqlite database to avoid generating packing if there are suitable ones (same parameters/scalable to same parameters) available. Sample script will be provided soon. This allows for filling arbitrary (gts-defined, for example) volumes with irregular, high-quality sphere packing.     2. Add python-wrapped class SpherePack for manipulating sphere packings (loading, saving, spatial transformations, iterating)     3. Add shared_ptr<MetaBody> Omega::rootBodyAnother to be used with Omega().switchWorld()     4. Move some stuff from gui/py to lib/py, which is more logical hopefully     5. If negative value is specified for TriaxialTest::thickness, wall thickness will correspond to the mean sphere radius (avoids spheres going through the walls during compaction for some radii)
+      1. Add automatic converter from python::tuple to Vector3r and vice versa. Wrapped functions can take/return Vector3r directly instead of manual conversion. Clean code that had to do that. Let me know if something breaks, the changes should not touch any python code.     2. Some preliminary work on wrapping Vector+Quaternion classes in python via py++ (not enabled, just the files are there)     3. Add forgotten _packSphere.cpp, thanks to Vincent for reporting.
+      1. Add scripts/test/gts-traix-pack.py to demonstrate triaxial packing generator.
+      Remove useless include in GlobalStiffnessTimeStepper.
+      1. Fix STUPID (my fault, sorry!!) mistake in setting Interaction::iterMadeReal, which cause ElasticContactLaw to function wrong. It concerns a few other contact laws calling isFresh, which would return true as well. Sorry again.
+      1. Shuffling stuff around, moving most python things to py/     2. Wrapping Vector3r, Quaternionr and Vector2r in python directly, see scripts/wm3-wrap.py     3. Change the way utils.box, utils.sphere and utils.facet works: arguments to physical parameters are passed as keywords, not as dictionary now (update your old code by passing **dict instead of dict as the last argument)     4. Fix a bug with useShear, now getting almost identical results for triaxial again.     5. Preliminary Triaxial::facetWalls, to be able to used Dem3DofGeom with Triaxial. (not fully functional yet)     6. TriaxialStressController::thickness is -1 by default now (get thickness from box width), as 0 is real value for Facets. Doesn't change beahvior in any way.
+      1. Update triax-perf.py     2. Add Omega().tmpToString returning string of :memory: saved simluation
+      1. add yade.plot.resetData(), which unlike reset() resets just data     2. Add scripts/test/compare-identical.py to run 2 simulations at the same time and check at every step (configurable) if they differ or not.     3. Add active=active line to GlobalStiffnessTimeStepper, which for some reason causes two same simulations to be the same. Any explanation someone??
+      1. Add forgotten py/SConscript (sorry!)
+      1. Fix absolute path generated by py++
+      1. Dump XML in ConcretePM in case of problems (nan's)     2. InteractingFacet::postProcessAttributes gives FATAL message if there are coincident vertices     3. Update triax-perf, add script and openoffice sheet to make table     4. InsertionSortCollider is used in TriaxialTest always (not only with fast) now.
+      1. Change prototype of Engine::isActivated() to Engine::isActivate(MetaBody*)     2. Add maxVelocitySq to NewtonsDampedLaw for analysis purposes     3. Add BoundingVolumeMetaEngine::sweepTime and ::sweepDist to sweep bounding volume by given predicted motion over time or by given absolute distance.     4. Add strided run support to InsertionSortCollider (using sweeping)     5. Add scripts/test/collider-stride-triax.py to play with the strategies of sweeping based on strides     6. Add O.interactions.countReal()
+      1. Fix collider-stride.py to match changed parameters. (it is quite useless now, anyway
+      1. Make NewtonsDampedLaw compute maxVlocitySq at every step anew.     2. Make InsertionSortCollider find NewtonsDampedLaw and get max speed from there. Together with InsertionSortColider::sweepLength, this makes stride adapted automatically to maxVelocitySq; this will described at http://yade.wikia.com/wiki/Insertion_Sort_Collider_Stride.     3. Update test script for that.
+      1. Handle clumps in a better way in NewtonsDampedLaw (only if asked by the clump itself) -- future parallelization work. (related to bug #398086)     2. InsertionSortCollider now knows when to run based on maximum distance the fastest body could have travelled. (It is actually the physical meaning of sweepDistance). Handle varying maxVelocitySq in a constitent way.     3. Add InteractionContainer::serializeSorted to sort interactions by id1 and id2 before serializing (useful for comparing XML files). Added Interaction::operator< to compare 2 interactions in that way.     4. Fix openMP strategy in InteractionDispatchers to "guided" (as per https://blueprints.launchpad.net/yade/+spec/omp-schedule-strategy)
+      1. Remove doc/removed, it is in SVN history     2. Tune debian scripts to install docs+examples+scripts instead of headers (targets https://bugs.launchpad.net/yade/+bug/398174, but not yet finished)     3. Add depends on python-numpy instead of python-scientific packages for debian     4. Add ../py directory to doxygen (targets bug #398190)
+      1. Change NewtonsDampedLaw to a StandAloneEngine     2. add .updateExistingKeys (perhaps should be updateExistingAttributes) to all python-wrapped yade objects, which will change only existing attributes from given dictionary     3. Adapt STLImporterTest to new nicer syntax.
+      1. Add virtual destructors to all EngineUnits so that they can by dynamic_cast'ed to. This fixes possible crash from python, bug #398255     2. Rename updateExistingKeys to updateExistingAttrs, add updateAttrs.     3. Add forgotten script to demonstrate predicate operators     4. The default debug level is -ggdb2 (instead of -ggdb3). Libs are about 60% in size and still give the same debug information.
+      1. Rename scons option arcs to PGO (profile=guided optimizations)     2. Install only binaries by default (no docs, must be requested from cmd line via path)
+      1. Various fixes related to generating debian packages
+      1. Fix EngineUnits linkage for SImpleViscoelasticRelationships
+      1. Add velocity binning for collision optimization: requires cooperation of NewtonsDampedLaw, BoundingVolumeMetaEngine and InsertionSortCollider.     2. Remove time-based sweeping from BoundingVOlumeMetaEngine.     3. QtGUI doesn't show annoying warning when run from python session anymore.
+      1. Parallelized NewtonsDampedLaw (scales very well)     2. Parallelized VelocityBins     3. Add const modifier to BodyContainer::size     4. Add virtual dtors to PhysicalAction{Damper,Applier}Unit (for dynamic_cast'ing)
+      1. Move NewtonsDampedLaw to StandAloneEngine directory     2. Add omp critical to ConcretePM     3. Remove SphericalDEMSimulator
+      1. Add sweepLength to TriaxialTest if fast==true     2. Remove euclid from the pack module, since we use wrapped wm3 now.     3. Add _packObb.cpp to compute minimal oriented bounding box on cloud of points     4. inGtsSurface predicate with triaxialPack will work on the minimum OBB     5. Add check for engine to prevent crash as per https://bugs.launchpad.net/yade/+bug/399810     6. Enhance the pack.inSpace predicate to work as expected. Custom center can be given to the ctor
+      1. Fix non-tuple in graph specification     2. Allow plotting agains the y2 axis, after a special parameter '|||'.
+      1. Remove mutex from requestErase (should be verified to compile on non-openMP machine!)     2. Add mutex to PhysicalParameters, so that body state can be locked while updating from the interaction loop.     3. Add linking with EngineUnits to Tetra (thans Emanuelle)
+      why..??
+      1. Adapt simple-scene-graph.py to new instance syntax     2. Add support to y2axis to saved gnuplot plots     3. Change interface for yade.plot.addData to take **kw instead of straight dict (still backwards-compatible)
+      1. Do not use REGISTER_ATTRIBUTE anymore, use REGISTER_ATTRIBUTES instead everywhere. This generates (in addition to serialization code) also some python code and makes python independent on the yade serialization framework (Janek, if you want to try boost::serialization, I have no objections now).
+      1. Remove garbage from doc     2. Instruct getopt to not shuffle command-line arguments, so that their order is preserved     3. Add epydoc documentation for all python classes and functions
+      1. Fix linking logic for _packPredicates (fixes https://bugs.launchpad.net/yade/+bug/401029)     2. Make gts-horse coarse original horse automatically
+      Fix small bug in Velocity bins related to max sweep length (should improve performance as well). Still some incorrect things WRT bboxes, it seems.
+      1. Fix mathematical error with VelocityBins, verified by new script scripts/test/collider-sweep-simple.py to be correct     2. Add py/ directory to skipped dirs for linkdeps.py so that it works on current trunk
+      1. BIG CHANGE: pkg/ no longer have SConscript files but are scanned at startup for plugins. See http://yade.wikia.com/wiki/ImplicitBuilds for some details. Let me know if there are some problems.
+      add boost-serialization and boost-program-options to debian.
+      1. Move STILimport to pkg/dem, as it depends on dem     2. update RockPM with the new-old version (probably svn didn't update the moved version? what a deal. We should definitely move to bzr...)
+      1. Fix unreported version for the debian build
+      1. Fix snow compilation by #including Voxel/* files in SnowVoxeslLoader and noc compiling them directly (sorry)     2. STLReader is a pure-header import lib now, tolerance is passed as regular data member.     3. Fix all warnings in ConcretePM.     4. Merge lib/yade-* into lib/yade-support.
+      1. Fix monolithic compilation even with fem. All modules can now be compiled that way.
+      fix compilation?
+      Fix TetraTestGen crasher (functionally still brokne, though)
+      Remove SDECLinkGeometry, replaced by SpheresContactGeometry at a few places. Not checked for functionality. This avoid many warnings.
+      1. Fix linking with full Wm3 library     2. Automatically add /usr/include/wm3 to CPPPATH if useMiniWm3=False
+      1. Hopefully fix https://bugs.launchpad.net/yade/+bug/402098     2. Fast in TriaxialTest uses nBins==5 and binCoeff==2 for VelocityBins
+      1. Fix SnapshotEngine and simple-scene-video.py to run. It doesn't work, though, because of the makeCurrent() failed error (probably getting snapshot from another thread...)
+      1. Add GLViewer::nextFrameSnapshotFilename to save frame in postDraw     2. Adjust SnapshotEngine to take advantage of that. This should solve https://bugs.launchpad.net/yade/+bug/396023     3. utils.encodeVideoFromFrames can take list of files (instead of just wildcard). Backwards-compatible.     4. scons doc skips debian/ directory (would mess up if deb package was build)
+      1. Fix for https://bugs.launchpad.net/yade/+bug/406343 (at least for me)
+      1. Add GenericSpheresContactClass to unit radius1, radius2 and normal between SpheresContactGeometry and Dem3DofGeom (to make it work with GlobalSitffnessTimeStepper). Partially solves https://bugs.launchpad.net/yade/+bug/399963
+      1. Add docstrings to all wrapper.Omega() methods     2. Fix a few warnings.
+      Fix has_map warning and one more in FlowEngine.
+      1. Add infrastructure for getting temporary filenames in a secure manner to Omega     2. move selectedBOyd to MetaBody; initialize it properly to avoid possible crash.
+      Remove leftover SConscripts.
+      1. Change syntax of YADE_PLUGIN("Plugin1","Plugin2") to YADE_PLUGIN((Plugin1)(Plugin2)) (replaced everywhere)     2. Add some perliminary and not-enabled by default support for boost::serialization (see ClassFactory.hpp)     3. Add boost::serialization code for Se3r, Vector2r, Vector2<int>, Quaternionr     4. Do not reset BexContainer's moves and rotations uselessly (i.e. if not used)     5. Use Omega's mutex in SimulationController to prevent loading-related crashes
+      1. Don't use __COUNTER__ to generate plugin registration function names, as they wre added in gcc 4.3 Use the name of the first plugin instead.     2. Dem3Dof_SphereSphere takes touching distance as equilibrium if distanceFactor is <=1. The initial position otherwise (was the default everytime until now)
+      1. Generate proxy constructors to all classes deriving only from Serializable in python (like GLDrawBox and similar).     2. Fix scripts to have the new syntax everywhere, since e.g. EngineUnit is just abstract class that cannot be instantiated from python.     3. Add check fro valid data before saving plot to gnuplot; raise comprehensible exception if there is nothing to save.     4. Remove leftover scripts/pch.py
+      1. Add an example of uniaxial tension-compression test for concrete (ready long time ago...)
+      1. All different yade types are real python types now. They have their properties defined at startup. One can say O.bodies[0].shape.diffuseColor instead of O.bodies[0].shape['diffuseColor'] now. It also works much better with ipython tab-completion. It is not sure whether we will be able ever to deprecate the old object['attribute'] syntax.     2. Wrap ParallelEngine in python, and finish Dispatcher wraps as well.
+      1. Reset interaction radius after the initial contacts have been created.
+      Fix FileGenerator wrapper in PythonUI_rc.py (has different name in c++ (FileGenerator) and python (Preprocessor).
+      1. Rename Preprocessor in python to FileGenerator, to be consistent with c++. Preprocessor is never used directly, anyway. The old deprecated name put in the deprecation table.     2. Manage crash at exit in defaut-test gracefully     3. Fix serialization of pairs (overlooked replace)
+      1. Initial attempt at regression tests (only the python wrapper so far); run scripts/regression-tests.py     2. Fix a few bugs discovered that way :-)
+      1. Replace PersistentSAPCollider and DistantPersistentSAPCollider by InsertionSortCollider everywhere. The two are still in the sources, but are not compiled. Will be removed in near future. Added to deprecated table in python so that old scripts still work.     2. Add some more regression tests for the python wrapper.     3. Fix timestep in HangingCloth (it does some weird things, can someone check it or just remove mass-spring from the tree?)
+      1. Be more tolerant to specifying invalid GUI at the command line     2. Throw exception about unopenable $DISPLAY rather than letting QApplication abort()
+      1. Fix https://bugs.launchpad.net/bugs/409254
+      https://bugs.launchpad.net/yade/+bug/409254 take 2
+      Maybe fix https://bugs.launchpad.net/yade/+bug/409365
+      1. Fix (?) https://bugs.launchpad.net/yade/+bug/409254 by moving ClumpTestGen out of Clump.hpp     2. Avoid warnings in STL import code (return values _should_ be checked, though!)     3. Avoid warning in yade.cpp in optimized build
+      1. Infrastructure for periodic collision handling. Not at all functional at this moment, don't even try to use.
+      1. Beta version of periodic boundary conditions (try scripts/test/periodic-simple.py
+      1. Assign new function O.exitNoBacktrace to sys.exit. Fixes partially https://bugs.launchpad.net/yade/+bug/410250     2. Add some more comments to periodic stuff.
+      1. Script that shrinks the periodic cell progressively (reveals bugs in the collider, though ;-) )     2. Add function to compute total force in volume from interactions to Shop, wrapped in _utils as well.
+      1. Working periodic collider, yay!! scripts/test/periodic-grow.py shows that     2. A few changes related to that.
+      1. Add PeriIsoCompressor for periodic isotropic compression; see scripts/test/periodic-compress.py. Not so much slower than regular triax, nice surprise.     2. Make SpherePack standalone class (previously just in python's _packSpheres), add the function to generate cloud of spheres, both periodic and non-periodic. _packSpheres wrapper is update, but otherwise not changed.     3. Fix python-less compilation for se3 interpolator engine     4. Add Omega().runEngine()     5. Fix some compilation/linking issues.
+      1. Fix missing vtable for GenericSphereContact (crasher with debugging)     2. Fix collider stride for TriaxialTest with unspecified radius
+      1. Try to fix locking with boost-1.35, possibly fixes https://bugs.launchpad.net/yade/+bug/411572 (please confirm)     2. Add periodic repetition function to SpherePack
+      1. Fix linkage for boost<=1.34 (hopefully)
+      1. Fix a few things in SpherePack     2. Remove TriaxialTest::GenerateCloud, replaced by SpherePack::makeCloud     3. Fix crash in BoundingVolumeMetaEngine, if MetaBody has no boundingVolume     4. Improve sorting operator, remove workarounds for std::sort wrapping minima/maxima (https://bugs.launchpad.net/yade/+bug/402098)     5. Limit minimum cell width in PeriIsoCompressor, to not crash.     6. Add code for periodic packs in pack.triaxialPack (not yet fully functional)
+      1. Add #pragma once to SpherePack.hpp (possibly cause of https://bugs.launchpad.net/bugs/412442)     2. Fix crash in TetraTestGen (finally, I think), closing https://bugs.launchpad.net/bugs/408422     3. Add highlight parameter to utils.{facet,sphere,box}, passed to Body::geometricalModel
+      1. Fix assertion is 2d dispatch code, add indices to RpmPhys, RpmMat, CpmPhys, CpmMat (would break dispatching if using more classes derived from the same base in the dispatch matrix)
+      1. Remove {,Distant}PersistentSAPCollider and Fixed{Position,Orientation}Engine classes     2. Add test script for generating packing
+      1. Summarize important changes since the last release. Add your own things, if they are important for everybody (svn log has the small details)
+      1. Add scripts/rename-class.py for renaming classes (replaces in code, moves files with bzr, adds rename record to python). Not very well tested, though.     2. Remove core/StandAloneSimulator.*pp (not used anymore)
+      Add ignore patterns so that bzr st doesn't show (some) generated files
+      1. Merged upstream changes.
+      1. Clen the plugin loading logic a little (no nominal win32 support), support YADE_PREFIX for changing prefix (should be runtime-detected inthe future, anyway)     2. Use $ORIGIN in rpath to make yade relocatable; it can be fragile, let me know if there are troubles!     3. Add make check to the debian package (will be tested soon)
+      1. Add compatibility for hardy     2. Fix missing newlines (hardy compiler gives warning)
+      Adjust rpath for the main executable (ugly hack)
+      Run tests in debian package (not failing if the test crashes, though, for now)
+      1. IMPORTANT! All features are lower-cased now (avoids mess: openGL or OpenGL etc). This will probably break your profile files.     2. IMPORTANT! openmp is one of features, no longer a separate options. Adjust your profiles     3. Rename LOG4CXX to YADE_LOG4CXX; all features now #define YADE_FEATURE macros     4. Better $ORIGIN syntax in scons     5. Abort yade if running PythonUI_rc.py fails     6. Adjust pbuilder script
+      1. Add wrapper for running tests, to trap exit segfault at squeeze     2. Use the wrapper for tests in debian/control     3. Add wrapper for vector<Se3r>
+      Make the test script report what distribution failed (currently only karmic).
+      Fix GTS features (thanks for spotting that; we need regression tests for all the modules)
+      1. Skip more stuff in doxygen, a few warnings     2. Add debugging code to DynLibDispatcher (disabled)
+      1. Rewrite 2d dispatching code from scratch     2. Expose classIndex to python for indexable classes     3. scripts/test-sphere-facet.py shows how the dispatch matrix fills with data
+      Add python 2.5 compatibility hack
+      Avoid error in pack.triaxialTest if compiled without GTS.
+      1. PeriIsoCompressor: add keepProportions parameter (on by default), decrease global updates interval.     2. Omega: startSimulationLoop warns if there is no simulationLoop (how can that happen? It somehow can)     3. SpherePack: resets periodicity (and warns) if being rotated; cellSize is writable now.     4. pack.triaxialPack: renamed to pack.randomDensePack; fix loads of stuff in that; rename radiusStDev parameter to rRelFuzz; add epydoc documentation; fix erroneous detection of inGtsSurface being defined     5. wrapper: lock renderer when adding list of bodies; Omega().resetThisWorld to reset current world only.     6. Fix scripts/test/{gts-random-pack.py,gts-random-obb.py}
+      ef2_Sphere_Sphere_Dem3Dof: change meaning of distanceFactor, see docs (if < 0, equilibrium is sum of radii, otherwise the initial distance; defaults to -1). Renamed to distFactor, to break old code intentionally     InteractingSphere2AABB: allow negative aabbEnlargeFactor, which doesn't scale aabb at all (same as if it is 1.)     yade-multi: use the first non-blank line as column headings (not necessarily the first line of the file, as is used to be)     SpatialQuickSortCollider: fix clearing interaction with openMP     examples/concrete/uniaxial: move files around, add confinement and docs; remove examples/concrete/pack since not in the pack module (an example should be given, though)     examples/collider-perf: remove PersistentSAPCollider, add InsertionSortCollide with strides, but commented out since no effect at hthe beginning of simulation     PeriodicInsertionSortCollider: remove unnecessary (hopefully) condition that would abort in scripts/test/periodic-simple.py
+      PeriIsoCompressor: fix absolute displacements changing proportions, operate on averages instead     pack.randomDensePack: fix proportions in periodic packs; change residual stress to 1e8 instead of 1e9
+      SConstruct: remove obsolete (unused) standalone openmp option
+      yadeWrapper: Fix compilation with boost<1.35 (again)
+      (now?)
+      1. Fix startup crash if no $DISPLAY set at all
+      miniWm3Wrap: update with newer py++; still errors out at karmic     spirit: avoid warning with newer boost versions
+      Add gts to depends on the script.
+      Remove unnecessary inclusion of indexing_suite which breaks compilation for boost<1.34 (or something like that).
+      utils.uniaxialTestFeatures: fix compat with py2.5     SConstruct: fix compilation issues with older symlinks in include dirs
+      Fix OperationalError, reported by Janek in https://bugs.launchpad.net/yade/+bug/416906
+      SConstruct: add doc for pretty, fix a few lib checks on karmic
+      Fix version detection on systems where version is not specified by hand or in RELEASE file and bzr is not installed
+      main: disable SIGHUP handler (emergency save) and automatic loading.
+      1. Remove garbage from examples.     2. Fix SpheresFactory, fix examples/SpheresFactory/model.py
+      move SpheresFactor to scripts/test as it doesn't work. Add notes to changelog and news.
+      Forgotten file
+      Mark release version
+      Add mill script mimicking http://www.youtube.com/watch?v=005rdDBoe4w     Some changes in qt interface (useless)     Add series to package version to allow same version for multiple series in the ppa (0.20-1~hardy, 0.20-1~karmic etc)
+      Added script for http://www.youtube.com/watch?v=KUv26xlh89I
+      1. Fix facet lighting, mill shown with wire=False now (looks better)     2. Revert recent useless change in QtGUI-python
+      1. Enabling O.timingEnabled when running will not produce garbage values for current engine anymore     2. Add maxRefRelStep to VelocityBins, to limit speed fo maximum velocity changes     3. Fix epydoc format for utils.encodeVideoFromFrames and utils.uniaxialTestFeatures
+      1. Do not save potential-only interactions to the XML; do not save pendingErase interactions (are only potential)     2. Do not save interactions in SQLiteRecorder by default (saveInteractions=True if you want the old behavior)     3. Add slider to the simulation player, in the "snaps" tab
+      1. Add scene that has been sitting here for a few days (should be run for comparison with pfc3d)
+      Workaround bug #416335; static members of Vector3 work only on instance, e.g. Vector3.ZERO will not work, you have to use Vector3().ZERO; changed all occurences in the code accordingly, update your scripts as well.\n2.Some undocumented and untested enhancements for parameter table (backwards compatible)
+
+==================================================
+yade-0.12.1
+Sat Nov 22 22:48:27 2008 +0000
+
+Bruno Chareyre (6):
+      A wrong comment on contact laws in PFC3D is removed.
+      svn update - no real change (in principle)  - recovering from erased local file
+      - Fix conflicts and prepare next implementation of isotropic compression
+      - Few files missing in the previous commit.     - Add a new class for computing/recording micromechanical data based on     tesselation
+      Still recovering from conflicted files... I hope this is the last one.
+      A class with algorithm for analysing contacts-forces-displacements     statistics. Using the triangulation lib.
+
+Janek Kozicki (14):
+      ouch, forgot to mark INSTALL file as outdated. We need to update it.
+      some cleanup in the files
+      fix crashes of this->parentWidget()->parentWidget() in UI
+      yade.cpp: more detailed info about compilation flags.     LatticeExample: added material parameters bond zone between steel fibres and cement matrix
+      update to use latest scons 1.0.0
+      don't refresh display when there's nothing to refresh
+      support for generating multiple file with single NullGUI call
+      add to SimulationController buttons for looking in different directions. The default view direction is now down along the direction of gravity.
+      improved generation of steel fibres in lattice
+      fixed snaphotNames in NullGUI for .xml.gz
+      more configurable MakeItFlat,     TriaxialTest can be now a biaxial test as well.     small fixes in UIs
+      make it compile with boost 1.35 (I wonder what 1.36 will bring)
+      Fixed OpenGL problems with displaying spheres, which      - never occurred on my desktop      - I've seen them sometimes on other peoples computers, but never could reproduce them      - but finally have appeared on my laptop.
+      up direction on Y     release 0.12.1
+
+Jerome Duriez (7):
+      Added :     - Engines for simulating shear tests at constant normal displacement, normal stress or normal rigidity (CinemDNCEngine, CinemCNCEngine and CinemKNCEngine) for samples     deriving from SimpleShear PreProcessor (added also, former DirectShearCis)     - ContactLaw1 : a contact law with Moment Transfer and inelastic behaviour in compression : see comments. With correspondant Relationships and type of Interactions.     NB : sorry for the name : i didn't search too long for a more explicit one but I think personly that the comments in the files (and I tried to put some) are far much better     than the one
+      - Add of the paragraph for the CL1Relationships, which was forgotten, in the corresponding SConscript
+      A (last ?) error concerning last revision in the paragraph CL1Relationships : "CL1Interaction" does not exist, that's ContactLaw1Interaction
+      -ContactLaw1 : correction of prototype of action() : it needed a body, whereas now action methods of Engines need a Metabody. This led the simulation to crash and is     now fixed     - SimpleShear : now all is normaly done so that this preprocessor could be used (with success) with this ContactLaw. Moreover it is now linked to the     GlobalStifnessTimeStepper (instead of the ElasticOne)
+      Suppress of some useful comments (sorry for the extra mail)
+      (At last) The good Sconscript file
+      - The GlobalStifnessCounter engine (for correct use of GlobalStifnessTimeStepper) was forgotten in the preprocessor SimpleShear...
+
+Sergei Dorofeenko (4):
+      1. A new algorithm for facets. It use only a class Facet, so classes Vertex and Edge are deprecated and has been removed.     2. Add functions to python gui for import geometry from stl and for creating facets.     3. Add Shop::inscribedCircleCenter for calculate position of center of triangle inscribed circle (use it for set facet's se3.position).     4. ForceRecorder now take cary about old data files and renaming them.     5. SimulationPlayer now allow wire body form view tab.
+      1. ResetPositionEngine is now inherited from PeriodicEngine.     2. Add examples/rod_penetration model and geometry.
+      small fixes
+      1. New random-access interaction container InteractionVecMap (rewrited from  InteractionVecSet)     2. Fixes: default initialization some attributes in SCG and IS2IS4SCG
+
+Unknown (2):
+      I added a new state at the triaxial compression test in order to realize isotropic compression by the walls displacement until a indicated porosity value. These modifications can be seen with generator file "TriaxialCompression" in the last three parameters (added).
+      I corrected my errors on the triaxialtest files.Moreover, i added comments in the TriaxialCompressionEngine.hpp.
+
+Vincent Richefeu (4):
+      - initialize radius in InteractingSphere constructor.     - add new plugins used for membrane modelling.
+      - add GLDraw plugin for BssSweptSphereLineSegment displaying
+      - 'Membrane' (in fact geogrid) has been improved but still doesn't work...     - the class GroupRelationData has been add (not used yet) to define interacting parameters such as coefficient of friction or restitution that have nothing to do in the bodies parameters (in my opinion)
+      - forgotten files
+
+Václav Šmilauer (44):
+      Move big news to NEWS, ready for release finally (?)
+      Update INSTALL file from wiki (brief instructions only).
+      1. Reimplement some loop-intensive functions from yade.utils in c++ for better performance (as yade._utils, imported into yade.utils automatically - transparent to the user)     2. Add poisson's ratio and Young's modulus estimation in yade.eudoxos based on linear regressions of position→displacement mapping along different axes     3. Rename Shop::ElasticWaveTimestepEstimate to Shop::PWaveTimeStep, wrapped in yade.utils
+      1. Add python interface for blocking DOFs:     		b.phys.blockedDOFs=['z','rx','ry']     	It is friendlier than b.phys['blockedDOFs']=1<<2|1<<3|1<<4.     	The property is read-write.
+      1. Add code for computing histogram of interaction directions in given plane in _utils.     2. This is code is used by yade.eudoxos.plotDirections() to create the actual (nice) figure.
+      1. Skip (almost) exactly zero projections, implement masking of bodies.
+      1. poisson and young estimator now works on a fractional part of the speciment     2. do not switch ui automatically if selected explcitly     3. body::maskOK to check mask
+      1. eudoxos module cleanups, young estimator arg chages     2. fix harmless compiler warning in _utils.cpp
+      1. add utility function to compute elastic energy within a volume (the dynamic_cast to NormalShearInteraction still fails; what is going on?)     2. add utils.fractionalBox, an AABB reduced to its fraction     3. fix fixmes in Force and Momentum about unused functions about to be deleted     4. plotting interaction direction histogram now works on contrained volume (to study boundary influence on the distribution)
+      1. Beginning hijacking SpheresContactGeometry to hold more elaborate geometry characteristics, such as relative shear displacement. By default, those parameters are neither calculated nor displated (exactRot==False; must be set to True in ISphere2ISphere4SpheresContactGeometry to enable it). Test script is in scripts/exact-rot.py     2. Remove deprecated code from UniaxialStrainController     3. Add GLUtils to draw lines, text, numbers -- copid over from Shop     4. Add operator<< for Quatrnions (axis angle)     5. Fix energy calculation in volume (in _utils.cpp)     6. Other fixes here and there...
+      1. The exactRot code is reasonably verified now to be functional, including rolling correction (SpheresContactGeometry::relocateContactPoints) and will used in brefcom soon.     2. Updated the "testing" script scripts/exact-rot.py, as a showcase as well.
+      1. Remove GL things from Shop, moved to lib/opengl/GLUtils.hpp     2. Cleanup of SpheresContactGeometry code, rename exactRot to hasShear
+      (I thought most of this was already commited?!)     1. Delete unused IS2IS4DistantSpheresContactGeometry (merged with IS2IS4SCG), adapt existing code     2. Adapt new facet code to updated SpheresContactGeometry (only superficially tested) so that     they can interact using BrefcomLaw; add scripts/exact-rot-facet.py to show that.     3. Fix a few missing loggers in others' commits.     4. SimulationController redraws if iteration changes (the +1 button would otherwise not cause redraw)     5. Remove cruft from Brefcom.     6. Fix inheritance (dynamic casts) of NormalShearInteraction and of BrefcomPhysParams     7. Remove cruft from UniaxialStrainer     8. Add some python code to compute stress from stored elastic energy.
+      1. Move interaction direction distribution pie histograms to utils     2. Add plotting histogram of number of contacts to plotDirections()
+      1. Omega().bodies.append can take list of bodies now (instead of just one body), returning list of added id's     2. utils.facet can take both tuples and lists for vertex coordinates
+      1. Add NormalInteraction::normalForce and NormalShearInteraction::normalForce (moved up the hierarchy from ElasticContactInteraction) so that unbalancedForce can be calculated on any subclassed interaction type.     2. Adapt Brefcom for this.     3. Add Shop::unbalancedForce and utils.unbalancedForce     4. Add workaround for saving ipython history as suggested by http://lists.ipython.scipy.org/pipermail/ipython-user/2008-September/005839.html     5. Fix AxialGravityEngine to register parent class attributes.
+      1. Avoid compiler warning in optimized builds from pyOmega     2. Body containers now allocate the lowest possible ID for each added body. The old behavior was to allocate the first free ID greater than the ID of the body, if it was already set. Please let me know if this is critical for someone. We can do things like:
+      1. 3d view now has by default a OSD with iteration number, simulation time and virtual time. This can be toggled (all combinations) by pressing 'D' (which used to mean toggling d+ynamic flag...?) and set also from python with GLView.timeMask='rvi' (Real,Virtual,Iteration) and so on.     2. Simulation player displays real time and wall clock loaded from db (insted of bogus values of system clock when the player is being run)     3. new periodic SnapshotEngine that takes snapshots of any GL view to numbered PNG files.     4. new function qt.makeSimulationVideo that makes video _while running the simulation_.     5. qt.createVideo renamed to qt.makePlayerVideo     6. Added Omega method to query computation duration.     7. An example of using qt.makeSimulationVideo is in new file scripts/simple-scene-video.py
+      1. Add forgotten SnapshotEngine     2. BodyRedirectionVector always really find the lowest unused ID (the same for BodyAssocVector)     3. add Omega().interactions.clear() in python     4. Move the "Less than 500 bodies, moving possible" to LOG_INFO instead of on-screen since it disturbs videos taken during simulation...
+      A few fixes in TriaxialTest:     1. radiusStdDev is a registered attribute parameter     2. skip unloading phase if sigmaLateralConfinement==sigmaIsoCompaction     3. new bool autoUnload, that controls automaticity of going from compaction to unloading; autocompressionActivation controls from unloading to loading.     Note: IFacet2IS4SCG is broken, but not yet fixed.
+      1. TriaxialTest now takes readiusMean argument (by default negative, i.e. disabled); if >0, box size is scaled so that both requested porosity and mean size can be preserved.     2. Attempt to fix computation of stress from stored elastic energy.
+      1. Fix adding empty engine if record wall stress interval <= 0 in TriaxialTest (bug introduced yesterday)
+      1. Add Interaction::swapOrder(), for use in EngineUnits that want to avoid calling goReverse()     2. SnapshotEngine can sleep specified number of msecs after shot, which probably can avoid some hw problems (make_current failed in mesa, freezes etc)     3. InteractingFacet2IS4SCG now works "correctly" (not exactly physically, though) with shear     4. DynLibDispatcher should report names of classes if dispatch fails.
+      1. Add InteractionGeometryMetaEngine::explicitAction and InteractionPhysicsMetaEngine::explicitAction for creating contacts manually using the dispatcher     2. add utils.createInteraction(id1,id2) that requests explicit transient interaction creation     3. Add sample ElasticContactLaw2 (in ElasticContactLaw.cpp) that uses new SpheresContactGeometry code and can be used for "persistent" (transient but not deleted by the collider) contacts.     4. Add Shop::applyForceAtContactPoint (applies contact force at contact point to both bodies (reversed for body2) and moments acting on their cenroids as well)     5. All the previous new functionality is demonstrated in scripts/chain-distant-interactions.py.
+      1. Add Omega().reload()     2. Create map<string,string> Omega::memSavedSimulations, where simulations are saved if they begin with special sequence ":memory:" and can be loaded again, within lifetime of Omega.     3. Add Omega().tmpLoad() and Omega().tmpSave() that use the above mentioned thing.     4. add utils.readParamsFromTable that reads any python variables from text file (useful for automatic parametric studies)     5. Add less expensive routine for sontact point relocation in SpheresContactGeometry
+      1. Separate player into two windows (controller and the 3d view); the controller may be hidden with ::hide() (and ::show()) or with Alt-H from the 3d view. This allows for correctly restoring 3d view size. Closing any of the two closes the player. Please log crashes, if any.     2. Update QtGUI-python.cpp: runPlayerSession
+      1. Yade now runs TCP server at the first free port above 9000 (accessible from localhost only), which simulates python console. (let me know if you need this over network -- it is DANGEROUS, since someone can delete all your files etc without any authentication). The interpreter has its own namespace.
+      1. Fix crasher (under special circumstances) in PersistentSAPCollider (deletion invalidating iterator)     2. PeriodicEngine now takes nDo and nDone attributes, limitng number of activations     3. Fix minor things is BrefcomDamageColorizer, add normalized damage to BrefcomPhysParams     4. Fix some indents in Triaxial
+      Fix stupid sign mistake when applying contact force in brefcom.
+      1. PythonTCPServer now generates random 6-letter cookie (password) at startup and authenticates all connections by that cookie.     It can be retrieved from yade.runtime.cookie
+      1. Add Body().mask in python     2. Add PhysicalParameters().pos and .ori instead of ugly pp['se3'][:3] and pp['se3'][3:]     3. Add dmgPlane plot in brefcom     4. Do not delete renderer if we close the last view (loses all renderer settings)
+      1. Add a quick implementation of bending and torsion code to SpheresContactGeometry     2. Update ElasticContactLaw2 to use that code; stiffnesses are hard-coded for now.     3. Update scripts/chain-distant-interactions.py to show that that code really works     4. Plot residual strength instead of damage in brefcom     5. Add some functions for spiral projections (not correctly working yet)     6. Fix missing std:: in DisplayParameters
+      1. Add 2d weighted average smoothing abstract class and its specialization on symmetric gaussian kernel, with python glue of course.     2. Remove .gz support.     3. Fix some bugs in the spiral projection code.
+      1. Fix errors preventing compilation due to missing TesselationWrapper.
+      !! IMPORTANT !! Introduced new dependency on "python-numpy" package     (numpy/ndarrayobject.h header), which is now checked for by scons.     Tell me if this is not OK!
+      1. Add initializers for all SpheresContactGeometry members, to avoid nan's in the .xml file     2. Add code for saving arbitrary python variables within the .xml file, see documentation on utils.saveVars() and utils.loadVars()     3. Fix error (hopefully) caused by dangling symlinks in the symlinked buildDir/include tree
+      1. Fix algebraic typo in max distance check.
+      1. Commit simple parametric study interface, documented at http://yade.wikia.com/index.php?title=ScriptParametricStudy and wrapper script to queue jobs, which is installed as yade-trunk-multi, yade-trunk-opt-multi and so on.     2. Examples of such parametric "study" added in scripts/multi.py and scripts/multi.table     3. MetaBody now create Omega().tags['id'] at initialization like '20081028T102950p15498' (date, time, pid) that is unique
+      1. Changed colors to be random by default on utils.{sphere,box,facet}
+      1. Make our intelligence-challenged deserializer finally gracefully handle nan, inf, -inf (arbitrary lower-upper case).     2. Fix crash in MembraneTest (leftover in the commit from testing, oh well)     3. Add TriaxialTest::fixedBoxDims to not scale selected box dimensions if sphere mean radius is given (example underway).
+      1. experimental support for Real==long double (#defines QUAD_PRECISION, scons quad=1). long double is not necessarily quadruple precision (not on IA32, at least) though, but is still more precise than double. (search "long double" on wikipedia)     2. Some preparation to compile with -std=c++0x (not yet functional) WRT <boost/shared_ptr.hpp> and boost::shared_ptr vs. <memory> and std::shared_ptr     3. Fixed in yade-multi.     4. New direct oofenm exporter in yade.eudoxos.     5. Don't fiddle with termios in non-interactive sessions.
+      1. Add INTEGER (besides FLOAT) to the list of wrapped c++ types in python. Fix type detection for long double     2. Fix Real->double conversions in GLDrawBssSweptSphereLineSegment.cpp
+      1. Body().phys.refPos is directly accessible now (old way Body().phys['refSe3'[0:3]] still works, though)     2. Labeled engines are at load-time or when Omega().engines are modified assigned to variables __builtins__.label;       for example
+      Add forgotten file.
+
+==================================================
+yade-0.12.0
+Wed Aug 20 14:37:02 2008 +0000
+
+Janek Kozicki (8):
+      testing if SVN commit messages can go to launchpad
+      eliminate crash on simulation reload. commented out line 241 in QtFileGenerator.cpp
+      some small bugfixes that allow all non-broken filegenerators to run. Those based on SDECLinks will never work, so just put "return false;" there to indicate failure.
+      use NDEBUG to detect optimized builds in FEMBeam and HangingCloth
+      small changes in Lattice     small bugfix in scons (by Vaclav)
+      No idea why dynamic_cast fails while static_cast works in TriaxialCompressionEngine:275 and GlobalStiffnessCounter:63 when casting to NormalShearInteraction. We will use static_cast for now...
+      New ChangeLog format. Now I will update with older revisions. But next time     it's ALL OF YOU who will write this ChangeLog. It's not nice to write 200     entries once per year.
+      Release 0.12 is ready
+
+Sergei Dorofeenko (1):
+      Fixed small bugs and misprints
+
+Václav Šmilauer (22):
+      1. Remove unused GLViewer4     2. Add fairly straightforward GLViewer wrapper (manually wrapped)     3. Fix scripts/simple-scene-player.py that generates video     4. yade.qt module is now in python and imports * from yade._qt for the binary wrappers     5. importing qt if qt not running raises ImportError     6. utils.qtCreateVideo moved to qt.CreateVideo     7. Exponential softening in brefcom (untested)
+      1. DECREASED Mathr::ZERO_TOLERANCE to 1e-20 so that we don't get identity quaternions for small rotation in ToAxisAngle (!!)     2. Add glue for GLViewer, currently may crash, probably concurrency issues there     3. added yade.plot.reset()     4. add data smoothing (moving averages &c) function to yade.eudoxos     5. Omega().run(num#,wait=False): if the bool is True, it is equivalent to o.run(20); o.wait() for convenience
+      1. Fix file generator to properly return bool. This fixes some of default-test.py. Change python interface to throw on generator error rather than return bool.     2. Added python glue to set logging levels for individual loggers (from yade import log; log.setLevel('TriaxialTest',log.DEBUG) )     3. Configuration file for logging is not monitored anymore, since changes from python would be lost     4. Added PhysicalParameters BrefcomPhysParams to prepare for storing volumetric strain; adapted utils.sphere and utils.box to take physParamsClass argument to determine what class to actually create (was always BodyMacroParameters, which is the default now)     5. Brefcom now computes unbalanced force (which is apparently broken as far as the numbers go) and volumetric strain. Many cleanups in Brefcom as well.     6. The collider now properly deletes interactions !I->isReal && !I->isNew && haveDistantTransient. More discussion is needed on that, though.
+      1. Fix USCTGen so that it works within default-test.py     2. Minor fixes as usual.
+      1. Fix all crashing preprocessors - for the price of SDECLinkedSpheres and ThreePointBending not really working - InteractingSphere2InteractingSphere4SpheresContactGoemetry only handles SpheresContactGeometry (and not SDECLinkGeometry), OTOH CohesiveContactLaw works only on SDECLinkGeometry. scripts/default-test.py passes now all preprocessors.     2. SDECLinkGeometry marked as deprecated.
+      1. Permit non-zero integeres as bool - sometimes the serializaer confuses bool with int; give warning to console about that.     2. the -opt profile (and optimize=1) generates instruction set for the current machine (gcc: -march=native) which means that the code may not run on different processor (e.g. core2 code will not run on Pentium IV). Please let me know if this is problem for someone.
+      1. Fix error with newer ipython coming from the fact that sys.argv wasn't defined in the embedded python env.     2. Fixes in brefcom.     3. stopSimulationLoop in TriaxialCompressionEngine if we enter LIMBO state.
+      1. Fix refresh period: use it for regular GL rendering as well     2. Make "open automatically" open generated simulation even if a simulation is already loaded     3. Fix crasher (on some machines) the close() was emitted 2× for QtFileGenerato
+      1. Fix a typo causing crash in the renderer.
+      Fix another crash - rendering interaction that were, meanwhile, deleted during simulation being loaded. A more proper solution (like having a mutex on the whole rootBody that would be locked during loading) is welcome.
+      1. Remove draw mutex when loading simulation introduced a few days ago (may throw boost::lock_error under some conditions)     2. Restore default signal handlers before exit from main; set SEGV handler to nullHandler since on i386 we (on lenny consistently) get crashes in some log4cxx destructor.
+      WARNING! This version crashes - but I don't know why and I please for help. Summary follows.
+      1. Fix GUI "crash" when trying to run python console without terminal (running by clicking an icon, for example): if no $TERM, run non-interactively     2. Select QtGUI over PythonUI if no $TERM set
+      1. Do not propagate exception to c++ (-> crash) if there is python exception in the script being run from command-line. Just print traceback and drop to the python console (unless stop after execution specified).
+      1. Kill building threads if the master thread is interruped in multi-builds (profile=a,b)
+      Fix physical action index.
+      test commit (whitespace)
+      test commit 2 (whitespace)
+      test commit (whitespace)
+      1. Fix catching all (including SystemExit) exceptions in python scripts. If nonInteractive or stopAfter, exit immediately, otherwise just print traceback and drop to the python shell. Reveals many unfunctional generators suddenly.
+      1. Fix nan's in SpheresContactGeometry     2. Fix ThreePointBending returning false on success (?!)     3. Add Preprocessor().load() method to python wrapper that generates to tempfile and loads it immediately.
+      1. Fix SDECLinkedSpheres returning false on succes (?!).
+
+==================================================
+yade-0.12.0rc1
+Sun Jul 27 10:52:50 2008 +0000
+
+Bruno Chareyre (69):
+      Modifications in the equations of "non-viscous" damping. The equations     are now as defined by Cundall.
+      Engines are now compiled in a different order, with DeusExMachinas compiled last.     The full DEM package has been compiled successfully after thuis change.
+      <none>
+      <none>
+      IsotropicCompressionEngine removed from SVN.     TriaxialTest do the same thing (i.e. isot. compression) better, and do more.
+      The damping equations are reverted to their original expressions, with independant     damping of each DOF. It looks like the convergence to equilibrium is faster with     these equations.
+      Squared distances are now compared instead of simple distances (faster) to     decide if two grains are in contact.     In addition, InteractionDetectionFactor is added as member data.     The default value is 1, a value greater than one will allow the geometry     of contacts to be created as soon as the distance is less than     Factor*SumOfRadii. Usefull for interactions at longer distances     (like capillary effects).
+      A simple definition of contact stiffness based on E and nu :     kn = E*size of sphere (so that apparent stiffness will be independent of size)     ks = nu*kn
+      A lot of small changes in triaxial classes, impossible to comment all of them;     but note that :     - TriaxialCompressionEngine can compress a sample to a dense isotropic state (either     by moving walls or increasing the size of the spheres),     - then change the confining pressure if needed (for running tests with different confining     pressure on the same sample),     - then start a triaxial compression test at constant zz strain rate and constant     xx and yy stress (when the sample is considered stable based on StabilityCriterion).     - The transitions between the different phases are (in principle) very smooth.
+      Revert erroneous (and unexpected) changes in this pro file.
+      Minor changes in the computation of the critical timestep.
+      All files related to capillary law.
+      Update of all classes related to dry and unsaturated triaxial tests.
+      Modified definition of the interpenetration for box-spheres     interractions. The previous definition was inconsistent.
+      Correction of a wrong formula introduced in the last revision     (the position     of the contact point was wrong).
+      Some changes in the computation of critical timestep so that the     triaxial samples do not explode when dt is set to the automatic     value. The change mostly affects the first steps of a simulation. Now,     dt is computed at each timestep during the first steps, whatever the     value of the user-defined variable "timeStepUpdateInterval", until a     relevant value is found.
+      Cosmetic changes in TriaxialTest.
+      Initial zoom in the simulation player is set to a more reasonable value.
+      UnbalancedForce member data was not defined in the constructor of TriaxialCompressionEngine, it was causing a crash when loading a     TriaxialTest.xml.
+      -TriaxialTest now includes a recorder to write stress history to a file.     -safety factor is set to a smaller value in the timestepper as the     computed value was still a bit too large in some cases.     -UnbalancedForce is defined in TriaxialCompressionEngine() to avoid     errors when loading a xml.
+      Link TriaxialTest with WallStressRecorder in SConscript
+      This commit contains new classes in order to simulate cohesive     interactions with transient interactions.     The new SAPCollider does set IsReal=false at each time step, neither do     the Sphere2Sphere4Distant... engine. The user must set isReal=false in     another engine (here the CohesiveFrictionalContactLaw engine) in order     to have the interactions removed from the DistantPersistentSAPCollider     list.     All new engines are used in the CohesiveTriaxialTest.
+      A REGISTER_ATTRIBUTE was missing in the previous commit.
+      Some new classes related to the coupling with comsol (main author Andrea     Cortis).
+      FIXED : TriaxialCompressionEngine was stopping the simulation at each     time step...
+      1- New contact law and related classes : CohesiveFrictionalContactLaw. It will be the most general contac law in Yade soon     probably (TODO : include rotational effects like MomentRotation law).     2- New Stress-Strain recorder : TriaxialStateRecorder, autodetect the TrixialCompressionEngine of a MetaBody and write the     parameters from it in a text file.     3- TriaxialCompressionEngine and TriaxialStressController are modified in order to compute stress and strain on demand.
+      Modification in the usage of default values in     GlobalStiffnessTimestepper.     Change in dt default values in the preprocessors.
+      Added some comments (doxygen friendly)  and corrected the author in some of the source files related to the triaxial test example.
+      In Yade.cpp : conditional compilation in order to compile with boost     1.33     In TriaxialTest.cpp : instanciation of a SimpleElasticRelationship     object before adding it to engines (to avoid a crash). Vaçlav please,     what is going on here?O
+      Few "cerr" are back...
+      Different fixes, including
+      -TimeStepper : previousDt is now a registerable parameter, which can be used after saving/loading. New feature implemented : dt can be     increased at a steady rate : dt=1.5*dt each time maximum (to prevent sudden increases and explosions). Comments added.     -TriaxialTest : The timestepper is moved to a earlier location in the list of engines, so that the timestep is set before the     stressController call. REMARK : REGISTERABLE dt IN THE TIMESTEPPER MAY BE REDUNDANT WITH THE "RECOVER TIME STEP" FEATURE OF YADE, DO WE     NEED THIS ONE?     -StressController : revert a small mistake in last commit.
+      Fix the bug with BrefCom in GlobalStiffnessCounter.
+      Samll optimizations. r1263 is +25% slower than r1264 based on tests on 2 different computers.
+      Added NewtonsDampedLaw :
+      The test on penetrationDepth is moved to a different line : no need for a "new SpheresContactGeometry()" when     interaction->isReal will be false.
+      A registered parameter (finalMaxMultiplier) was not set for the     relevant engine. Fixed now.
+      Parameters are adapted to the last modifications in     TriaxialStressCompressionEngine.
+      TriaxialStateRecorder : add the unbalanced force in 8th column.     TriaxialTest : revert order of creation of spheres and boxes (boxes first), to prevent numbering problems in SAPcollider when using     HydraulicTest.     HydraulicTest : search engines and modify their parameters (desactivate stress control/activate gravity)     dem/SConscript : link HydraulicTest with few more libs
+      Safety coefficient on critical dt is changed to 1 (was 0.25 before).     0.25 was far too conservative.
+      A bit (lot) of cleaning in TriaxialTest.     Useless recorders inherited from the early ages of Yade are no longer     present.
+      Fixed interpolation for the case P=0.
+      Added minimalist documentation.
+      1. TriaxialCompressionEngine is now saving at the end of compaction rather than at the begining of compression test, so that the     simulation is saved when autoCompression is not activated (before this change, the simulation was going in LIMBO state without even     saving, which means it was lost).
+      Some cleaning.
+      A link was missing between TriaxialTest and the NewtonsDampedLaw (new engine doing the same as the 6 previous integrating engines).
+      A lot of fixes to make this engine work correctly regarding transitions between different states, including situations     with saving/editing/loading.
+      This commit contains an experimental version of the collider based on the triangulation package of CGAL.org.     Compilation is disabled for the moment, but uncommenting few lines will enable compilation if CGAL and my (me=Bruno) own libs are     available for linker.
+      Contact law based on voronoi tesselation (using CGAL).     Not included in compiling process now, this is for JF Jerier.
+      This reverts a previous change in IGMetaEngine from Janek (interactions were set "new" when not real - problem was that     non-distant interactions are ALWAYS "not real" when starting IG dispatching - so they were set new and reseted at     each timestep, which disabled friction).     What was supposed to be done in IGMetaengine is now replaced by something almost equivalent in the SAPcollider (the     difference is that if an interaction is not real before being reseted by the collider, it really means that it is     not-overlaping and not-physicaly-interacting).
+      Again few changes in the behaviour of this engine, it should now handle correctly any manual change in the xml file     (still needs a fix : there is still a part of the code that is done only at first iteration, which means that a     modification of sigma_iso by editing the xml will give a different result than the same modification from PythonUI).
+      Timestep safety coefficient is back to 0.25.
+      - ks is registered in ElasticContactInteraction (it was not, which was a bug, but it was not     affecting computation because initialKs was used to set ks=initialKs at each timestep).
+      Added code for computing porosity in TriaxialStateRecorder and titles for colums in output history file (porosity is     in the 9th column).
+      1+2 : added "Key" string in filenames.     3 : missed that hpp in previous commit.
+      A small cast mistake.
+      Corrected a local #include path.
+      Added a function that can modify friction of all bodies/interactions.     Usefull to compact at low friction and then perform the compression test with normal (higher) friction.
+      Modify slightly the way shear displacement is computed to prevent "ratcheting" (see comment)
+      Same modif as in ElasticContactLaw (previous revision) to prevent "ratcheting".
+      Added a code that will be common to all output filenames to help sorting different simulation results.
+      Some code for triangulation/tesselation using CGAL, it is experimental and not included in the build process for the moment.
+      Fixed a bug due to a wrong macro definition in CGAL (CGAL_LIB_CREATE sould be "ar cr" instead of "ar cr ''").     This macro is not used now.
+      - epsilonMax added to compressionEngine to stop simulation.     - data files for Triangulation removed from svn     - bool "isNeighbor" added to interactions, used in     triangulationCollider.
+      - Modified numerical scheme to reproduce a standard 2nd order finite     difference scheme integration (more stable).     - TimeStepSafetyCoefficient can be set to 1 rather than 0.25.     - same change still to be done in the separate LeapFrog engines (the     default TimeStepSafetyCoefficient is 0.25 in the meantime to prevent     explosions with preprocessors using those separate engines).
+      NewtonsDampedLaw : fixing a small mistake and cleaning the code.     IMPORTANT NOTE : Forces/Moments are not affected by damping now, only     accelerations are modified. The result is the same in terms of damping, but users can now     get the exact values of forces/moments on bodies at any point during a     timestep.
+      Mostly small changes and fixes from previous weeks. Sorry for such poor comments...
+      ks is added to registered parameters.
+      Fix a problem resulting in VectSet (default)  and HashMap being used     simultaneously for transient/persistent interactions     in the same simulation (which for unknown reasons is not     good).
+
+Janek Kozicki (82):
+      added info where are the pictures for the user manual
+      can be undeleted from the history if anybody needs that
+      directories for Czesiu and Tiziano to work on yade packages: debian and gentoo. later we can add directories for .rpm, etc....
+      - better DynLib error reporting     - new Lattice, only 2D     - triaxial test from Bruno     - deleted unused QGLThread
+      Fixed some problems with yade-flat
+      deleted yade-lib-time, and using boost::posix_time instead
+      - it is possible to select (shift click) and 'm'ove bodies in the simulation view window.       a dirty implementation. Needs major refactoring.     - the "display" tab now offers the ability to set 'display refresh rate' in [ms]       so it's like the priority of draw.
+      renaming     SimulationRunner -> ThreadRunner     SimulationFlow -> ThreadWorker
+      renaming done.
+      FileGenerator now does not block whole GUI when generating. And can be stopped     if function generate() calls somewhere in the loops:
+      small fixes to ThreadWorker
+      Graphics display can be now synchronized with the calculation without problems,     and without blocking GUI
+      - more improvements in ThreadRunner, ThreadWorker::~ThreadWorker and SimulationController      - fiddling with lattice: angle between beams is now calculated in 3D not 2D, with tracking of positive/negative angle.        So the angle is between -180 and 180 deg, while arcus cosinus can only give a result between 0 and 180 degrees.
+      Finally deleted swiftpp and qhull. Now we have less license problems. There is     still license problem with math library, though.
+      ...
+      ...
+      Some cleaning, involving changing variable names, like     Body::interactingGeometry. Which caused almost all the files to be modified.
+      oops, forgot to commit MyTetrahedronLaw
+      renaming: ElasticContactParameters ElasticContactInteraction
+      renaming cd...
+      renaming finished: ElasticContactParameters ElasticContactInteraction
+      added GLDrawStateFunctor. So now it is possible to see bodies' velocity,     acceleration, angularVelocity, angularAcceleration. And other State attributes     of a body.
+      =========-----------------============
+      --------------------------------------     NullGUI allows to call a FileGenerator
+      Omega throws when loading bad simulation file
+      -----------     SimulationController catches that error from Omega :)     (when loading bad file)
+      'C' key centers scene on selected body     'D' sets the 'isDynamic' flag of selected body. (select it twice to unset this flag).
+      --     flag that allows to enable/disable calculating of torsion     LatticeExample FileGenerator can now generate a 3D tetrahedral regular grid. (before there was only orthogonal grid)
+      Added drawMask to OpenGLRenderingEngine, it is now possible to see only bodies that have a certain groupMask
+      Added non-working scripts that can compile yade using waf. At least they are not working for me.
+      --     removed invMass and invInertia. Removed special handling for division by zero.     mass shouldn't be zero anyway.
+      Matrix3 patch from Vaclav
+      - FileGenerator reports how long the generation took     - yade.cpp takes PREFIX and POSTFIX as #define /some/path , without "     - small change to lattice generation method     - Makefile cleans after scons     - SConstruct:        removed \" from defines in PREFIX and POSTFIX line 147        added -pthread for g++ 3.3        moved env.Append(CXXFLAGS=['-pipe','-Wall','-pthread']) before invoking the tests        changed "nor" to "not", line 271        removed PATH, becuase I couldn't get it to work. so instead I set CXX='distcc g++-3.3'
+      - FileGenerator shows generation time, and saving time
+      - QtFileGenerator remembers save file name (so it is not always       ../data/scene.xml), this was done in previous commit. A small bugfix here
+      - OpenGLRenderingEngine didn't draw Body when it's groupMask was 0     - some changes in lattice.
+      - I added GeometricalModelForceColorizer. It is another hacky Engine that I       have added (along with Quadrilaterals). I did it, because I wanted to see       spheres colored according to force acting on them. This is a hack because the       GLDraw mechanism is currently very limited, and has to be extended to allow       things like this. So currently it works, but not in a way it should be done.       GLDraw* changes are coming ... soon :)
+      In this commit I made Interactions drawable by GLDraw*, and I added three     example GLDraws for Interactions:
+      - in GLViewer new keys: 'o' and 'p' to change the field of view. Useful for changing the perspective.
+      IMPORTANT: In this sommit I have added a third parameter to          GLDrawInteractingGeometryFunctor, which means that all GLDrawInteracting*          classes had to be changed. If you have your own classes that draw interacting          geometry you must modify them as well. The extra paramater added is 'bool          wireFrame'. I think it will be useful :)
+      - a more prominent warning when PREFIX was not defined during compilation     - ThreePointBending does not crash when there is not file to load     - some fiddling with lattice
+      moved some obsolete scripts to doc/removed
+      - Updated trunk/ChangeLog       - new icon
+      - fix several warnings,     - merge latest version of lattice from my PhD     - todo: serialization problems with findType in NodeRecorder and FEMBeam, remove ErrorTolerant, fix collistions in rigid body
+      - removed ErrorTolerant,      - SConscript uses md5sum instead of timestamp.
+      Tetrahedron modification to std::vector
+      - fixed crash in SDECLinkedSpheres example - there must me a dynamic cast in       InteractingSphere2InteractingSphere4SpheresContactGeometry.cpp       until the containers are rewritten.     - fixed RotatingBox and BoxStack examples - and accidental mistake in SAPCollider
+      - timestepper is set correctly when loading file in GUI (I hope!) - no need to reload second time     - FileGenerator does not open SimulationController if it already exists
+      - introduced body_id_t(ype) so that bodies are not numbered as an int, but as a body_id_t     - added center 'scene button' on first tab of simulation controller
+      trunk on SVN is deprecated now
+      undeprecating trunk. Now I'll apply diffs from BZR back here.
+      BZR revno: 983     committer: vsmilauer <vsmilauer@c1sinquatis-l>       Fix scons to handle boost.*-mt well, some other cleanups.
+      BZR revno: 989     committer: VĂĄclav Ĺ milauer <eudoxos@xxxxxxxx>     message:       Modify debian builds so that making source packages for release versions work as well.
+      BZR revno: 991     committer: Janek Kozicki <cosurgi@xxxxxxxxxx>     message:       - Tetra2TetraBang returns before it starts (to avoid crashes in the release)       - fixed some crashing of HangingCloth, but I see that there is still some         problem. Tracking it down is a waste of time, currently, because new         containers will enforce refactoring here and fixing this problem.       - FileGenerators try to set the timestep when TimeStepper is not used. But it         is still not working when simulation is running during the generation. This         means, that 'dt' should not be in Omega, but inside a simulation itself. At         last there is a clear answer for this dilemma.
+      OK, I think that migration back from BZR is complete :-)
+      Ooops, previous commit did break SCDECLinkedSpheres example and HangingCloth...     I hope that it's fixed now. Also removed warnings from Capillary law... again.
+      HangingCloth finally is fixed, and is not crashing in optimized build. The     dynamic cast ought to be in HangingCloth.cpp FileGenerator ;)
+      Added RELEASE file in tags/yade-0.11.0     more descriptive error message when directory ../data/ doesn't exist     (usually happens at start...)
+      - update yade icon, by Vaclav's suggestion (the red spheres are not so vividly red, so looks a bit better)     - scons will create the installation directory if it doesn't exist     - incorporated Bruno's fixes into 0.11 release
+      - Updated RELEASE info in yade.cpp, although the best would be if sons will #define RELEASE
+      update changelog
+      Preparinf 0.11.1 release. Updated INSTALL file. ForceRecorder now checks if a body exists.
+      changed char* yadePluginClasses[]= to const char* yadePluginClasses[]= to eliminate possible misuse     updated release 0.11.1 looks like ready to ship
+      Some fixes in lattice regarding yade::serialization problems (function findType()) that started to occur when using g++ newer than 3.4     The offending code was commented because it wasn't working. Now I uncommented and modified it, so it works.
+      deleted unused class AAInteractingBox2InteractingSphere4ClosestFeatures
+      Use lattice model for simulation of concrete with steel fibres reinforcement.
+      SConstruct is now working on debian etch,     exclude multimethods in Doxyfile
+      1. Fix FUNCTOR2D mistake in CundallNonViscousMomentumDamping     2. make it compile with python2.4 and qt3 (which sucks)     NOTE: python-scientific requires boost 1.34
+      recent changes in Dispatcher seemingly broke adding InteractingSphere2InteractingSphere4DistantSpheresContactGeometry and InteractingBox2InteractingSphere4SpheresContactGeometry as strings. Need to create class instance first, then add it as a variable (not as string).
+      I must assign something to avoid "nan" when loading dt. When recover=false, those can be "nan" and lead to crash.
+      - draw linked interactions only if isReal.
+      Added StaticAttractionEngine, which help to fasten a little the initial stage     of compression - removing the central void. But it is in fact too slow, for     bigger usage. That's because everything is attracted to everything.
+      I don't know what's up with Brefcom, but I need yade to compile, because those guys who will sell us 16-core machine will be using this SVN revision for their benchmarks.
+      dang! I just want the latest SVN revision to compile.
+      yade.cpp give info about cmdGui      -N name : specify the user interface (available: NullGUI, cmdGui, QtGUI)      FileGenerator catches exceptions.
+      Moment law.
+      1. moment law: some cleaning     2. GLDrawSphere - draws circles faster (wireframe)     3. yadeControl - fix compilation error with optimized builds: YADE_PTR_CAST -> dynamic_pointer_cast
+      in previous commit, when optimizing the circle, I committed by accident a filled version. It's just a bool to toggle between filled and not filled, but, it's not possible to change from GUI... yet.
+      Use / * - + for front cutting plane:     1. added new class YadeCamera : public qglviewer::Camera     2. ovverride virtual function which calculates the front cutting plane     3. it's possible that GLViewer4 will have to be modified - to use YadeCamera to        have this new feature - front cutting plane. I didn't touch it.
+      Ask the FileGenerator for the filename.
+      - flag 'active' in DisplacementEngine     - CapillaryCohesiveLaw now complains to stderr (could use LOG_WARN as well, but didn't compile)     - flag 'always_use_moment_law' in CohesiveFrictionalContactLaw (so is possible to use even for broken contacts)     - added comment about the contact law from PFC-3D (I used it for comparison with Wenjie)
+      - started snow creep test.     - added optional creep in CohesiveFrictionalContactLaw
+
+Jerome Duriez (1):
+      - A new Preprocessor (DirectShearCis) allowing to simulate ... direct shear tests with the Engine associated to let move correctly the box (CinemCisEngine)
+
+Sergei Dorofeenko (17):
+      Add linear viscoelastic contact model
+      1. Main commit: import a geometry of walls from a STL file.
+      Translate comments to english.
+      1. Fix orientation. Now one can rotate the STL geometry.     2. Added rotation kinematics to STLImporterTest preprocessor     3. Bugs fix.     4. Added another example of STL file in examples directory.
+      1. Python wrapper for STLImporter     2. Example python preprocessor STLImporterTest.py     3. Small fixes
+      1. Added attribute zeroPoint to RigidBodyParameters and RotationEngine. This attribute defines the rotation center of kinematic body.     2. For ElasticContactLaw added accounting rotation of kinematic body around its zeroPoint.     3. Added phase flag "cycle" to Interaction. SpatialQuickSortCollider is modified so interaction's cycle flag is used to mark stale contacts instead isReal flag.     4. Small changed InteractingSphere2InteractingSphere4SpheresContactGeometry and GLDrawElasticContactInteraction. I think, towards an improvement. If there are objections, changes must be reverted.     5. pyOmega.save allows recovery     6. STLImporter allows multiple files to import consistently.     7. Bugs fix.
+      reverting condition c->isReal
+      1. Add engine ResetPositionEngine for the return of bodies at their initilal positions.     2. small fixes.
+      Small fixes
+      Fix relative path in SimulationPlayer
+      small fix
+      1. ResetPositionEngine: added import/export initial positions from file     2. GLSimulationPlayerViewer: skip bodies which does not have a geometrical model     3. QtGeneratedSimulationPlayer: small fixes layout and sizePolicy.     4. utils.py: agreement spheresToFile and spheresFromFile
+      In PositionOrientationRecorder and GLSimulationPlayerViewer pass the bodies without geometrical model     Small fixes in PositionOrientationRecorder
+      1. Added new engines:     - FiltrEngine is a base engine for a scene filtration before     visualization (both for a player and for a controller). The filtration is     activated through GUI (now only for SimulationPlayer).     - ColorizedLayerFilter  allocates with colour a layer of bodies     - ColorizedVelocityFilter  allocates with colour a velocity of bodies     2. Add Omega::setCurrentIteration to allow current simulation time from a player     3. ResetPositionEngine allows onlyDynamic (without save subscribed bodies ids)
+      small fixes
+      fix errors in previous commits
+      Fix in SimulationPlayer: search filters and updateGL after loading simulation
+
+Unknown (2):
+      Fixed some typos.
+      Modified Doxyfile not to show lib/ and to optimize for C++
+
+Václav Šmilauer (208):
+      Multiple changes.
+      Add logging.hpp which I forgot in the previous commit.
+      Remove printing headers being linked, add help for cleaning. Tried scons on a cleanly checked-out trunk and it worked. Sorry for the traffic.
+      1. Two sets of files were named StiffnessMatrixTimeStepper, of which the other one was in directory Global StiffnessTimestepper. Since it was not used (not compiled by default), I renamed the second set to match the directory name. If it breaks something, let me know.     2. Updated the scons script, scons now compiles yade completely, including header installation. It is yet to be tuned to be lot more fast, but works fine already.     3. Cleaning up messages at startup, (almost) everything is piped through the LOG_* stuff.     4. Included sample logging.conf.sample file, log4cxx is amazingly flexible and easy to use. Give it a try!     5. Lot of debugging since after the last change of allowing regular files to be plugin-loaded, yade would try to load garbage (like the file foobar.baz transformed to libbar.so and the like) giving spurious errors. Everything should work properly now, you can have whatever you like in the plugins directories. It will not even crash on short files (amazing fragility...).     6. Removed the message from ResultantForceEngine constructor, to not to pollute the console every time. Dtto for StiffnessMatrixTimeStepper.     7. Added one ; in yade.cpp that broke compilation without LOG4CXX. The non-log4cxx macros are now enclosed within {} just as their log4cxx counter parts. This should eliminate the need for separately building both configurations.
+      First commit from the wm3 convergence set. Header files were modified to allow compilation with old methods with deprecation warnings from the compiler.
+      This is the second changeset. Yade now compiles without any single warning about deprecated functions. For fixing your own code, I will upload a script to automatize that process shortly. As time goes by, deprecated functions and (slowly) wm3 itself will be removed from yade's sources.
+      Provided script hackett-warn-replace.py is for eventually helping you with replacing deprecated wm3 methods by the good ones.     hackett.py was used to insert deprecated wrapper to headers and will probably never used as such anymore. Deleted old erskine2* stuff, since it is superseded by erskine3* and scons.
+      This commit marks properly all headers as well as methods that were deprecated during the transition to the official wm3 library. Next commit will follow shortly and will fix all deprecated headers warnings. It is (and will be for a while) to compile in with USE_BASTARDIZED_WM3 to use the old headers, but expect many warnings during the build.
+      - Bastardized wm3 library ejected from the tree. From now on, you need to install wm3 separately. Will update README shortly on how to proceed. Basically, add  "-I/usr/local/include/wm3" to CXXFLAGS if you use qmake. Includes and linking was adjusted in c++ and .pro files.     - DOUBLE_PRECISION removed in favor of SINGLE_PRECISION. Therefore, the default is to define Reals as doubles now. SINGLE_PRECISION will be removed very soon anyway.     - Removed yade-lib-algorithms, since it is not used. Once someone needs it, it can be found in svn history.     - Created yade-lib-base, that for now contains      1. Logging.hpp: moved from yade-core to avoid circular dependency),      2. yadeWm3.hpp: typedefs for Vector3r Vecrtor3<Real>, definition of Real. This header will be removed soon, since it will not be needed.      3. yadeWm3Extra.hpp: things that were added to the bastardized wm3, like a few operators and functions. You almost certainly want to include it in your code if you get undefined references (and link with yade-lib-base).     - Omega now reports undefined symbols demangled.
+      Re-enable workaround for scons: create install directories beforehand. Cause of that is to be inspected yet.
+      Disable DEBUG messages for non-log4cxx builds so that Janek's screen is nicer ;-) (sorry for these scattered commits, hopefully this is the last one).
+      Exceptions from the FileGenerator thread are now properly caught; it means for example that if you pass an invalid classname in createActors, yade will tell yo     +u what class it wasn't able to construct instead of hanging infinitely.
+      Massive update of scons, which I now recommend for building. It has some autodetection support as well.     Please report any bugs (?) / RFEs to me. Brief instruction are given in INSTALL.
+      Quick fix for recently discovered segfault. Wondering why it didn't surface before. Valgrind still complains about PhysicalActionVectorVectorIterator::increment using an unitialized value, but that may be unrelated (probably is) to this one.
+      SCons update, please use it and report any problems to yade-dev or yade-users. Thanks.
+      Iterations/sec display added to simulation controller (someone more sensible may redesign the layout in the future). Line ending changed from CRLF to CR.
+      Scons accepts additional POSTFIX parameter, which will alter installation so that PREFIX/{bin,lib}/yade becomes PREFIX/{bin,lib}/yadePOSTFIX (similar to EXTRAVERSION of Linux). Further, configuration files will be searched for in ~/.yadePOSTFIX instead of ~/.yade. Unfortunately, headers installed in PREFIX will still be overwritten by newer version, even with different POSTFIX, since most files do something like #include<yade/...>. This is meant to ease simultaneous installations of different variants of yade. To achieve full independence, PREFIX and POSTFIX should be different. Note that you don't need to set LD_LIBRARY_PATH, since scons uses linker's -rpath option (hint: man ld). If someone has better solution, please let me know.
+      Microchange to comment on naming of scons configuration options.
+      SConscruct file update - make it work with older scons, remove -floop-optimize2 that doesn't exist for older gcc (<4.0).
+      Hunted down the bugwith node enumeration, now should be reliable. Added some checks so that configuration is not done when cleaning, likewise for installable nodes (so we do NOT uninstall upon cleaning). If you use g++-3.3, you need to set e.g. CXX="distcc g++-3.3 -pthread". This will be fixed perhaps in the future but for now the default is to keep it simple.
+      Other fix for sarge (0.96.1) version of scons. It is a variant to be removed. For some features (especially the srcdir keyword), sonner or later we will mandate 0.96.94 to build yade, but that can be a few months in the future, though.
+      Fix node enumeration for newer scons's (isfile() is true only if the file already exists, which is contrary to what I thought).
+      Microchanges: fix rpath quoting, fix ctags indexing non-c++ files (local bug? --language=c++ would make all files (including .o, for example), being indexed.
+      Plugin loader now handles multi-class plugins, provided that they define "char* yadePluginClasses[]" symbol containing list of class names (sentinel=NULL) that the plugin contains. Regular one-class-per-file plugins work normally.
+      Fix build process for older versions of scons that break if there is a target that has no sources. Added a dummy empty file to the loki library to do that, modified project file. Do not forget to delete yade-libs/yade-lib-loki before running scons again to regenerate SConscript files.
+      1. Include IsotropicCompressionTest in dem's preprocessors project so that it gets compiled     2. Improve erskine to indent SConscripts in a nice way
+      1. Fixed Omega::scanPlugins so that it loads plugins that were linked without -rpath for their dependencies. Everything is in #ifdef STUPID_DLL     2. Removed again IsotropicCompressionTest since needed headers are missing. Bruno, please add them back (they were removed in the 1045 commit.) and then enable IsotropicCompressionTest in yade-packages/yade-package-dem/src/PreProcessor/PreProcessor.pro again.
+      Default preferences.xml doesn't neglect the last plugin dir (off-by-one error)
+      Simulation may be (which is the default) loaded after generation automatically now.
+      Prepare framework for "high-level clumps". Everything is withing #ifdef HIGHLEVEL_CLUMPS, hence shouldn't change anything unless compiled with that option (don't try at the moment, it doesn't work). More information at http://beta.arcig.cz/~eudoxos/phd/index.cgi/YaDe/HighLevelClumps .
+      1. provide Doxyfile, running "cd yade-doc; doxygen" will produce html reference documentation     2. initial (non-functional) implementation of high-level clumps, along with some cleanup of the changes done elsewhere     3. erskine now can be given scons variables (namely, $PREFIX) that will be unexpanded in generated SConscript's     4. SConscruct #defines HIGHLEVEL_CLUMPS, since other people probably don't use scons (yet)     5. New method Body::byId, new typedef Body::id_t, new constant Body::ID_NONE (jailed in HIGHLEVEL_CLUMPS for now, that will be removed sooner or later)
+      1. Clump code completed, but totally untested so far.     2. Added target 'doc' to Makefile that runs doxygen     3. New tracing macro TRWM3QUAT for quaternions
+      1. Clump::subBodies are now a std::map<Body::id_t,Se3r>, subSe3s removed.     2. Sample clump generator ClumpTestGen written; works, but yade crashes because of dispatchers being setup incorrectly.     3. Omega::setRootBody added so that rootBody can be temporarily set during filegeneration, which is necessary for Body::byId.
+      1. Fixes in the clump code     2. InteractionGeometryMetaEngine doesn't crash if a body doesn't have interactingGeometry (like Clump)     3. Fixes in the collider, related to the clump code     4. ClumpSubBodyMover is now a DeuxExMachina     5. discovered bug in Wm3::Matrix3::EigenDecomposition     6. ClumpTestGen generates a usable testcase (either a random one, or with one-sphere clump and an equivalent sphere) for testing purposes. Parameters etc. are physically wrong, but at least there are no crashes.     7. ClumpTestGen temporarily sets rootBody in Omega so that Body::byId is usable
+      1. Clump code is not (hopefully) correct physically - translational, rotational and potential energies give constant sum over time (more or less)     2. ClumpTestGen generates a useful scenario of standalone sphere, {1,2,3,4}-sphere clump.     3. Inertia calculation fallback for cases with NaNs from EigenDecomposition.     4. acceleration and angularAcceleration reset after every position update for clump.     5. Body::{isClump,isClumpMember,isStandalone} added.     6. Gravity engine skips clump members (applied to the whole clump only).
+      1. Clump code cleanup     2. Python may now be embedded in yade: (i) SConscruct checks for it and #defines EMBED_PYTHON if present. (ii) main sets up the interpreter. One disadvantage is that Python runs in its own thread, so pressing ^C during simulation doesn't quit yade (^\ still works).     3. New class PythonRecorder that evaluates arbitrary expression when activated.     4. Pyade interface that makes it possible to retrieve some values from yade in Python. For example, you can now record body #5 z-velocity and z-angularVelocity every 10 iterations by setting PythonRecorder::expression="if (S.i%10==0): print B[5].v[2],B[5].w[2]". Retrievable attributes are documented in the source (or the Doxygen documentation).
+      1. selection in the renderer are now saved in Omega::selectedBodies (GUI to that list is in the future yet)     2. PythonRecorder now supports retrieving selected bodies; it redirects stdout to file if specified.     3. pyade now required scientific python to be installed - this permits to do vector and quaternion arithmetics in python. General cleanup.     4. pyadeDummy.py module added - for testing pyade without yade
+      Microchange to catch exception from distutils in python detection.
+      1. Scons changes, node enumeration gotten rid of, now uses proper Install in SConscript's. Should eliminate scons version problems we've had.     2. Some new make targets: for repetitive compilation (with -j2) and first personalizaed target: eudoxos.     3. Selecting clump member in GLViewer now selects the whole clump; it is moved and redrawn as well (only with HIGHLEVEL_CLUMPS).     4. An attempts at escaping special characters beforce XML serialization (\",\n,\t,\\), doesn't work - commented out.     5. Project files cleaned from nonexistent include directories.
+      1. OK, the floats floating around for colors drove me nuts, so I replace all of that garbage by doubles. Since for one particular case (glMaterialv) the corresponding function taking double (glMaterialdv) is not defined in mesa (and perhaps not in most other gl libs), for that one the argument was converted explicitly.     2. New Shop class, that defines static methods for easy things, along with a dictionary of default parameters for some useful stuff: like getting a rootbody with reasonable set of actors, sphere body, box body. That's all for the moment. Add your own stuff. Filegenerators may shrink considerably this way.     3. Clump::subBodies renamed to Clump::members, Clump::moveSubBodies to Clump::moveMembers, ClumpSubBodyMover to ClumpMemberMover - to be consistent with Body::isClumpMember. Clump still not moved to DEM, that will wait till later - at the moment, QGLViewer depends on Clump (for moving clump when selected and moved with mouse).
+      Many extensive changes:
+      1. renamed Chagelog to ChangeLog, will be generated autmatically from svn chamgelog     2. removed waf script (wscript), not used     3. scons now installs everything with '-version-postfix' appended, like yade-svn1072-debug     4. scons builds different variants (version and postfix) in separate directories
+      1. Clump member velocities are calculated in ClumpMemberMover. This may create problems since velocity will always be lagged by one iteration.     2. removed cyclic dependency of Clump and Shop.
+      1. Debugging mode now #defines YADE_DEBUG in addition to DEBUG, which seems to be #undef'ed by some header. Lazy to trace down.     2. Removed #ifdef DEBUG messages from dynlib &co (now under #if 0); use LOG_TRACE if you need those messages     3. Signal handler now handles SIGSEGV (segmentation fault) and SIGABRT (failed assertions, among other) in debugging mode: gdb is run, attached to the current process and backtrace of all threads is printed.
+      Python fixes:     1. load pyade.py from path given by PREFIX and POSTFIX (we really need to define that somewhere in a unified manner: not by using BOOST_PP_STRINGIZE everywhere! - config.hpp...?)     2. velocity and angularVelocity are vectors now (returned only the x component by mistake)
+      Attempt to access interactions from Python, commeted out for the moment. May disappear later. Not used anywhere. Do not use.
+      1. Cleanup of clump includes     2. Scons now puts buildDir include directory first so that it shadows eventually installed versions     3. jobs=x added to scons, like -j3, but is saved accross runs     4. Archive modifications (shuffling includes around) so that compiling with recent g++ (4.1) works - was preprocessor problem.
+      Fixed error in yesterday's commit, should compile really fine with g++4.1 now.
+      SCons cleanup. Now supports buildPrefix (defaults to '..') so that build is completely separate from sources.
+      commit before mass-replacing Dymanic_cast. This will not compile, used only as wayback for me. New commit shortly.
+      dynamic_cast replaced by YADE_CAST where appropriate: i.e. the result of the cast is not checked to verify whether the conversion was successful as condition for further flow branching. The consequence is that you have to #define YADE_CAST in CXXFLAGS by hand as either dynamic_cast (original version) or static_cast (for optimized builds) when using make.
+      dynamic_pointer_cast replaced by YADE_PTR_CAST as appropriate. It must be defined on compiler command-line (-DYADE_PTR_CAST=dynamic_pointer_cast or -DYADE_PTR_CAST=static_pointer_cast). Scons builds get this automatically.
+      Doxygen settings from yade-flat imported. New file tracking removed elements.
+      Merged the scons-layout branch to trunk.
+      1. PythonRecorder runs optimized byte-compiled expression, optionally translated to machine-code by psyco     2. Serialization lib now properly escapes and unescapes XML-unfriendly charcters (\n,\t,<,>,",\\)->(\\n,\\t,\[,\],\',\\\\)
+      1. Remove cyclic plugin loading forever (undefined STUPID_DLL)     2. Tetrahedron has vector<Vector3r> v instead of Vector3r v1,v2,v3,v4; (fem will probably not compile because of this for now - will be fixed)     3. Added experimental tetra class & friends.
+      ough... put actual data in. Next commit will rename files as they should be (stupid svn...).
+      Renamed files.
+      1. gdbCrashBatch moved to Omega (was emptry when a different thread thatn the main one crashed?!)     2. Shop generates tetrahedra properly now, including dispatchers     3. Tetrahedra rendering and linking fixed     4. Added an icon to the main window (not serious ;-) )     5. commented out STUPID_DLL overflowing loader     6. log4cxx has level set to INFO by default (was DEBUG, lot of garbage on screen)
+      1. Some type fixes (signed vs. unsigned). The Body ID mess needs to be cleaned up!!!     2. More tetrahedron stuff; will not compile for now, though.     3. Icon update ;-)
+      1. remove vector<Vector3r> from tetrahedra code, replace simply by Vector3r[4]     2. implement 4h-4h intersection peroperly, without relying on wm3. Compiles, not tested for correctness at all.
+      Make compilation proper when python is not found (no errors, just disable what should be disabled).
+      #define MINIWM3 when using miniWm3     don't exclude lattice with miniWm3 (lattice needs to be modified to not use undefined functions from full Wm3 in this case (Delaunay!)
+      Adjust QTDIR to gentoo, too     Configure-time decision whether to link against QGLViewer or 3dviewer.
+      use -mt variants of boost byt preference if both exist     useMiniWm3 by default
+      1. Fix fedora/centos etc compilation (<includehint> in the .ui file mentioning nonexistent file)     2. Other scons cleanup
+      1. Fix soname on shared libs (no soname at all; bug with "" in the name previously). Is it good for something?     2. Add 'features' option to scons, which can enable/disable python and log4cxx at compile-time (extensible)
+      1. Correct 'all' value for features     2. Add a few signed/unsigned typecasts     3. Check clump code
+      1. Fix uninitialized se3 in one-member clump handling     2. Fix syntax error in SConstruct introduced in previous commit.
+      If RELEASE file exists, get yade version from there, instead of from svn.
+      Remove wildmagic-dev from debian deps.
+      fixed qt3 detection (used deprecated qapp.h header instead of qapplication.h).
+      Adjust debian package generation back to svn.
+      frontend cleanups, eperimental python console ui.
+      Convenience functions for serialization - experimental.
+      fix qualifiers in constructor of AttrAccess
+      1. rename ThreadWorker::message() to ThreadWorker::getStatus, ThreadWorker::setMessage() to ThreadWorker::setStatus (and private ThreadWorker::m_message to m_status)     2. add public: std::string FileGenerator::message that holds exit value description     3. FileGenerator::generate returns now bool (if the generation was successful); description in ::message     4. Adapted all generators and UIs for the above changes (except NullGUI - is that needed?)
+      Adjust other components for FileGenerator changes. Add wrapper for preprocessor in python.
+      1. SCons will download new version of itself if older thatn 0.96.93 and will proxy all calls to it transparently (hopefully)     2. Revamped python wrappers, now all attributes are settable as dicionary entries in respective instances from python     3. added example of python script that generates and runs BoxStack     4. Do not #define DEBUG, since it is used in log4cxx (as log4cxx::Levels::DEBUG). YADE_DEBUG is used everywhere. If you ever get weird errors about that, #undef DEBUG after including qt3 headers.     5. Some code cleanups.
+      Fix argv[0] for scons proxy.
+      Don't warn on amd64 about limited type range in comparison.
+      Initial .spec file for fedora 6
+      spec file works on fedora 6 now
+      1. Add screw example (this is really my personal one...)     2. Fix Shop::tetra (tetra interacting geometry still incorrect or incorrectly drawn... why???)     3. Remove python finalization, boost should take care of that.     4. Possibly fix plugin loader bug (first plugin after one with yadePluginClasses "inherits" them unless it has its own yadePluginClasses defined).
+      Sync SConstruct with sid packages (lib for qglviewer is not in capitals there)
+      1. Tetrahedron fixes (intersections are correct now, but interaction still wrong - crashes??!)     2. Fix scons to work with versions > .97 (no syntax errors; didn't try if it compiles
+      1. Scons now updates itself to 0.97.0d20070918 (for testing purposes etc)     2. fix crash in ElasticContactLaw and ElasticCohesiveLaw if interaction is not SpheresContactGeometry and ElasticContactInteraction; this fixes tetrahedra interaction.     3. other tetrahedron fixes (still not fully functional yet)     4. mark attributes in class factory as __attribute__((unused)) to avoid warnings
+      1. Correct typo in comment in SConstruct     2. Correct formulas for 4hedron inertia, testcase passes     3. Switch to fixed timestep when timestep is being changed by user in the qt3 ui
+      1. Change default timestep to 1e-8, should prevent weidness onthe first run.     2. Fix cmdGui to handle gracefully reading/assigning nonexistent attributes (not crash, but caught exception)     3. Fix char* / const char * warnings from g++-4.2 in main() and OpenGLRenderingEngine.     4. Cleanup of triaxial test, added parameter noLateralConfinement (not yet used).
+      1. Default scons to latest snapshot (should be a bit faster)     2. Don't autocreate plugin path entries for paths that are not installed     3. Turn TriaxialStressEngine into state machine, while preserving the possibility of changing some values by hand in .xml. (should be tested).     4. Exclude Loki:: from doxygen docs.
+      1. Remove relicts of old Omega::logMessage &c     2. Remove duplicated Wm3 headers in core (is already in lib-yade-base)     3. Update python scripting (object.attribute is shorthand for object['attribute'] now)     4. Cleanups in triaxial, adding STATE_UNINITIALIZED
+      1. BIG update of python wrappers - enagines can be created, added, modified from python now. Examples will be provided very soon.     2. fix plugin loader for multi-plugins: YADE_PLUGIN() macro should be used in all plugins, otherwise due to linking symbol overrides a multi-plugin will shadow classes in the plugin actually being loaded (better solution?!)     3. Add experimental BREakable Frictional COhesive Moment-blocking material (brefcom for short), not yet fully done.     4. PersistentSAPCollider now can be parametrized to permit distant contacts (is not the default, though), incorporating Bruno's changes in DistantPersistentSAPCollider     5. Uniaxial strain-controlled test (USCT), a quite simple implementation. Used primarily for brefcom testing now.     6. Fix SConstruct so that it is backward-compatible with python2.4
+      1. Remove MetaEngine, inherit MetaDispatchingEngine directly     2. Fix unbalanced force reporting (thanks for complaining, Bruno)     3. EngineUnits now declare their types with FUNCTOR1D(.) or FUNCTOR2D(.,.) macros, dispatchers will ask for their types automagically. Old syntax still supported, once all engines have those types declared, it will be obsoleted and removed (like e->add("InteractingSphere","InteractingSphere","InteractingSphere2InteractingSphere4SpheresContactGeometry"); Shop and USCTGen usethe new syntax now.     4. Brefcom law passes some rudimentary tests and appears to work (normal force and damage for now; we miss shear force and blocked rotations)     5. Brefcom contact can be drawn with opengl, damage signified by color.     6. Updated Python wrapper.
+      1. Remove the old prototype for adding EngineUnits to dispatchers add(string,string,string)     2. All EngineUnits now have FUNCTOR1D(...) or FUNCTOR2D(...,...) in their headers.
+      1. Preliminary recovery of simulation accross runs (try sending SIGHUP to yade)     2. Python wrapper for body parameters.     3. Misc fixes of engines.     4. Allow Omega to stop at predefined iteration number (for regression tests, I work on that ;-) )     5. ...
+      Fix lefover of experimental code in TriaxialCompressionEngine (creating sohesive links after compaction.
+      Updated brefcom, with undisclosable parts moved outside the tree.
+      Fix typo breaking compilation on different machines than mine.
+      1. Remove "../data", replace by "./" (cwd) or "".     2. Some other stuff I don't remember.
+      1. HUGE update of python, it wraps almost all yade classes now (except PhysicalActionContainer and InteractionContainer). Documentation is lacking as well.     2. Move most of init stuff of python from cmdGui::run to cmdGuiInit.py (which I forgot to "svn add", will commit shortly)     3. Run ipython shell (or python shell with history and tab completion as fallback) inside yade
+      Adding init code as advertised in last commit.
+      Passing exclude='qt3' to scons will disable qt3 checks and everything related to qt3. Note that the default GUI is still QtGUI unless you change that in your config file or at command line with -N.
+      Avoid using boost1.34 python/stl_iterator.hpp, should compile with 1.33 now (debian etch, ubuntu feisty)
+      Fixes and addendum for openSuse based on comments by Sega
+      1. Test suite for all preprocessors     2. Added assumeElasticSpheres attribute to GlobalStiffnessCounter; if set to false, dynamic_casts are used to properly determine type of contact between spheres (used in USCTGen now)     3. Debugger now dumps backtrace without interruption and exits immediately (core is still dumped)
+      1. cmdGui now exports yade binary name (to allow spawning subprocesses)     2. default-test.py handles crashing simulations gracefully (by executing them in a subprocess)     3. Omega retains original argc and argv from the command line.
+      1. Remove NaN's in PersistentSAPCollider for bodies that don't have bounding box: use zero-size degenerate box at its position instead. (fixes warning when running ClumpTestGen)     2. Remove check for scientific python from scons as we don't use it now.
+      1. BIG: Moved latest upstream qglviewer to our tree. If you REALLY need to use the packaged version, let me know. As of now, there is no way to do that.     2. BIG: Removed many (unfunctional) parts of the qt3 GUI, in the view of qt4 migration which will probably not happen. Maybe I removed too much (simulation player -- does it work?!), let me know in that case.     3. Experimental GLViewer support in python, disabled. (broken and needs qt4)     4. Misc fixes related to that and other small stuff.
+      Previous commit didn't compile on clean environment, fixed now.
+      HOTFIX: final fix for the libqglviewer linking issue.... I hate qt3, I hate uic, I hate moc.     It works now, please test on you machines and let me know if there are any regressions.
+      Forgotten files, build crashed on foreign machine. Fixed now. (This stuff is not tested, do not use!)
+      OK, now QGLViewer REALLY builds. Was bug in scons: file.ext1.ext2 is not handled properly with the qt3 tool. Created symlinks replacing first dot with _.
+      Add tags, doc and clean "targets" to scons do their job, short-circuit the rest of building process and exit. Clean only removes builddir, _not_ installed files as -c would do. (LP: #202067)
+      1. Resurredced and un-crapped simulation player (for making videos). Updated howto is http://yade.wikia.com/wiki/New:Making_videos#Using_Simulation_Player_with_svn.3E1281
+      1. Include fracture strain calibration routines in brefcom.     2. Add BrecomDamageColorizer - changes colora ccording to average cohesive interactions the body has.     3. Delete non-cohesive interactions from inside BrefcomLaw when spheres become distant.     4. Documentation updates.
+      1. MAJOR improvements of the python wrappers (constructors take attributes etc.)     2. FIRST proof-of-implementation simulation completely created in python: scripts/simple-scene.py. This file will be commented abundantly shortly.     3. Add default values to some bool params so that there is no serializer error if they are uninitialized.     4. Add aabbEnlargeFactor to InteractingSphere2AABB (should be added to InteractingBox2AABB as well?) (not tested yet)     5. rename InteractionDetectionFactor to interactinDetectionFactor     6. Serialization now registers only attributes that have not yet been registered (there were problems with python because of that: at first save, attributes were duplicated and the xml file was less readble, although loadable)     7. Scan .tpp and .ipp for c++ tags as well     8. Some documentation.
+      1. New engine attracting bodies towards a fixed axis (constant force, points towards the axis everywhere)     2. some fixes in python wrapper (run initializers if needed; the logic in yade itself is currently broken however)     3. New python "example" for creating cylindrical packing of spheres
+      1. allow saving spheres (format like small.sdec.xyz) from python     2. PositionOrientationRecorder can optionally record RGB color of each body as well now     3. SimulationPlayer now can change colors of bodies, if the .rgb file exists     4. Bunch of fixes if brefcom, in UniaxialStrainControlledTest     5. dt moved from Omega to MetaBody for good; this allows preprocessor to set timestep that will be used when the simulation is loaded.     6. Code cleanups here and there.
+      Update debian control to possibly fix deb package builds
+      Fix header scanner if there are extra headers in the tree.
+      1. PROTOTYPE CHANGE: Engine::action(Body*) changed to Engine::action(MetaBody*); all engines adapted     2. MetaBody::miscParams can be used to set static variables at deserialization (used for GLDrawBrefcomContact now)     3. allow serialization of shared_ptr<Serializable> (only pointers to derived classes were enabled until now)     4. big fixes inside brefcom     5. enhancements of python interface (Generic class, fixes)     6. added Shop::GLDrawLine, Shop::GLDrawArrow, Shop::GLDrawNum     7. fixed QGLViewer #defining DEBUG (qt3) by #undef'ing it after qt3 headers inclusion
+      1. Add many checks to see where XML and BIN serializers take each other's work (non-intrusive).     2. reorganization of cmdGui (will be renamed - perhaps - to pyUi or similar)     3. BINFormatManager is now optional and _disabled by default_. feature 'binfmt' must be enabled to build the plugin.     4. Added utils classes in python, examples are much simplified now.
+      Fix python2.4 compatibility
+      fix of the previous fix.
+      1. Commit before other changes.
+      Renamed cmdGui to PythonUI. Tests seem to be working now.
+      1. Define macro NEEDS_BEX() that engines can use to advertise what physical actions they need. This avoids the necessity of passing that to PhysicalActionContainerInitializer. The change is backwards-compatible, all present engines were adapted however.     2. Fix BrefcomTestGen and USCTGen: don't crash anymore.     3. Small fixes in python code.
+      Svn wants to commit before moving files... :-|
+      Refactored MetaDispatchingEngine to MetaEngine (everywhere)
+      Support saving to .xml, .xml.gz and .xml.bz2. Loading works as well.
+      1. Added heavy comments to simple-scene.py, started functionally equal code in extra/SimpleScene.{c,h}pp     2. Added dependency on boost::iostreams to debian template (for gzip/bzip2 streams).
+      Hotfix for file loading logic.
+      1. Ignore ^C in PythonUI (gives crashes)     2. Shop::Bex caches physical action indices in static variables (not yet benchmarked)     3. Check for boost/foreach.hpp in scons and suggest how to install it.     4. Fixes in Brefcom     5. Set initial qglview size to 550x550
+      Big scons updates:
+      Fix compilation problems and some warnings in the previous commit.
+      1. BOOST_FOREACH now works with InteractionContainer and BodyContainer and is #defined as foreach.
+      1. GUI change in qt3: make the simulation controller to take _much_ less space (no LCD displays, notably) and allow more place for 3d views. If someone is not happy with that, gui/qt3 can be reverted.     2. UniaxialStrainController now measures and records transversal strain.     3. Add attempt at smart command-line completion for ipython console.     4. Improved the class index cache in Shop::Bex (benchmarks needed)
+      1. Added MetaBody* as optional argument to Body::byId, to avoid Omega::instance().getRootBody() lookups - took a few percent of time in valgrind-profiled run.     2. Completed SimpleScene, a script to generate commented source py2wiki.py and put results on http://yade.wikia.com/wiki/SimpleSceneTutorial     3. Swap argument order in utils.sphere and utils.box to match Shop::sphere and Shop::box (center first, then radius/extents and not vice versa as it used to be)
+      Make the GUI loader/saver a bit less intelligent. .yade, .xml, .xml.gz, .xml.bz2 are accepted when both loading and saving (hopefully).
+      1. Fix tabs in SConstruct.
+      1. Rudimentary plotting support through python; see http://yade.wikia.com/wiki/PythonPlotting and scripts/simple-scene-graph.py for details     2. Updates in examples/cmdGui1.py
+      1. QtGUI now integrated PythonUI if available. This means simulation can be controlled both from the QtGUi and the console. The     + standalone PythonUI is available as well.     2. Changed form workspace to MDI windows; main window is menu-only thing that hides when simulation is open.     3. other minor changes.
+      1. Replace foreach with FOREACH, based on discussion with Janek.     2. Fix FileGenerateor message crash without workspace.     3. Fix TimeStepper choosable at the same time as fixed timestep. There is some problem with switching back to timestepper, use Omega().usesTimeStepper=True/False from python for now, please.
+      1. Merging containers and iterators and iteratorpointers to one .hpp. (Proxy headers created, no existign code affected)     2. Moving default containers for interactions, bodies and physicalAction to core; therefore, omega is constructed with out-of-the-box usable Metabody. (no code affected, though some initializations are now redundant)     3. Dropped workspace mode of QtGUI, since for some weeks no-one complained.     4. Big simplification of QtGUI (no dynamic menus and the like), to allow Views to be opened from python, independently of the simulation controller and so on.     5. Initial wrapper for gui stuff in python, in module yade.qt (View(),Controller(),center())     6. Exiting the python interpreted (^D, quit()) will close yade main window as well.     7. Moved python wrapper helpers to gui/py/pyAttrUtils.hpp to be usable from elsewhere.
+      Fix: move files properly (with svn)
+      Forgotten add.
+      MetaBody still needs InteractingGeometry, BoundingVolume and PhysicalParameters initialized. But that would mean moving more classes to core, which is questionable. For now, fix that in Python and still rely on user init in other code (as before, but less).
+      1. Fix passing .py to PythonUI (local vars shadowing global ones); fixes default-test.py as well.     2. Fallback to PythonUI automatically if $DISPLAY is not defined in shell     3. Ignore closing YadeQtMainWindow if it doesnt exist instead of throwing exception
+      1. Arguments can be passed to scripts, propagated as yade.runtime.args     2. default-test more robust, with e-mail report
+      Update testing script for automated tests
+      Micro fix in python script.
+      Cleanups for ubuntu package builds.
+      1. Other fixes related to deb packages (jobs=1 because of fakeroot :-( )     2. transversal strain sensors max speed can only be positive in USCT
+      Fix for crashing from python-constructed rootbody. Hopfully other things are not broken.
+      Fix player crashes (dialogs should have no parents)
+      Fix setting timeStepper / fixed timestep from the qt3 ui
+      Build qt3 with python disabled cleanly.
+      1. Add std::string Engine::label, which user can set to identify an engine by arbitrary label     2. Fix warnings in SpatialQuickSortCollider     3. Set isDynamic in rootBody by default     4. Remove PlotDataGetter, superseded by PeriodicPythonRunner     5. New abstract class for running things in predefined periods PeriodicEngine
+      Forgotten file.
+      1. Fix sync mode in qt3 ui.     2. Fix real time display in qt3 ui.     3. Fix resizing of controller in qt3 ui (childs expand now)     4. Remove deprecated PythonRecorder (superseded by PeriodicPythonRunner)     5. Initialize Omega timers also at construction-time rather than simulation-loading only as it used to be.     6. Don't print bogus values of iters/sec in controller at startup.
+      1. Fix the priodic engine.     2. Add layout to the main windows with 4 buttons.     3. Fix PeriodicPythonRunner plugin installation     4. Update simple-scene-graph.py so that it works after latest plotting changes.
+      1. Add the possibility to save as gnuplot figure to the plotting interface     2. Add PeriodicEngine (fixed period) as opposed to RangePeriodicEngine (variable period)     3. Make BrefcomDamageColorizer subclass of PeriodicEngine instead of doing Omega::instance().getIteration()%interval==0     4. Change some icons in the UI     5. Add 'scale' parameter to loading spheres from file
+      1. Fix segfault in GUI exception trap     2. Handle .xml.gz and .xml.bz2 (in addition to .xml) as command-line argument in QtGUI
+      Small fixes here and there. Merged from https://code.launchpad.net/~yade-team/yade/t2. All changes here:
+      1. Add list<string> MetaBody::tags, which hold metadata in the key=value format; this is to workaround current serialization that errors out on map<string,string> in findType.     2. Add meanStress and vlumetricStrain to Triaxial for python access     3. add neverDamage flag to Brefcom which forces elastic behavior regardless off strain magnitude.     4. Fix some warnings in STLImporter regarding signedness     5. add __attribute__((unused)) to a variable in Wm3Matrix3 that was not used during optimized builds - to avoid warning.
+      1. Fix tagging, do it as list<string>; must NOT contain spaces!     2. Adapt python to that (replaces spaces automatically and so on)
+      Forgotten variable after move
+      Fixes for g++-4.3 compatibility (still some warnings, may need -fpermissive to compile)
+      1. Small fixes here and there     2. In brefcom, make the parameter set richer     3. PythonUI now may be run in non-interactive mode (batch processing)     4. new function Omega().interactions.nth(n) for getting random interaction
+      Microfix: unitialized diffuseColor in boundingVolume
+      1. Remove failing and unused screw generator.     2. Add rate-dependence variables to brefcom     3. Add raw attribute access from python, like this:     	gm=GeometricalModel("Facet")     	gm.setRaw('vertices',"[{1 2 3} {4 5 6} {7 8 9}]")     to provide access to attributes the current wrapper doesn't wrap properly (i.e. anything beyond numbers, bools, strings and flat arrays of numbers: e.g. vector<Vector3r>, as in Facet). The format of the raw string is that of XMLFormatManager.
+      1. Triaxial now calculates thickness of the walls automatically (from the extents of the first wall)     2. Add flags to scons, for the gold linker (doesn't link plugins, oh well)     3. Many fixes in brefcom     4. flag needsInitializers moved into MetaBody and it is checked at every iteration; assigning initializers from python sets this flag. It is set to true in MetaBody constructor.     5. Added wrapper for postProcessAttributes in python, for Facets. Serializable::postProcessAttributes was made public due to that (don't kill me).     6. A few things added to yade.utils     7. SimulationController now correctly handles decreasing timestep mantissa from 1 (goes to 9 and exponent is decreased by 1) and increasing it from 9.
+      1. Parallel engine that runs engines in parallel; python wrapper for that     2. Added simple-scene-parallel.py for an example (sppedup of 16% over simple-scene.py)     3. Added openmp flags to scons (enabled by default)     4. Simultaneous builds of multiple profiles: scons profile=default,opt will run all the machinery     5. Refactored grid-drawing code; press 'x','y','z' to have grids with that normal     6. Ported some things from GLViewer to GLSimulationPlayerViewer (grid and mouse events)
+      1. Fix the simple-scene-parallel.py (interactionGeometry and interactionPhysics may _not_ be run in parallel)     2. Fix the #pragma clause in ParallelEngine (it did not run in parallel before, but still there were performance gains ?!)     3. When saving simulation, set the filename so that it can be reloaded from the GUI
+      1. PositionOrientationRecorder save to bzip2'ed files now; player is able to read both compressed and uncompressed files for backward compatibility.     2. Unsucessful try to use glut for drawing spheres; left as an option that is disabled by default, however.     3. Fixes in brefcom     4. Simulation player now has progress window and supports strides when loading files.     5. Fix wrong timestamp format in saveGnuplot in gui/py/plot.py (%m instead of %M)
+      1. Implemented clipping planes in the GL viewer and GL renderer     2. Moving body is now consistent with mouse bindings for moving scene
+      Remove duplicated code in GLSimulationPlayerViewer, subclass from GLViewer.
+      Median centering routine (for cases where one body went nuts and centerScene will make the whole a small point) - activated with Alt-C (both controller and viewer)
+      1. Added displacement and rotation scaling to the OpenGLRenderingEngine (accessible from the renderer config). Documentation missing as of now. Displacements from reference point will be scaled in the rendering. At this moment, only geometrical model and a few other elements of the GL display are scaled.
+      1. Double-click aligns clipping planes if manipulated, x,y,z aligns normal with axis.     2. Default number of clipping planes is 3 instead of 2 now.     2. Fix compilation error in ResetPositionEngine (missing logger)
+      1. sqlite3-dev is now required for yade (checked by scons)     2. sqlite3x c++ sqlite3 wrapper is in our tree (5 files, about 60kb of code), built by scons     3. Check for boost::regex     4. Experimental SQLiteRecorder (the player side is not yet supported at all!)     5. Remove messages at startup about singletons (define YADE_DEBUG env var to get them again)     6. StretchPeriodicEngine that will eventually replace the overdesigned RangePeriodicEngine
+      Fix logger error at startup.
+      1. Remove some warnings about persistentInteractions initialization (initialization is done in MetaBody constructor anyway, it can not break anything);     2. Remove long obsolete pyade     3. Add Omega::getComputationTime     4. Add Omega::saveSimulationToStream and Omega::loadSimulationFromStream     5. Improve the SQLiteRecorder: put simulation into the db, create table with pointers to other tables, declare column types. The recording part is almost done. Implementation in player is to be done.
+      1. Move FiltrEngine from core to common (I know this is arguable, given that DeusExMachina and StandAloneEngine are in core as well. I think, however, that common is a more appropriate place since these engines are not as important...)     2. Completed the recording sqlite part     3. Completed the player part of sqlite (in player)     4. Added libsqlite3-dev to debian build depends     5. PeriodicEngine now is activated when the priod is reached, not afterwards (> vs. >=)
+      Other fixes. Please not in GLSimulationPlayerViewer I had to comment one line that I didn't know how to make compile (dynamic-Cast).
+      1. Set iteration number with sqlite as well
+      1. Views, Player, Controller and Generator can be opened asynchronously from python now.     2. Revamped the player UI, hopefully making it better.     3. Added Alt-S for saving viewer state (camera etc)     4. Added runPlayer to python for aotomatized replay. The file contains instructions for offscreen thereof rendering as well.
+      Re-enable sega's code that doesn't compile here.
+      1. qtCreateVideo creates video from the replay snapshots directly (using gstreamer)     2. qt.{Player,Generator,Controller} now take an optional bool; if true (_not_ default), they will not return until the requested window will have been created and ready.     3. runPlayer return wildcard and list of snapshot files now     4. Adapted simple-scene-player.py to reflect that.
+      Fix linking issue.
+      1. new class DisplayParameters is a string->string "hash map" for holding various configurations.     2. Multiple display parameters (i.e. QGLViewer config and OpenGLRenderingEngine config) are stored in Metabody.     4. stopAtIteration moved to MetaBody so that it is saved and reloaded (MetaBody::recover hack is gone)     5. Remove unnecessary persistentInteraction initializers so that we have less warnings     6. Remove deprecated RangePeriodicEngine, plotting uses StretchPeriodicEngine instead.     7. Add the ability to load from stream and save to stream to IOFormatManager (afterwards, I discovered there were actually_identical_ functions loadArchive and saveArchive; those were deleted since unused elsewhere)     8. GLViewer can now load and save state from/to string     9. in GLViewer, keys 7,8,9 load display config #0,1,2 and Alt-{7,8,9} saves current view to #0,1,2. Those are saved in MetaBody. BUG: after loading such config, the QtGUI-generated OpenGLRenderingEngine config dialog doesn't work anymore (probably some issue with archives, not sure).     9. Hopefully all xml-parser-offensive characters are escaped at string serialization (and unescaped at deserialization). We use standard SGML escapes (newline=&br; tab=&tab; <=&lt; and so on) now. This allows to save XML-as-string in the xml itself (used for DisplayParameters).     10. GLViewer now properly saves what XYZ planes are displayed (using custom DOM element)     11. Some fixes in Brefcom, more to come.
+      1. Fixes in Brefcom     2. Add docstrings to QtGUI-python functions;     3. StretchPeriodicEngine adjusts both limit and period if one of them is nonzero     4. Other fixes in python interface
+      Sync with upstream QGLViewer 2.3.0
+      1. Experimental scale drawing in GLViewer (disabled by default)     2. Fix (?) race conditions (?) in Omega and python     3. Other fixes in plotting, works now again (remove numpy.array, not needed)
+      1. Merge all gravity engines (central, axial, directional (the old one)) into 1 header     2. Cleanups of pkg/common/SConstript     3. Add more brefcom accessors (Fs, Fn, ...)     4. Fix (hopefully) threading issues with python; Omega().pause and other now use Py_BEGIN_ALLOW_THREADS to avoid deadlock of the interpreter if called from c++ interpreting python code
+      1. Add private functions to eudoxos.py     2. Fix a few broken includes
+      Fix #includes in affected files.
+      Forgotten file.
+      Second file that was forgotten :-|
+      1. Omega().interactions.nth returns n-th real interaction     2. Export more brefcom data to python     3. Make LOG_DEBUG and LOG_TRACE no-op in NDEBUG (optimized) builds     4. Change linebreaks from CR+LF to unix LF in a few random diles     5. Make DeusExMachina registerAttributes of Engine     6. Serializer prints offending value if bad_lexical_cast.     7. Attempt to catch exception if reading bool written as int (254 etc) and consider that "true" (doesn't work?)     8. JumpChangeSe3 can set (angular)velocity if requested instead of plain moving
+      1. Move refSe3 and dispSe3 to PhysicalParameters; this should speed up the renderer (clipping is done only once etc) and make it possible to apply clipping (via PhysicalParameters::isDisplayed) in GL functors for interactions as well.     2. Add button for setting reference positionts to the controller     3. Remove warnings in NewtonsDampedLaw
+      1. Cleanups in OpenGLRenderingEngine, use systematically clipping and scaling     2. Merge GL functor abstract class headers in one (GLDrawFunctors.hpp) and fix files using them     3. Make qt-serialization layout a bit more space-conservative.
+      1. Fix default test to report errors during simulation loading as well     2. Fix preprocessors derived from triaxial to not initializa transienInteractions, preventing crash discussed with Bruno: containes for transient and persistent must be the same, for unknown reason.     3. Fix preprocessors using brefcom to define all variables, otherwise we have nan's in XML which crashes the deserializer.
+      Add script for making release
+      Improved the release script.
+      1. Add the ability to block individual DOFs on every body in PhysicalParameters and implement relevant code in both NewtonsDampedLaw and LeapFrog integrators     2. Add that to UniaxialStrainer     3. Put both CundallNonViscous damping classes in one file (cleanup), adapt all files to that
+      1. Make the -x flag to PythonUI stop even if no script is provided.
+      Fix missing lib (error at startup)
+
+==================================================
+yade-0.10.0
+Tue Jul 11 13:17:04 2006 +0000
+
+Janek Kozicki (55):
+      small correction in INSTALL,     renamed ayde-data to yade-examples, and tagged it.
+      added schedule
+      added some more instructions to INSTALL file
+      I am committing new version of docs, checked by my sister. And briefly checked by me. Olivier, now you can work on it, and remember to copy & paste lots of text and explanations from the article!
+      directory for creating packages with yade.
+      directory for Czesiu to work on debian packages for yade. later we can add directories for .rpm or gentoo, etc....
+      Fixed some broken symlinks. Removed unnecessary int i from MetaBody loops
+      added missing -lglut
+      yade is compiling with boost 1.33, but I had to make some modifications in ErrorTolerantLaw <- it is compiling, but I'm sure that it Jacobian is WRONG !! - Oliver it's your code, only you can fix that.
+      some small changes, before I start something bigger
+      ClassFactory is one step closer to windows version
+      I have started changes that will make yade compilable on windows
+      another step closer to compile yade on windows:
+      to compile yade on windows we have to remove symlinks. I started doing that, but it's not finished. I have to commit in the middle
+      still removing symlinks...
+      symlinks removed. but it is NOT compiling now
+      deleted all useless directories
+      modyfing all .pro files and Makefiles so that it will compile
+      maybe it is compiling...
+      so symlinks are now removed, and it is compiling and installing exactly like before.
+      So I have started compiling it on windows, and I stopped on the problem that linker cannot link serialization with factory.
+      General cleaning of all header files. Now they are much more readable,     and more coherent with C++ coding standards.
+      added SDECMovingWall FileGenerator contributed by Andreas Plesch.
+      You have decided to rename class: Box2AABB to a new name: InteractingBox2AABB     You have decided to rename class: Sphere2AABB to a new name: InteractingSphere2AABB
+      D    yade-packages/yade-package-common/src/Engine/EngineUnit/Box2AABB/Box2AABB.pro     D    yade-packages/yade-package-common/src/Engine/EngineUnit/Box2AABB/Box2AABB.cpp     D    yade-packages/yade-package-common/src/Engine/EngineUnit/Box2AABB/Box2AABB.hpp     A    yade-packages/yade-package-common/src/Engine/EngineUnit/Box2AABB/InteractingBox2AABB.pro     A    yade-packages/yade-package-common/src/Engine/EngineUnit/Box2AABB/InteractingBox2AABB.cpp     A    yade-packages/yade-package-common/src/Engine/EngineUnit/Box2AABB/InteractingBox2AABB.hpp     D    yade-packages/yade-package-common/src/Engine/EngineUnit/Sphere2AABB/Sphere2AABB.cpp     D    yade-packages/yade-package-common/src/Engine/EngineUnit/Sphere2AABB/Sphere2AABB.hpp     A    yade-packages/yade-package-common/src/Engine/EngineUnit/Sphere2AABB/InteractingSphere2AABB.pro     A    yade-packages/yade-package-common/src/Engine/EngineUnit/Sphere2AABB/InteractingSphere2AABB.cpp     A    yade-packages/yade-package-common/src/Engine/EngineUnit/Sphere2AABB/InteractingSphere2AABB.hpp     D    yade-packages/yade-package-common/src/Engine/EngineUnit/Sphere2AABB/Sphere2AABB.pro
+      I hope that scripts to rename classess are still working okay :>
+      ErrorTolerantContactModel -> ErrorTolerantContact     AABox2Sphere4ClosestFeatures -> AAInteractingBox2InteractingSphere4ClosestFeatures     Box2Box4ClosestFeatures -> InteractingBox2InteractingBox4ClosestFeatures     Box2Sphere4ClosestFeatures -> InteractingBox2InteractingSphere4ClosestFeatures     Box2Sphere4ErrorTolerant -> InteractingBox2InteractingSphere4ErrorTolerantContact     Box2Sphere4MacroMicroContactGeometry -> InteractingBox2InteractingSphere4SpheresContactGeometry     Sphere2Sphere4ClosestFeatures -> InteractingSphere2InteractingSphere4ClosestFeatures     Sphere2Sphere4ErrorTolerant -> InteractingSphere2InteractingSphere4ErrorTolerantContact     Sphere2Sphere4MacroMicroContactGeometry -> InteractingSphere2InteractingSphere4SpheresContactGeometry
+      continued...
+      this renaming is DONE
+      GLDrawInteractionBox -> GLDrawInteractingBox     GLDrawInteractionGeometryFunctor -> GLDrawInteractingGeometryFunctor     GLDrawInteractionSphere -> GLDrawInteractingSphere     GLDrawInteractionGeometrySet -> GLDrawMetaInteractingGeometry
+      renaming continued..
+      renamig DONE
+      Serialization::registerAttributes() is now protected, as it should be.     renamed MetaBody::actors to engines
+      added:
+      QtEngineEditor is not working - doesn't detect correctly StandAloneEngines
+      - can save simulation from simulation controller     - can change background color of the simulation displayed
+      binary serialization for yade - looks like it is working :)
+      fixed one bug in BINFormatManager     fixed savig ElasticContactParameters and SpheresContactGeometry, so that after loading the simulation is not going crazy     added several try/catch blocks     removed GLAPI and GLAPIENTRY from OpenGLWrapper     XMLSaxParser is now better at counting lines
+      I have just enabled commit-email.pl for SVN. we should get info about commits for yade-dev, I wonder it if works :)
+      not so small bugfixes and imprvements:
+      - fixed serious bug in bool BodyRedirectionVector::erase(unsigned int);     - added function bool exists() const; to BodyContainer     - graphical display now has reversed meaning of scrollwheel, so it is now similar to behaviour of blender and autocad     - SDECLinkedSpheres is working after some (surprise!) quick hack. That part is still waiting for total rewrite.     - big improvements in lattice model. beam bending works (but not always) with axis+angle notation. maybe with quaternions it will be better. There is a problem that shows itself when using regular triangular grid.
+      - added function Quaternion::power(RealType)     - lattice bending works now in 2d (X-Y plane), using angles. not vectors or quaternions. I will do 3d later.
+      - 'cancel' when loading filegenerator is not crashing now     - started non-local model for lattice     - hopefully 2d lattice beams are now okay.
+      middle button in 3d view is now "PAN" command, not "ZOOM" as it used to be.     It's more similar to AutoCAD
+      'yade -h' will now display compilation flags (currently only DOUBLE_PRECISION - how about adding long double ;) ?)
+      small fix so yade works with lates kubuntu:
+      Threadable class has been removed:     - when yade is idle 0% of CPU is consumed by the display,     - when simulation is ran it is in separate thread, second processor (if       present) is drawing on the screen,     - with two processors theoretically QtGUI should have speed equal to NullGUI,     - drawing on the screen is not synchronized, so some bodies are from previous       iteration, some are from next iteration (later there will be an option to       turn synchronization ON - it will slow down computations a bit)
+      Renaming SimulationLoop to SimulationRunner.
+      renaming finished. SimulationLoop -> SimulationRunner
+      deleted yade-lib-threads,     added SimulationRunner, that can start/stop or perform singleLoop of simulation     in separate thread.
+      final touches to SimulationRunner
+      compilation fix
+      yade-flat now allows to debug yade from inside kdevelop
+      SimulationController is now updating iterations/time and sets time step correctly.
+      updated INSTALL file (before release).
+
+Olivier Galizzi (10):
+      Corrected one missing include into yade-package-lattice so that it is compiling
+      Added new yade-spherical-dem-simulator plugin. It is compiling but I have not tested it for now.     This plugin will be used to compare yade performances to a dedicated simulator that can only run simulation on spheres and which is not extensible.
+      Corrected some symlinks (forgot to call symlinks -rcs)
+      Improvement into SphericalDEMSimulator
+      SphericalDEMSimulator is now working. But maybe an error remains because for now it is 10x faster than yade !!
+      Started to add SimulationPlayer plugin to QtGUI
+      Some small optimisation of Math library. Some if statement where remaining after     an assert that were doing the same check.
+      Improvement into SphericalDEMSimulator and QtSimulationPlayer.
+      SimulationPlayer is now working; but there is no check to see is the files     exists or not, so it is up to the user to be carefull (at least for now)
+      Minor changes into NullGUI.
+
+==================================================
+yade-0.09.0
+Sun Aug 21 20:41:37 2005 +0000
+
+Janek Kozicki (34):
+      fixed some broken symlinks
+      removed inifinite loop when loading plugins
+      fixed setDebug and setRelease scripts. Set everything to debug.
+      added yade-flat - it is very useful for debugging, because command:
+      fixed some Makefiles  - changed   make  to   $(MAKE)     corrected invalid usage of postfix increment++
+      changed Makefiles, so that qmake respects INSTALL_DIR and PREFIX_DIR
+      corrected a mistake
+      another correction in Makefiles
+      still fixind Makefiles, should be OK now...
+      So now I think that Makefiles are OK. But I've discovered a mistake in .pro,     when trying to install to totally custom directory (for example /home/joe/work ).     So I'm committing this before fixing that.
+      so by default /usr/local/include is searched for include files. INSTALL_DIR and PREFIX_DIR     modify this path automatically. So that there is no problem to install yade as a normal     non root user, in home directory.
+      all Makefiles are tested and are working. following commmands were tested (launched from trunk/ directory)
+      I started renaming SpheresContactGeometry to MacroMicroContactGeometry,     and also I am testing new fixed renaming scripts!
+      still testing renaming scripts...
+      after this commit I'll know if scripts are correct
+      fixing item no. 35 in yade-core/.todo
+      fixing item no. 35 in yade-core/.todo
+      Finished fixing item no. 35 in yade-core/.todo
+      renaming: SDECTimeStepper ElasticCriterionTimeStepper
+      SDECTimeStepper -> ElasticCriterionTimeStepper
+      finished     SDECTimeStepper -> ElasticCriterionTimeStepper
+      InteractionDescriptionSet2AABB -> MetaInteractingGeometry2AABB
+      ./yade-scripts/renameClassFilenames InteractionDescriptionSet2AABB MetaInteractingGeometry2AABB
+      ./yade-scripts/renameClassDirectories InteractionDescriptionSet2AABB MetaInteractingGeometry2AABB
+      updated Changelog
+      M    trunk/Changelog     D    tags/yade-0.1
+      M    trunk/Changelog
+      preparing for release.
+      is compiling with DOUBLE_PRECISION
+      corrected instructions in INSTALLs text files.
+      ok, I think that this version is ready for release
+      added dependencies diagram
+      started tagging releases. renemed top directory QtGUI to yade-gui-qt. Just like XMLFormatManager
+      tagged all new releases!
+
+Olivier Galizzi (19):
+      Better YadeQtMainWindow. Now menus are displayed in menu bar in the same order     they are added in the program.
+      Added preferences for QtGUI. Now it remembers size and position and exit.
+      Now it is possible to choose time step from GUI.
+      Created directory yade-plugins to store all yade unfisnished plugins     Added iteratortest to test iterator on polymorphic container
+      Improved version of polymorphic iterator
+      Splitted files in iteratortest so there is one class per file
+      I have introduced iterators for all types of containers in order to remove the     dirty gotoFirst, gotoNext, hasNext and notAtEnd methods.     Now it looks like more like stl iterators.     It is compiling but unfortunately it is segfaulting at runtime, probably some     problems in ++,* operators.
+      Yade is now working with iterator. At least all configurations generated by some     FileGenerator are working.
+      Added some improvement into GLEngineEditor. For that I have rewritten a big part of yade-lib-opengl because it was not possible to delete windows without corrupting the id of the others windows.
+      Added Makefile to compile and install all packages at once.
+      Better design : added class related to MetaEngine.     Removed all references to Serialization stuff into yade-lib-multimethod. They are now into newly added classes.
+      Some cleaning in MetaEngine hpp and cpp.     Some improvement into QtEngineEditor
+      Improvements into QtEngineEditor. Now it is olamost possible to create     graphically a simultation loop.Now I have to make something to set parameter of     MetaEngines.
+      Improvement into QtEngineEditor     Moved REGISTER_CLASS_NAME from Serializable to Factorable and started to add     REGSITER_BASE_CLASS_NAME to all Factorable classes. With those two macro we'll     be able to build into Omega for example the class tree and then reuse it     everywhere it is needed. For example it will be usefull to create GUI that want to deal only with this or this type of class.
+      Now all classes register their base class name.
+      Removed unused classes.
+      Fixed some compiletion errors.     Added Makefile to compile the whole trunk at once.
+      Improvement int QtEngineEditor.     Now only correct EngineUnit and base base are displayed thank's to the     REGISTER_BASE_CLASS_NAME macro.
+      Simulation loop editing is now working. There are still some random crashes to     fix and for now it is not possible to load a simulation loop.
+
+==================================================
+yade-0.08.7
+Thu Jul 7 11:14:08 2005 +0000
+
+Janek Kozicki (10):
+      renamed mscv to msvc
+      first version of Makefile for yade-lib-loki
+      Makefiles are better
+      added Makefile for all libs
+      Makefiles uninstall correctly
+      make install works for all yade-libs (weel, actually oinly three of them now)
+      looks like commands:
+      small correction in docs
+      small fix for make clean
+      after name change of libXMLManager we had to correct Makefile
+
+Olivier Galizzi (77):
+      Created yade-libs directoryt to clean a little the directory tree
+      Created directory yade-packages
+      Created directory yade-empties
+      Created yade-empties directory
+      Removed directories yade-lib-rendering-engine-opengl and yade-lib-gui-qt because     they now have no reasons to be there
+      Renaming directory yade to yade-core
+      Modified yade-empty-lib directory structure
+      Added Makefile in yade-empty-lib
+      Added README file into yade-empty-lib/doc/
+      Created yade-lib-qhull
+      Created yade-lib-loki
+      Added symlinks for yade-lib-loki     Created yade-lib-wm3-math
+      Making symlinks relative
+      Created lib yade-lib-threads and yade-lib-time     The lib yade-lib-factory was also created but is not working because it needs the lib-loki to be installed
+      Creaed libs  yade-lib-swiftpp, yade-lib-multimethods.     Corrected yade-lib-time, yade-lib-factory
+      Created libs yade-lib-opengl and yade-lib-algorithms
+      Created libs yade-lib-serialization and yade-lib-computational-geometry
+      Created libs yade-lib-serialization-xml and yade-lib-serialization-qt
+      Corrected #include statements to point to yade/yade-lib-* instead of just     yade-lib*
+      removed old yade-empty-package
+      Added new yade-empty-package which is simpler than previous one
+      Started to add yade/ in all include statements
+      Finished to change #include statements
+      Sub-Project libraries removed from yade-core
+      Yade is now compiling with separate libraries projects
+      Yade is now compiling AND running !! :)
+      Changed yade-empty-package so that all subdirectories contain not plural names.
+      Added empty kdevelop project into yade-empty-lib     Added script changeLibName into yade-empty-lib, which allow the user to change     the name of kdevelop project, this is easier when you wnat to start to develop a     library
+      Added script into yade-empties so that it is easier to start to develop a new package of lib.
+      Added yade-empty-gui     Improved version of scripts that change the name of empties.
+      Started to make yade-core clean (without all plugins)
+      Making yade-core clean.
+      Making yade-core clean
+      yade-core is clean.
+      When asking for default gui, QtGUI is choosen when return is pressed.
+      Created project yade-guis/QtGUI
+      Modified make clean to remove kdevelop temp file
+      Cleaning yade-packages before splitting
+      First version of yade-package-common with containers and DataClasses ok, but for Terrain which is not compiling
+      Moved Terrain to sandbox because it is absolutely not finished yet.
+      Some cleaning in yade-tmp
+      Added PersistentSAPCollider and SAPCollider to yade-package-common Engine
+      Created yade-package-fem and yade-package-dem
+      Intermediate commit because I have put Ellastic*Law into Engine and not Engine/StandAloneEngine
+      Continuing splitting of yade.
+      Removed unused directories
+      Created package yade-package-realtime-rigidbody, yade-package-lattice,     yade-package-mass-spring
+      All data classes are almost splitted
+      Prepocessor are all splitted, so as DataClasses
+      removed useless directories
+      Splitted all InteractionSolver
+      Added forgottent LatticeLaw StandAloneEngine
+      Removed unused directories
+      All MetaEngine are now splitted
+      Removed unused directories
+      Splitted engine unit to yade-common
+      Moved directory previously moved to wrong place
+      Temporary commit because of wrong svn mv
+      Moved directories that were in wrong place
+      All BodyEngineUnit are now splitted
+      Removed unused directories
+      Temp commit because of error
+      Everything is splitted but RenderingEngine and NarrowInteractionGeometryEngineUnit
+      Removed unused directories
+      Everything is now splitted but RenderingEngine
+      Removed unused directories
+      Splitting yade-core finished. Maybe some changes will be needed in the future.     Of course now we have to make compile the new projects !
+      Removed unused directory.
+      Fixed symlinks error into yade-core
+      yade-core and yade-common are compiling
+      Yade-package-dem is compiling
+      yade-package-fem is compiling
+      yade-package-lattice is compiling
+      yade-package-mass-spring is compiling
+      yade-package-rigid-body is compiling     So all packages are now compiling, but I still have to check for build order.
+      Yade is now compiling and running
+      Changed build order of yade-package-common so that it is compiling on the first     try.
+
+==================================================
+yade-0.08.6
+Fri Jul 1 15:36:47 2005 +0000
+
+Olivier Galizzi (14):
+      Added some functions into yade-lib-computational-geometry     Started to and graphical interface for buliding simulation loop and initializer list
+      Added ommitted files QtEngineEditor.*
+      Added unused class MetaEngine, MetaDispatchingEngine2D and MetaDispatchingEngine1D.     I wanted to make something easier for the user but it is not working now.
+      Updates into QtGeneratedCodeGenerator.ui.     Started to implement the GUI
+      Updates in Omega : now foreach plugins we store if it is indexable, factorable     or serializable.     Improved code generation : Data class, engine and dispatching engine works. No     stuff is done for generation of kdevelop projects.
+      All libs use now $(YADEDYNLIBPATH)/yade-libs directory as output path. Some changes had to be made in most of the .pro files.     Added a preference editor in QTGUI
+      Attempt to use Yade without environnement variable. I am closer to the solution but it is still not working.
+      Small change so that yade is compiling with qglviewer 2.0
+      No there is no need to set up and environnement variable to run yade.     Of course because the libs are still into a local dir your LD_LIBRARY_PATH     should point to this local folder.
+      Yade is now working and compiling.
+      Started to move yade-lib-gui-qt back to plugins
+      yade-lib-gui-qt moved back to plugins
+      Yade is now compiling fine.     I removed qyade and nyade since they are not needed anymore.
+      Added user manual without pictures. But .tex is compiling well.
+
+==================================================
+yade-0.08.5
+Sun Jun 19 23:01:35 2005 +0000
+
+Janek Kozicki (5):
+      it's compiling now with gcc 3.3
+      added warining in Omega.cpp when trying to scan non existing directory for dynlibs
+      added missing 'virtual' to destructors of some classess - I had random compiler/startup errors because of that.
+      openGL problem fixed - yade must link with -lglut, and display works.
+      Lattice works with rods, but dirty, of course - as always when something is implemented for the first time :>
+
+Olivier Galizzi (6):
+      All EngineUnit now link with their corresponding MetaEngine otherwise findType doesn't work ! Why ... I don't know ! :)     Because EngineUnit only use the abstract class contained inside corresponding MetaEngine dynlib and nothing else ...
+      To make yade deserialization working I had to modify PointerHandler.tpp around line 90.     Basically I just remplaced a dynamic_cast by a reinterpret_cast. We have to find why dynamic_cast is not working anymore !
+      Added some dynlibs for handling swept sphere volume.
+      Tetrahedron are almost working. A bug into SWIFT is still causing troubles.
+      Some changes into SweptSphere and Tetrahedron
+      Putting some stupid name for 2 enum in Typelist.hpp (l 518 and 520) so that yade     is compiling with gcc 4. Gcc 4 do not accept anymore anonymous enum type !
+
+==================================================
+yade-0.08.4
+Mon May 23 12:51:50 2005 +0000
+
+Janek Kozicki (1):
+      added -lpthread in some places, so it is compiling with g++ 3.3
+
+Olivier Galizzi (17):
+      Removing MarchingCube GeometricalModel (because it is not a GeometricalModel !)
+      Renaming PhysicalActionEngineUnit to PhysicalActionDamperUnit and PhysicalActionApplierUnit     Added class Preferences that contain directory to dynlibs.     Modification of library yade-lib-factory so that it is using multiple directories to look for requested dynlib
+      Removing remaining directory toolboxes
+      Started to split include files of libraries into different directories.     Started to change all #include "lib" to #include <yade-lib*/lib>
+      Corrected some wrong #include stuff
+      All include files from plugins/pre and post processor are now into     include/yade-common. This is not final destination but it is closer to want we     want. All #include stuff are modified according to this new structure.
+      Added script countNbLines that count the number of lines of code of the project
+      Starting renaming SimpleSpringLaw to FrictionLessElasticContactLaw
+      Renaming SimpleSpringLaw to FrictionLessElasticContactLaw
+      Renaming SimpleSpringLaw to FrictionLessElasticContactLaw
+      SimpleSpringLaw renamed to FrictionLessElasticContactLaw.     Yade is compiling.
+      Improved documentation : added introduction to YADE
+      Improved documentation
+      Added librarie swift++ and qhull.     Modified scripts so that they works with .h and .c files.
+      Added MarchingCube algorithm into yade-lib-computationnal-geometry     Created lib yade-lib-algorithms were to gather algorithms of different type :     for now there is only a PerlinNoise algorithm, but we can put here sorting     algorithm ...
+      Moving, renaming some directories before splitting
+      Added new file generator Funnel and TetrahedronsTest     Added new interactingGeometry PolyhedralSweptSphere     Added new NarrowInteractionGeometryEngine SwiftPolyhedronProximityModeler that     will use SWIFT++ library and PolyhedralSweptSphere     Added EngineUnit Tetrahedron2PolyhedralSweptSphere and Box2PolyhedralSweptSphere     that will build InteractingGeometry
+
+==================================================
+yade-0.08.3
+Tue May 10 08:40:39 2005 +0000:
+
+Olivier Galizzi (32):
+      Renaming ActionParameter to PhysicalAction
+      Renaming ActionParameter to PhysicalAction finished
+      Renaming ActionParameterForce/Momentum to Force/Momentum adn     ActionParameterInitilizer/Reseter to PhysicalActionContainerInitializer/Reseter
+      Renaming ActionParameterForce/Momentum to Force/Momentum adn     ActionParameterInitilizer/Reseter to PhysicalActionContainerInitializer/Reseter     ...
+      Renaming ActionParameterForce/Momentum to Force/Momentum adn     ActionParameterInitilizer/Reseter to PhysicalActionContainerInitializer/Reseter
+      Renaming ActionParameterVectorVector to PhysicalActionVectorVector ...
+      Renaming ActionParameterVectorVector to PhysicalActionVectorVector ...
+      Yade is now compiling ...
+      Moving NullGUI to yade core and renaming QtGUI to yade-qt-gui
+      Moving yade-gui-gt from extensions/Frontend to gui
+      Still moving yade-qt-gui
+      Moving XMLManager from  extensions/IOManager to serialization
+      Renaming back yade-qt-gui to QtGUI to try to make yade compile first ...
+      Renaming back yade-qt-gui to QtGUI to try to make yade compile first finished
+      Forgot to re-ad QtGUI to kdevelop project
+      Changing yade-empty-package directory tree     Changing build order
+      Moving all MetaEngine stored inside yade core to plugin/engine/metaengine ...
+      Moving MetaEngine from yade to plugins
+      Moving MetaEngine from yade to plugins
+      Moving MetaEngine from yade to plugins...
+      Modifications so that yade is compiling with new directory tree
+      Creating library yade-lib-serialization-qt and yade-lib-time
+      Changing build order and moving XMLManager to libraries
+      Changing build order and removing unused directory serialization
+      Renaming XMLManager to yade-lib-serialization-xml
+      Moving gui/QtGUI to libraries/yade-lib-gui-qt
+      Changing build order and finishing renaming of XMLManager and QtGUI
+      Changing the way QtGUI load OpenGLRenderingEngine so that QtGUI doesn't need     anymore to link with OpenGLRenderingEngine library.
+      Making yade main application with flat directory structure
+      Making yade main application with flat directory structure
+      Removing all references to libraries Interactions, Body, Engine than no longer     exist.     Yade should now compile.
+      Splitted ElasticContactLaw into 2 : ElasticContactLaw and ElasticCohesiveLaw.     Autocollision for hanging cloth is working without hack.
+
+==================================================
+yade-0.08.2
+Fri May 6 15:57:05 2005 +0000
+
+Olivier Galizzi (75):
+      Starting creating new directory structure
+      Directory renaming ...
+      renaming directories ...
+      Directory renaming ...
+      Directory renaming ...
+      Directory renaming ...
+      Directory renaming ...
+      Directory renaming ...
+      Directory renaming ...
+      Directory renaming ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...     s     D    yade/src/plugins/Engine/ActionParameterFunctor     D    yade/src/plugins/Engine/PhysicalAction
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Directory tree redesign ...
+      Finishing directory tree redesign ... not compiling yet     Now starting to rename files and some directories
+      Renaming files ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes ...
+      Renaming classes is almost finished and yade is now compiling !
+      Renaming libraries to yade-lib-*
+      Renaming libraries to yade-lib-* ...
+      Renaming libraries to yade-lib-*
+      Renaming libraries to yade-lib-*
+      Renaming libraries to yade-lib-*
+      Renaming libraries to yade-lib-* done.     Yade is now compiling.
+      Moving DataStructure to plugins ...
+      Moving DataStructure to plugins finished
+      Yade is now compiling on the first try.     I removed initialization in constructor of bodyContainer, InteractionContainer     ... because now container are in plugins and so compiled after yade itself.
+      Changing name Dispatcher/funtor to MetaEngine/EngineUnit
+      Changing names Dispatcher/Functor to MetaEngine/EngineUnit ...
+      Changing names Dispatcher/Functor to MetaEngine/EngineUnit ...
+      Changing names Dispatcher/Functor to MetaEngine/EngineUnit ...
+      Changing names Dispatcher/Functor to MetaEngine/EngineUnit ...
+      Changing names Dispatcher/Functor to MetaEngine/EngineUnit ...
+      Changing names Dispatcher/Functor to MetaEngine/EngineUnit ...
+      Changing names Dispatcher/Functor to MetaEngine/EngineUnit ...
+      Changing names Dispatcher/Functor to MetaEngine/EngineUnit ...
+      Changing names Dispatcher/Functor to MetaEngine/EngineUnit finished
+
+==================================================
+yade-0.08.1
+Wed Apr 27 16:51:17 2005 +0000
+
+Janek Kozicki (348):
+      deleted file makeSymLink, and corrected calling scripts, when current directory is not in $PATH - just added ./ everywhere
+      better scripts - easier to use
+      better script to switch dynlib on/off, but still not good enough
+      removed spaces at the end of line
+      Multimethods work! but class Factorable MUST be added, to clean mess with CollisionFunctor
+      correcten compile dependencies - builds again from command line
+      corrected (again) compile dependencies
+      removed couple of compiler warnings
+      added yade/scripts/setDebug yade/scripts/setRelease
+      added FIXME about serialization, and Omega constructor tells about -rdynamic flag
+      added comments into MAIN LOOP (currently inside NonConnexBody)
+      scripts now check if YADEPATH was set
+      scripts now checking if YADEPATH set, othervise tell user to set it
+      moving GUI to frontend
+      moved GUI to FrontEnd
+      added FactoryExceptions so that ClassFactory is reusable
+      fixed ArchiveTypes.hpp:FIXME : change SMART_POINTER to POINTER and STL_CONTAINER to CONTAINER
+      added ClassFactory snippet, in order to clean it and make reusable
+      ClassFactory now should be really reusable
+      starting work with Serialization (spirit)
+      preparing yade to use reusable snippets - do not modify those files inside yade! do it in snippets instead
+      now yade uses exactly the same files as snippets. DO NOT MODIFY THEM, modify snippets first, then copy here.
+      now yade uses boost::spirit, DO NOT MODIFY, work on snippets instead
+      little cleanup, before making resetable rootBody
+      corrected spirit. DO NOT MODIFY, please test on snippets first.
+      now hanging cloth uses fundamental variable [ {1 {2 3 4}} {1 {2 3 4}} ... ]
+      we started adding SDEC element. now SDECTestExample works. but not rotating box. and we need to clean stuff
+      SDECDynamicEngine starts to work with contact law
+      moving CollisionModel into CollisionGeometry
+      changing *PhaseCollider into *Collider
+      changing *PhaseCollider into *Collider (2)
+      changing *PhaseCollider into *Collider (3)
+      changed *PhaseCollider into *Collider, now starting with qmake static libraries inside yade directory
+      now yade accepts more arguments on input: filename, timestep, maxiter
+      added benchmark - we can easily test speed changes of yade
+      CollllisionFunctor does NOT need to derive from Indexable!, rearranging subprojects
+      changes in Math directory...
+      more changes in directory tree (I must commit between changes...)
+      more changes in directory tree (I must commit between changes... 2)
+      moving files around
+      ...still not compiling..
+      i must commit before I move directories..
+      looks like I've found a solution for qmake...
+      looks like I've found a solution for qmake...2
+      finally! rearrangement of qmake/yade subtree. Serialization must be a dynlib!! it is absolutely not working as a static library!!, Omega must be freed from dependency on Vector3, this causes lots of problems (4hours to find it), 12h total, wheeeew. I Hope this work is not useless...
+      CollisionFunctor derived or not, from Indexable? (in g++3.3 if YES - it's faster, but rather uncorrect...)
+      now compiles with g++3.3, that was darn difficult to figure out, and is not slower than 94 svn status -q :)
+      correction in SDECDynamicEngine with PermanentLinks, and Quaternion precise rotation
+      added tetrahedron with permanent links, and -a flag, to say if we want autostart computations
+      added NullGUI, and -p flag
+      SDECBenchmark8k.xml is working now.
+      added two more examples
+      not working moment law - just after implementing it with JP
+      wtf with euler angle on y direction???
+      added SDECMoreTetrahedronsWithLinksMDEM3D.xml
+      this one works stable, but bad:  data/SDECPermanentChainRotated.xml
+      corrected SDECRotatingBoxWithTetrahedrons.xml and FileGenerator/RotatingBox/RotatingBox.cpp
+      added LinkedSpheres filegenerator,     small note inside Translatro.cpp - so that we can reproduce strange bahaviour     changed order of REGISTER_ATTRIBUTES in NonConnexBody - interactions are first     SDECDynamiCEngine has damping 0.3 now (should be attribute!!)
+      added SDECCollision.xml - looks really good with timestep 0.003(FIXME - should be inside .xml) and moment law uncommented(FIXME) in SDECDynamicEngine
+      XMLManager says line number of .xml if serialization fails, at least sometimes...
+      Serializtion now supports:  std::map, Loki::AssocVector, std::list, std::deque, std::set, std::vector, std::pair, boost::tuple1/2/3/4/5
+      corrected all .pro files to include toolboxes/Libraries/AssocVector - so that yade now compiles and runs good with all that new serialization stuff
+      createIncludes script corrected, Makefile removed
+      this version of file is used to make comparision of results with Jean Patrick
+      corrected - works with current (unfinished) containers
+      moved Singleton.hpp to toolboxes/Libraries/Singleton - place where it belongs
+      now yade works with new serialization - added beforeSerialization, afterSerialization, beforeDeserialization, afterDesrialization
+      removed class Contact, in prepare for interactionContainer
+      added InteractionContainer (not integrated yet)
+      InteractionContainer integrated into yade
+      InteractioContainer eraseCurrent() useful for SAPColider
+      BodyContainer starts to work
+      BodyContainer with ids works, now I havr to move it into yade/Body, yade/Interaction
+      InteractionContainer and BodyContainer integration completed. but container classes quality/speed is not good (and tested) yet
+      InteractionVecSet and BodyVector
+      FIXED threading on multi-processor machine (not real multiprocessor, just hyper threading...)
+      rename BodyVector to BodyRedirectionVector
+      corrected BodyRedirectionVector, added comment in Singleton
+      scripts that allow easy switching between relative paths and paths in environemnt YADE*PATH variables
+      threads are now crashing little less often... (only when clicking "new view" "start" "stop")
+      XMLManager writes pointers in a shorter way, with _className_
+      preProcessAttributes postProcessAttributes
+      converted SDECBenchmark8k.xml
+      NullGUI works - for benchmars of Vector3 not in Serializable, etc..
+      scripts are checking all Environement Variables - more safety
+      fixed missing is_base_and_derived in Indexable.hpp
+      started with OpenGLWrapper and removed extra tabs in serialization
+      OpenGLWrapper starts to work - now to write all those functions from gl.h
+      OpenGLWrapper 50% done  - and #DOUBLE_PRECISION works! (float/double)
+      improved SDECLinkedSpheres (momwnt law is not workingsvn status -q)
+      SDECCollision.xml is loading correctly, but is not working!!! - it was working previously!!
+      SDECCollision.xml works for dt=0.003
+      SDECCollision.xml and SDECTetrahedronWithLinks.xml work for dt=0.003
+      SDECLinkedSpheres example now is much more interesteing, with dt=0.003
+      fixed hack in PointerHandler, fixed SDECBenchmark8k, some .pro were release, not debug
+      ok, this problem in IOManager.cpp is strange...
+      rearranging directories.
+      changing directories cd...
+      changing directories cd...
+      changing directories cd...
+      Finished rearranging subdirectories. Now we have directory extensions (we can rename it,     if there is a better name), and ClassFactory is in toolbox/Libraries, Multimethods (once there     are done) should go there too, because MultiMethods have nothing to do with yade.
+      yade is now compiling (and works) with g++ 3.3
+      all .xml examples except ErrorTolerant, are now working
+      NullGUI is now saving results during computations. Those results can be opened     with QtGUI and we can see what is computed.
+      added filegenerator that can import data files from SDEC
+      hack, which must be corrected just after adding Action, allows to measure forces     during simulation
+      InteractionVecSet is corrected and working, yade is now compiling withi double (there was     some mistake with float), but all the examples are now broken!
+      yade is now crashing less often, so I hope that we will never again see that error:
+      again was not compiling with double....
+      corrected some threading problems, removed MyEngine2 from DynamicEngine.pro, because it doesn't exist
+      added SopeTest in SimulationController
+      -pthreads -lpthreads are required for yade to compile with 3.3!! don`t remove them!!!!
+      added some comments to code regarding integration with new multimethods
+      started integration of multimethods
+      integrating new multimethods, continued...
+      1D, 2D MultiMethods are working in yade. but there is a bug in DynLibDispatcher, current workaround is done with a hack
+      added some comments to working multimethods, hack is little better, but not removed, yet
+      Multimethods are now working, clean, checked with valgrind, and results from older version are compared with kompare.
+      added two postprocessors - recording forces, and average position. but why they crash Omega.loadDynLibs(), when I use ofstream???
+      force recorder is not modifying data anymore, but anyway it`s dirty and must use Action, and work like real sensors!!
+      SDECImport uses new dialog box
+      changes into Interaction and Interaction container:
+      version 0.1.5, with many changes:     - moment rotation law added, mess inside SDECDynamicEngine (three enegines in one!)     - Serialization now supports almost all std, boost and Loki containers and more     - math classes are separate from serialization, and done with templates (but with wild-magic license)     - for storing Bodies and Interactions we now use polymorphic classes InteractionContainer and BodyContainer     - yade uses threads now, but still not fully stable     - switch at compile time to select float/double precision of calculation     - displayed objects are now casting really cool shadows     - some examples are not updated, and therefor not working. it is guaranteed that SDECBenchmark8k will always work.     - BoundingVolume optimized for each kind of GeometricalModel makes computation almost twice faster     - new very generic MultiMethods are added, allowing multivirtual call with extra parameters, and easy code reuse
+      added changelog
+      small correction in Interaction constructor
+      putting Real in all places where it is used for calculation
+      was not compiling because of stupid .pro problems
+      renamed DynLibLauncher to FunctorWrapper
+      changing name from SDECContactModel to SDECContactModel - but not tested yet - I must commit between subversion operations
+      SDECContactModel renamed to SDECContactGeometry, OK
+      renaming BroadCollider, NarrowCollider to BroadInteractor, NarrowInteractor, part 1
+      still renaming
+      finished renaming BroadCollider, NarrowCollider to BroadInteractor, NarrowInteractor
+      changed color of sphere number 1 and 10 - this is for checking the shearForce between those spheres (as we had numerically different results for float and double)
+      some cleaning before ActionContainer
+      some .pro conflicts, now it's compiling, still before ActionContainer
+      added empty class ActionVecVec
+      I added empty classes ActionForce and ActionMomentum, because I need something that ActionContainer can store     classes are empty now.
+      So, now all classes are added: Action, ActionVecVec, ActionContainer, ActionForce, ActionMomentum, etc.. but they are empty. And it is compiling
+      abstract interface for ActionContainer is specified, now to fill in the class ActionVecVec ....
+      work inside ActionVecVec - not done yet, but is compiling
+      corrected compilation order (except for CollisionGeometrySet, which is a sign bigger design flaw, than just a compilation order) and xorrected SDECBenchmark8k.xml so that it is running with latest modifications
+      ActionContainer->reset() - resetting actions without deleting all the pointers - faster
+      changed the way in which ActionContainer works, now all fields are never empty.     DynamicEngine (or some other actor?), when if(first) must call ActionContainer->prepare(),     and then ActionContainer works much faster.
+      added flat kdevelop project, this is for debugging - I don't know why, but alleyoop is not showing line numbers inside dynlibs, now...
+      finad() and getCurrent() in containers are now returning references, as it should be faster
+      Body is Indexable, but we have to register SDECDiscreteElement to dispatcher, not RigidBody... it's a bug in Indexable class, or somewhere there...
+      Multimethods now support inheritance in Indexable objects, I had to modify in Indexable class:
+      possibly faster DynLibDispatcher, I was also trying to fix problem that Singleton is not deleted at end, but finally I made only some improvement, but it is still not fixed.
+      renaming CollisionFunctor to InteractionFunctor, part 1
+      renaming, part 2
+      renaming, part 4
+      renaming, part 5
+      renaming, part 6
+      finished renaming of InteractionFunctor, and I also corrected colors in qt dialog, and qt simulation-controller window. But I'm not sure about colors in qt dialog.
+      small change in ActionDispatcher.cpp, is faster, but if Action was holding body's id it is possible that it can be faster
+      corrected SDECBenchmark8k.xml, and I've checked that visually simulation is the same as previous version
+      renaming...
+      moving stuff around
+      moving stuff around
+      moving stuff around cd..
+      moving stuff around...
+      now I'll try to compile...
+      still trying to compile...
+      it is almost compiling
+      so it is compiling, except for CollisionGeometrySet problem
+      OpenGL display works with strange static_cast inside DynLibDispatcher
+      started with PositionOrientationRecorder
+      changed double to Real in few remaining places. small fixes in multimethods.
+      remove ParticleBallisticEngine BallisticDynamicEngine
+      renamed geometricalModel, interactionGeometry, boundingVolume
+      before renaming class name of CollisionGeometry to InteractionGeometry
+      renaming collistion to interaction, cd...
+      renaming cd...
+      renaming...
+      renaming...
+      renaming...
+      renaming...
+      still renaming collision to interaction...
+      still renaming collision to interaction...
+      still renaming collision to interaction...
+      still renaming collision to interaction...
+      still renaming collision to interaction...
+      renaming mess..
+      classes aggregated by Body have a prefix 'Body' in their name, to reduce confusion of class names:
+      fixed OpenGL display of cloth, and still renaming classess aggregated by Body
+      Loki library in single place, but it should be renamed to SmallLoki, or YadeLoki, because this is not an exact copy of Loki library.
+      added FactoryFunctors and UpdatorFunctors for BoundingVolume, GeometricalModel, etc... They are empty for now
+      Loki ok (just should be SmallLoki, or YadeLoki), BodyAssocVec ->  BodyAssocVector
+      because of name conflict between Body::InteractionGeometry and Interaction::InteractionGeometry, maybe name Body::InteractionDescription will be ok?     this is what I've renamed in this commit
+      so now we have (arrow <- means 'aggregates'):
+      renaming cd..
+      renaming cd..
+      renaming cd..
+      before renaming InteractionFunctor-s to InteractionGeometryFunctor-s
+      little renaming/cleaning is finished.
+      problem with InteractionDescriptionSet is solved, and now yade just compiles without any errors!
+      I have done some general cleaning - removed unnecessary constructors, deleted unused postProcessAttributes, etc..
+      OK/Cancel works now in file selection dialog,     ActionForce2RigidBody was deleted, because ActionForce2Particle does the same job     now I'm staring to work on updating GeometricalModel of Mesh2D, so that cloth will be displayed properly
+      changed names RigidBody to RigidBodyParameters and so on
+      before making correct display of cloth geometrical model I have to move Geometry into Body, because Body owns geometry, and it will not compile if I don;t move it there.
+      all renaming finished for now. so I'll start with proper update of geometrical model for cloth.
+      update of GeometricalModel for cloth is working
+      is compiling now with g++ 3.3, and with double
+      FunctorWrapper is Serializable, now - because we want Dispatcher to work with serialization, so that Functors can get extra arguments from .xml
+      Functors are serializable, so now I'm working on DynLibDispatcher to support this serialization of functors
+      Serializable functors are working, so now I'll separate damping from SDECDynamicEngine. It will be a functor, with parameters.
+      preaparations for ActionDampingFunctor, corrected SDECBenchmark8k.xml
+      damping is separated from SDECDynamicEngine and works, strange is that ActionDampingDispatcher and ActionApplyDispatcher are exactly the same!! so they should be merged into one dispatcher. maybe Action2BodyPhysicalParametersDispatcher
+      damping works quite good
+      added ActionReset - it is not inside SDECDynamicEngine - because for cloth example we have two/three engines, so they can't do a reset - because they will delete results from other engine
+      renamed:
+      stared with RotatingBox with simplespring, filegenerator...
+      RotatingBox example with spheres and boxes inside is working quite good - with SimpleSpringDynamicEngine
+      BoxStack example is working quite good. meybe it should be renamed to WallImpact, or something like that...
+      the real name for damping is: Cundall Non Viscous Local Damping
+      TimeStepper is working quite nice, and now - even SDECLinkedSpheres example is stable!
+      SDECParameters is now holding shearingAngle, young modulus and posiions ratio - as it should.
+      internal shearing angle is added, and yade is ready to compare results with sdec, although force recorder is little dirty, because it is releasing the bug ball
+      some small corrections, before comparing results with sdec
+      splitting leapfrom integrator into two parts....
+      added velocity recorder, and timeintegrator is split in two parts
+      started with lattice model
+      Lattice model generation starts to work.
+      SDECImport can also create walls made of spheres
+      Body::group changed into Body::groupMask (so bodies can belong to many groups - max. 16 groups, because we have 16 bits here)
+      supid error everywhere!!! volume of a spohere was 4/3*PI*radius*radius, EVERYWHERE!!!. the volume of a sphere should be calculated in ONLY one place!!!
+      so now we will make another comparision with SDEC, after sphere volume was fixed
+      renaming DynamicEngine to InteractionLaw     renaming KinematicEngine to KinematicMotion
+      DynamicEngine -> InteractionLaw     KinematicEngine -> KinematicMotion
+      renaming
+      DynamicEngine is ConstitutiveLaw
+      ApplyActionForce2Particle -> NewtonsForceLaw     ApplyActionMomentum2RigidBody -> NewtonsMomentumLaw
+      started nice class diagram
+      better (but not finished) class diagram
+      version used for training with Julien, Frederic, and Luc
+      yadeExampleTimeLoop.dia (xml) almost finished
+      renaming Action to ActionParameter
+      renaming cd...
+      renaming cd...
+      renamed Action to ActionParameter
+      separating gravity to GravityForceFunctor - it is necessery because I'm preparing code for courses.     some filegeneratr examples now have zero gravity, and empty ActionParameterContainer, that is easy to fix with ActionParameterInitializer, when doing ActionParameterInitializer, also ActionParameterReset must be done correctly and split from ActionReset. Then we have to add ActionParameter displacement, position and angularDisplacement, so that ImposeKinematicConditions will work correctly (AngularDisplacementFunctor, DisplacementFunctor (it was Rotor and Translator))
+      some cleaning
+      stared ActionParameterInitializer and ActionParameterReset
+      started LeapFrogOrientationIntegratorFunctor and LeapFrogPositionIntegratorFunctor
+      LeapFrogOrientationIntegratorFunctor LeapFrogPositionIntegratorFunctor done
+      renaming KinematicMotion to COndition
+      renaming KinematicMotion to Condition
+      renaming KinematicMotion to Condition
+      ForceCondition GravityCondition RotationCondition TranslationCondition, are OK
+      renaming..
+      renaming..
+      renaming..
+      renaming..
+      renaming..
+      renaming..
+      renaming..
+      renaming..
+      renamed:     SDECParameters -> BodyMacroParameters     SDECContactGeometry -> MacroMicroContactGeometry, and all functors     SDECMacroMicroElasticRelationships -> MacroMicroElasticRelationships     SDECContactPhysics -> ElasticContactParameters     SDECLaw -> ElasticContactLaw
+      added empty classess:
+      added empty FEMSetTextLoaderFunctor
+      FEMBeam load the file correctly
+      FEM bodies inherit from BodyPhysicalParameters
+      scripts to rename classess, hopefully working correctly
+      I'm testing the renaming scripts:
+      I'm testing the scripts:
+      I'm testing the scripts
+      scripts should work now, with small human intervention
+      I'm testing scripts again
+      ./renameClassFilenames FEMTetrahedronParameters FEMTetrahedronData
+      ./renameClassDirectories FEMTetrahedronParameters FEMTetrahedronData
+      ComplexBody has now actors and initializers, and thanks to that FEMSetTextLoaderFunctor is working.
+      FEM is half done - generation works. and other stuff. Only Constitutive Law for FEM is empty - waiting to be written. But there is a compilation problem we have to compile twice now, because of linker errors in fem loader.
+      FEM works!!
+      GLDrawTetrahedron is now drawing solid tetrahedrons. but sometimes it is drawing not correctly....
+      corrected some comments in FEMLaw
+      FEM stuff is compiling correctly, some cleaning.
+      created directory
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-fem
+      created
+      created
+      created
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-qt
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-wm3math
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-loki
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-serialization
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-multimethods
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-factory
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-threads
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-opengl
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-computationalgeometry
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-massspring
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-realtime-rigidbody
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-computational-geometry     D    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-computationalgeometry
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-wm3-math     D    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-wm3math
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-mass-spring     D    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-massspring
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-empty
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-sandbox
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-serialization-xml
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-dem-fem     D    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-femdem
+      better openGL tetrahedron display
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-time
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-gui-qt     D    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-qt
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-rendering-engine-opengl
+      A    trunk/yade-package-fem     A    trunk/yade-package-fem-dem     D    trunk/yade-mass-spring     A    trunk/yade-package-realtime-rigidbody     D    trunk/yade-dem     D    trunk/yade-fem     D    trunk/yade-dem-fem     D    trunk/yade-realtime-rigidbody     A    trunk/yade-package-lattice     D    trunk/yade-lattice     A    trunk/yade-package-mass-spring     A    trunk/yade-package-dem
+      A    trunk/yade-lib-wm3-math     A    trunk/yade-lib-loki     D    trunk/yade-rendering-engine-opengl     A    trunk/yade-lib-factory     A    trunk/yade-lib-computational-geometry     D    trunk/yade-multimethods     A    trunk/yade=lib-time     A    trunk/yade-lib-opengl     D    trunk/yade-threads     D    trunk/yade-wm3-math     D    trunk/yade-time     D    trunk/yade-loki     A    trunk/yade-lib-rendering-engine-opengl     D    trunk/yade-factory     D    trunk/yade-computational-geometry     A    trunk/yade-lib-multimethods     D    trunk/yade-opengl     A    trunk/yade-lib-threads
+      A    trunk/yade-lib-time     D    trunk/yade-serialization-xml     D    trunk/yade-serialization     A    trunk/yade-lib-serialization-xml     A    trunk/yade-lib-serialization     D    trunk/yade=lib-time
+      fem-dem coupling ...
+      disabled stuff in QtGeneratedSimulationController
+      changed todo
+      changed something in interactions
+      ./renameClassFirst InteractionDescription InteractingGeometry
+      ./renameClassFilenames InteractionDescription InteractingGeometry
+      D    yade/src/yade/Body/InteractionDescription     A    yade/src/yade/Body/InteractingGeometry
+      D    yade/projects/kdevelop/yade/Body/InteractionDescription     A    yade/projects/kdevelop/yade/Body/InteractingGeometry     A    yade/projects/kdevelop/yade/Body/InteractingGeometry/InteractingGeometry.pro     M    yade/projects/kdevelop/yade.kdevelop
+      SimpleBody deleted
+      renameClassFirst ComplexBody MetaBody
+      ./renameClassFilenames ComplexBody MetaBody
+      D    yade/src/plugins/Body/InteractionDescription     A    yade/src/plugins/Body/InteractingGeometry     D    yade/src/plugins/Body/InteractionDescriptionFunctor     A    yade/src/plugins/Body/InteractingGeometryFunctor     D    yade/projects/kdevelop/plugins/Body/InteractionDescription     A    yade/projects/kdevelop/plugins/Body/InteractingGeometry     D    yade/projects/kdevelop/plugins/Body/InteractionDescriptionFunctor     A    yade/projects/kdevelop/plugins/Body/InteractingGeometryFunctor     M    yade/projects/kdevelop/plugins/Body/Body.pro     M    yade/projects/kdevelop/yade.kdevelop
+      D    yade/projects/kdevelop/plugins/Body/InteractingGeometry/InteractionDescription.pro     A    yade/projects/kdevelop/plugins/Body/InteractingGeometry/InteractingGeometry.pro     D    yade/projects/kdevelop/plugins/Body/InteractingGeometryFunctor/InteractionDescriptionFunctor.pro     A    yade/projects/kdevelop/plugins/Body/InteractingGeometryFunctor/InteractingGeometryFunctor.pro
+      DeusExMachina
+      /renameClassFilenames Condition DeusExMachina
+      Condition DeusExMachina
+      Condition DeusExMachina
+      ./renameClassFirst InteractionSolver ConstitutiveLaw
+      ./renameClassFilenames InteractionSolver ConstitutiveLaw
+      InteractionSolver ConstitutiveLaw
+      InteractionSolver ConstitutiveLaw
+      Actor - Engine
+      Actor - Engine
+      BodyPhysicalParameters PhysicalParameters
+      BodyPhysicalParameters PhysicalParameters
+      BodyPhysicalParameters PhysicalParameters
+      BodyPhysicalParameters PhysicalParameters
+      ...
+      ...
+      ...
+      ...
+      ...
+      ...
+      ...
+      ...
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-empty-lib
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-package     D    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-empty
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-empty-package     D    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-package
+      updated todo
+      A    svn+ssh://svn.berlios.de/svnroot/repos/yade/trunk/yade-lib-serialization-contrib
+      we have made a great yade-empty directory structure!!
+
+Olivier Galizzi (147):
+      removing ui file from CORBA IDL section and problem with moc resolved by removing trailing slash at the end of YADEPATH
+      moving everything into subdirectory yade (part 1)
+      moving everything into subdirectory yade (part 2)
+      changed README - better quick-guide
+      renaming function collisionModelisationPhase to narrowCollisionPhase
+      smalls changes into ContactModel, CollisionModel, Body for preparing to multimethods. Class Indexable added.
+      Splitting collision function into dynlibs
+      Multimethod implemented but not tested yet!
+      Indexable class not working (can't shared_dynamic_cast Serializable to Indexable)
+      New classes added (Factorable,Interaction,InteractionModel)
+      Rewriting class Factorable and InteractionModel because subversion delete their content during last commit ???
+      Add some toolboxes (M3D,M2D,Rand,Constants)
+      Some unused files were removed. The content of some files was again erased by an unknown reason?
+      All serialization stuff are now into a dynlib
+      Putting build order in the correct order
+      Toolboxes Distances and Intersections created
+      shared_dynamic_cast was changed to dynamic_pointer_cast
+      Adding new class for cloth simulation. There is some mess with serialization.
+      starting adding cloth simulation
+      Cloth simulation is working but some stuff are dirty
+      Cloth and spheres are working together but in a dirty way
+      Starting adding FEMBody and renaming Cloth to MassSpringBody
+      Putting all GUI stuff into a dynlib and new class QtGUIGenerator (that generate a qt widget from a serializable object) added
+      Correct some little error in QtGUIGenerator subproject
+      Changing build order
+      Minor changes + adding boxes into RotatingBox
+      Better tuning of rotatingBox simulation
+      Added not working BoxStack, and createDynamicEngine script
+      New SDECDiscreteElement and SDECDynamicEngine added
+      New simple example for SDEC added
+      Some minor changes in SDECDynamicEngine - but it is still not working with RotatingBox
+      New multimethod design (moved from omega to nonconnexbody)
+      Some include of Omega were missing in previous commit
+      Improved detection of new and old interactions (we hope it is faster)
+      We change the way we remember contacts from previous time step (new geometrical old physical)
+      Added Actor so we can choose order of main loop modules. Started to add permanent links
+      Added new ErrorTolerant classes
+      SDECTestPermanentLink.xml is now working
+      Added ErrorTolerant classes round 2
+      Added todo file, corrected examples, corrected permanents links, started to add jean patrick law
+      Moment law is now working better but there are still some problems
+      Moment law is now using Quaternion instead of weird modulo loop for computing dBeta (but still some problem)
+      Moment law seems now to work or at least it is much more stable
+      Added Translator kinematic engine
+      Continuing ErrorTolerantDynamicEngine and added CollisionFunctor for him
+      LCP solver using bi-conjugate gradient is implemented but is not working yet
+      Starting moving libraries AssocVector, Frontend, IOManager to correct places
+      added /home/evasion/galizzi/devel/yade/yade/include, libraries in correct places now
+      modified todo, removed some junk
+      Change all declaration of Math stuff so that it is using new template Vector3, Matrix3 ...
+      Yade is now working with new serialization of vector ...
+      Removed output when class are registered
+      Added some todo stuff
+      QtGUIGenerator is now able to (de)-serialize all fundamentals into a serializable
+      Add QtFileGenerator, for automatic file generation with Qt GUI (not completely working yet)
+      QtGuiGenerator and QtFileGenerator are now working
+      Added improvements into QtGUIGenerator and QtFileGenerator
+      All Qt libraries are now in one library. Improved version of QtGUIGenerator
+      Removed directory  QtFileGenerator and QtGUIGenerator
+      Created new qt controller for simulation and new opengl library
+      New SimulationController is now working
+      Started moving simulation loop from glViewer to a specific thread
+      Added ThreadSynchronizer. Yade is now working with external simulation loop
+      Improved thread management. Multiple views are now working
+      Improved GUI. Is ThreadSynchronizer really working ?
+      Improved version of Threads library
+      Added omitted Thread* files
+      Changes into ThreadSynchronizer
+      Much better version of Thread library and multithreaded QGLViewer
+      Reenabling GUI updater thread
+      Now we use InteractionHashMap by default because InteractionVecSet is not ready yet
+      Added RenderingEngines
+      Changing build order
+      Shadow added but not working yet because of problems with stencil buffer
+      Shadows are working but not when they overlap
+      Changing stencil function solved the problem with overlapping shadows
+      Better lighting parameters
+      Faster shadow. Only 1 rendering instead of 3 and use of QUAD_STRIP
+      Improved QtGUI
+      Improved QtGUI
+      some changes in shadows
+      Improved SDECSpheresPlanes
+      Improved fast shadow volumes
+      Added new classes for bounding volume management (not used yet)
+      Bounding volume are now both indexalbe and a GeometricalModel
+      BoundingVolume update is now done into an actor
+      Improved version of GLWindowManager library
+      Improved GUI with (de)-serialization of RenderingEngine into SimulationController
+      Improved version of QtGUIGenerator. Now boolean are represented by checkboxes instead of linedits
+      Better handling of start,stop and reload simulation. Thread now terminate when associated window is closed
+      Update in BoundingVolume updating. Now it is working for rootBody through it CollisionGeometrySet. Scene is now dynamically centered when file is loaded
+      Changes into FileGenerator
+      Fixed some problems with FileGenerators
+      Boxes are now casting shadows
+      Boxes are now casting shadows
+      Better handling of thread into GUI. But they are still problems especially if you close the first GLWindows because it contain the GLContext where the GL lists are stored
+      Improved stability
+      Threads improvement
+      Somes changes into Thread and GUI
+      Mush better handling of threads, open/close ... it is never crashing on my laptop at least
+      Now yade is no more segfaulting on exit
+      Display list are now builded at each new creation of RenderingEngine
+      Changes into threads
+      Added createDynlib script
+      Added Messagedialog
+      Fix error when reloading simulation and display list are now not built several times
+      Redesigned the way we use boost::lock
+      Added mutex into Threadable sleep method
+      Added changes from snippets Thread
+      Better handling of real simulation duration
+      Improved GUI
+      Persistent SAPCollider is now working.
+      Added PersistantSAPCollider files that were missing in previous revision
+      Added script addClassToDynLib
+      Fix crash with permanent links.
+      Added clas InteractionPhysics     Added subproject InteractionPhysics     Renamed subproject InteractionModel to InterationGeometry
+      Added into SVN repository omitted files InteractionPhysics
+      Problem with InteractionPhysics
+      Corrected kdevelop mistakes due to introduction of InteractionPhysics
+      Added SDECContactPhysics and SDECPermanentLinkPhysics
+      Fix mistake into SDECPermentLink : Some attributes were not registered
+      Implemented InteractionPhysics and InteractionGeometry
+      Updated todo list : Switch all possible dynamic_pointer_cast to PointedType * p = static_cast<PointedType*>(shared_p.get())
+      Added Action, ActionContainer, SDECLinearContactModel, PhysicalInteractor.     We started redesign to introduce Action which are the response of a DynamicEngine to an     Interaction and acts on body.
+      Adding factorable macros into Action and ActionContainer
+      Add function add,sub and reset into Action classes.     Almost finished action container.
+      You have to call createIndex() from constructor of all Indexable class.     Before adding displatcher for applying Actions.
+      Added ActionDispatcher. Now we want to use it.
+      Now ActionDispatcher is working.
+      Added omitted files from previous commit.
+      Added single step button in QtGUI     Better SpheresPlanes FileGenerator
+      Started to rename and move SimpleNarrowCollider and classes related to     InteractionPhysics
+      InteractionPhysicsDispatcher starts to works. But we have to make BodyPhysics
+      HangingCloth is working again but it is designed using Yade framework
+      Small changes into MassSpring so that it is faster
+      Added BodyPhysics class and moved all type of bodies into subdirectory     BodyPhysics
+      To add BodyPhysicalParameter we have to make OpenGLDispatchers. So we started to     add all of them.
+      OpenGL continued...
+      Stuff with BodyPhysicalParameters is compiling .
+      Corrected some bugs due to introduction of BodyPhysicalParameters
+      Created TimeIntegratorFunctor and Dispatcher.     BallisticDynamicEngine is now LeapFrogIntegrator
+      Corrected KinematicEngine.     MassSpring cloth is now working : but we still have to update geometricalModel
+      Added layout and scrollview to QTGUI
+      corrected function name into Quaternion
+      Added file yade.sxw which contain concept and spirit of yade
+      Added tree file to rename files and directories
+      Added some concepts into yade.sxw

=== modified file 'core/Cell.hpp'
--- core/Cell.hpp	2013-05-14 21:24:11 +0000
+++ core/Cell.hpp	2013-05-24 16:48:19 +0000
@@ -16,7 +16,7 @@
 #include<yade/lib/serialization/Serializable.hpp>
 #include<yade/lib/base/Math.hpp>
 
-#include<yade/pkg/dem/Shop.hpp>
+//#include<yade/pkg/dem/Shop.hpp>
 
 class Cell: public Serializable{
 	public:
@@ -143,8 +143,8 @@
 	Matrix3r getRightStretch() { Matrix3r R,U; computePolarDecOfDefGrad(R,U); return trsf*R.transpose(); }
 
 	// stress measures
-	Matrix3r getStress() { return Shop::getStress(); }
-	Matrix3r getCauchyStress() { Matrix3r s=getStress(); return .5*(s+s.transpose()); }
+	//Matrix3r getStress() { return Shop::getStress(); }
+	//Matrix3r getCauchyStress() { Matrix3r s=getStress(); return .5*(s+s.transpose()); }
 
 	enum { HOMO_NONE=0, HOMO_POS=1, HOMO_VEL=2, HOMO_VEL_2ND=3 };
 	YADE_CLASS_BASE_DOC_ATTRS_DEPREC_INIT_CTOR_PY(Cell,Serializable,"Parameters of periodic boundary conditions. Only applies if O.isPeriodic==True.",

=== modified file 'core/main/yade-batch.in'
--- core/main/yade-batch.in	2013-03-26 19:21:11 +0000
+++ core/main/yade-batch.in	2013-05-24 16:48:19 +0000
@@ -6,15 +6,6 @@
 
 import os, sys, thread, time, logging, pipes, socket, xmlrpclib, re, shutil, random
 
-pynotifyAvailable = False
-n = 0;
-try:
-	import pynotify
-	pynotifyAvailable = True
-	pynotify.init("Yade")
-except ImportError:
-	pynotifyAvailable = False
-
 #socket.setdefaulttimeout(10) 
 
 ## replaced by scons automatically
@@ -369,6 +360,7 @@
 parser.add_argument('--timing',type=int,dest='timing',default=0,metavar='COUNT',help='Repeat each job COUNT times, and output a simple table with average/variance/minimum/maximum job duration; used for measuring how various parameters affect execution time. Jobs can override the global value with the !COUNT column.')
 parser.add_argument('--timing-output',type=str,metavar='FILE',dest='timingOut',default=None,help='With \-\-timing, save measured durations to FILE, instead of writing to standard output.')
 parser.add_argument('--randomize',action='store_true',dest='randomize',help='Randomize job order (within constraints given by assigned cores).')
+parser.add_argument('--disable-pynotify',action='store_true',dest='disablePynotify',help='Disable screen notifications')
 parser.add_argument('args',nargs=argparse.REMAINDER,help=argparse.SUPPRESS) # see argparse doc, par.disable_interspersed_args() from optargs module
 #parser.add_argument('--serial',action='store_true',dest='serial',default=False,help='Run all jobs serially, even if there are free cores
 opts=parser.parse_args()
@@ -396,6 +388,16 @@
 	parser.print_help()
 	sys.exit(1)
 
+pynotifyAvailable = False
+n = 0;
+if not opts.disablePynotify:
+	try:
+		import pynotify
+		pynotifyAvailable = True
+		pynotify.init("Yade")
+	except ImportError:
+		pynotifyAvailable = False
+
 print "Will run simulation(s) %s using `%s', nice value %d, using max %d cores."%(scripts,executable,nice,maxJobs)
 
 if table:

=== modified file 'doc/references.bib'
--- doc/references.bib	2012-09-08 01:19:45 +0000
+++ doc/references.bib	2013-05-28 06:22:52 +0000
@@ -531,3 +531,43 @@
 	doi = {10.1016/j.ijsolstr.2005.07.016},
 	author = {Katalin Bagi}
 }
+
+@article {Weigert1999,
+	author = {Weigert, Tom and Ripperger, Siegfried},
+	title = {Calculation of the Liquid Bridge Volume and Bulk Saturation from the Half-filling Angle},
+	journal = {Particle & Particle Systems Characterization},
+	volume = {16},
+	number = {5},
+	publisher = {WILEY-VCH Verlag GmbH},
+	issn = {1521-4117},
+	url = {http://dx.doi.org/10.1002/(SICI)1521-4117(199910)16:5<238::AID-PPSC238>3.0.CO;2-E},
+	doi = {10.1002/(SICI)1521-4117(199910)16:5<238::AID-PPSC238>3.0.CO;2-E},
+	pages = {238--242},
+	year = {1999},
+}
+
+@article{Willett2000,
+	author = {Willett, Christopher D. and Adams, Michael J. and Johnson, Simon A. and Seville, Jonathan P. K.},
+	title = {Capillary Bridges between Two Spherical Bodies},
+	journal = {Langmuir},
+	volume = {16},
+	number = {24},
+	pages = {9396-9405},
+	year = {2000},
+	doi = {10.1021/la000657y},
+	URL = {http://pubs.acs.org/doi/abs/10.1021/la000657y},
+	eprint = {http://pubs.acs.org/doi/pdf/10.1021/la000657y}
+}
+
+@article{Herminghaus2005,
+	author = {Herminghaus * , S.},
+	title = {Dynamics of wet granular matter},
+	journal = {Advances in Physics},
+	volume = {54},
+	number = {3},
+	pages = {221-261},
+	year = {2005},
+	doi = {10.1080/00018730500167855},
+	URL = {http://www.tandfonline.com/doi/abs/10.1080/00018730500167855},
+	eprint = {http://www.tandfonline.com/doi/pdf/10.1080/00018730500167855}
+}

=== added file 'examples/concrete/triax.py'
--- examples/concrete/triax.py	1970-01-01 00:00:00 +0000
+++ examples/concrete/triax.py	2013-05-27 06:02:45 +0000
@@ -0,0 +1,209 @@
+################################################################################
+#
+# Triaxial test. Axial strain rate is prescribed and transverse prestress.
+# Test is possible on prism or cylinder
+# An independent c++ engine may be created from this script in the future.
+#
+################################################################################
+from yade import pack, plot
+import os
+
+# default parameters or from table
+readParamsFromTable(noTableOk=True,
+	# type of test ['cyl','cube']
+	testType = 'cyl',
+
+	# material parameters
+	young = 20e9,
+	poisson = .2,
+	frictionAngle = 1.2,
+	sigmaT = 1.5e6,
+	epsCrackOnset = 1e-4,
+	relDuctility = 30,
+
+	# prestress
+	preStress = -3e6,
+	# axial strain rate
+	strainRate = -20,
+
+	# assamlby parameters
+	rParticle = .075e-3, #
+	width = 2e-3,
+	height = 5e-3,
+	bcCoeff = 5,
+
+	# facets division
+	nw = 24,
+	nh = 15,
+
+	# output specifications
+	fileName = 'test',
+	exportDir = '/tmp',
+	runGnuplot = False,
+	runInGui = True,
+)
+from yade.params.table import *
+assert testType in ['cyl','cube']
+
+# materials
+concMat = O.materials.append(CpmMat(
+	young=young,frictionAngle=frictionAngle,poisson=poisson,sigmaT=sigmaT,
+	epsCrackOnset=epsCrackOnset,relDuctility=relDuctility
+))
+frictMat = O.materials.append(FrictMat(
+	young=young,poisson=poisson,frictionAngle=frictionAngle
+))
+
+# spheres
+pred = pack.inCylinder((0,0,0),(0,0,height),.5*width) if testType=='cyl' else pack.inAlignedBox((-.5*width,-.5*width,0),(.5*width,.5*width,height)) if testType=='cube' else None
+sp = pack.randomDensePack(pred,spheresInCell=2000,radius=rParticle,memoizeDb='/tmp/triaxTestOnCylinder.sqlite',color=(0,1,1),material=concMat)
+O.bodies.append(sp)
+# bottom and top of specimen. Will have prescribed velocity
+bot = [s for s in sp if s.state.pos[2]<rParticle*bcCoeff]
+top = [s for s in sp if s.state.pos[2]>height-rParticle*bcCoeff]
+for s in sp: s.shape.color = (0,1,1)
+vel = strainRate*(height-rParticle*2*bcCoeff)
+for s in bot:
+	s.shape.color = (1,0,0)
+	s.state.blockedDOFs = 'xyzXYZ'
+	s.state.vel = (0,0,-vel)
+for s in top:
+	s.shape.color = Vector3(0,1,0)
+	s.state.blockedDOFs = 'xyzXYZ'
+	s.state.vel = (0,0,vel)
+
+# facets
+facets = []
+if testType == 'cyl':
+	rCyl2 = .5*width / cos(pi/float(nw))
+	for r in xrange(nw):
+		for h in xrange(nh):
+			v1 = Vector3( rCyl2*cos(2*pi*(r+0)/float(nw)), rCyl2*sin(2*pi*(r+0)/float(nw)), height*(h+0)/float(nh) )
+			v2 = Vector3( rCyl2*cos(2*pi*(r+1)/float(nw)), rCyl2*sin(2*pi*(r+1)/float(nw)), height*(h+0)/float(nh) )
+			v3 = Vector3( rCyl2*cos(2*pi*(r+1)/float(nw)), rCyl2*sin(2*pi*(r+1)/float(nw)), height*(h+1)/float(nh) )
+			v4 = Vector3( rCyl2*cos(2*pi*(r+0)/float(nw)), rCyl2*sin(2*pi*(r+0)/float(nw)), height*(h+1)/float(nh) )
+			f1 = facet((v1,v2,v3),color=(0,0,1),material=frictMat)
+			f2 = facet((v1,v3,v4),color=(0,0,1),material=frictMat)
+			facets.extend((f1,f2))
+elif testType == 'cube':
+	nw2 = nw/4
+	for r in xrange(nw2):
+		for h in xrange(nh):
+			v11 = Vector3( -.5*width + (r+0)*width/nw2, -.5*width, height*(h+0)/float(nh) )
+			v12 = Vector3( -.5*width + (r+1)*width/nw2, -.5*width, height*(h+0)/float(nh) )
+			v13 = Vector3( -.5*width + (r+1)*width/nw2, -.5*width, height*(h+1)/float(nh) )
+			v14 = Vector3( -.5*width + (r+0)*width/nw2, -.5*width, height*(h+1)/float(nh) )
+			f11 = facet((v11,v12,v13),color=(0,0,1),material=frictMat)
+			f12 = facet((v11,v13,v14),color=(0,0,1),material=frictMat)
+			v21 = Vector3( +.5*width, -.5*width + (r+0)*width/nw2, height*(h+0)/float(nh) )
+			v22 = Vector3( +.5*width, -.5*width + (r+1)*width/nw2, height*(h+0)/float(nh) )
+			v23 = Vector3( +.5*width, -.5*width + (r+1)*width/nw2, height*(h+1)/float(nh) )
+			v24 = Vector3( +.5*width, -.5*width + (r+0)*width/nw2, height*(h+1)/float(nh) )
+			f21 = facet((v21,v22,v23),color=(0,0,1),material=frictMat)
+			f22 = facet((v21,v23,v24),color=(0,0,1),material=frictMat)
+			v31 = Vector3( +.5*width - (r+0)*width/nw2, +.5*width, height*(h+0)/float(nh) )
+			v32 = Vector3( +.5*width - (r+1)*width/nw2, +.5*width, height*(h+0)/float(nh) )
+			v33 = Vector3( +.5*width - (r+1)*width/nw2, +.5*width, height*(h+1)/float(nh) )
+			v34 = Vector3( +.5*width - (r+0)*width/nw2, +.5*width, height*(h+1)/float(nh) )
+			f31 = facet((v31,v32,v33),color=(0,0,1),material=frictMat)
+			f32 = facet((v31,v33,v34),color=(0,0,1),material=frictMat)
+			v41 = Vector3( -.5*width, +.5*width - (r+0)*width/nw2, height*(h+0)/float(nh) )
+			v42 = Vector3( -.5*width, +.5*width - (r+1)*width/nw2, height*(h+0)/float(nh) )
+			v43 = Vector3( -.5*width, +.5*width - (r+1)*width/nw2, height*(h+1)/float(nh) )
+			v44 = Vector3( -.5*width, +.5*width - (r+0)*width/nw2, height*(h+1)/float(nh) )
+			f41 = facet((v41,v42,v43),color=(0,0,1),material=frictMat)
+			f42 = facet((v41,v43,v44),color=(0,0,1),material=frictMat)
+			facets.extend((f11,f12,f21,f22,f31,f32,f41,f42))
+O.bodies.append(facets)
+mass = O.bodies[0].state.mass
+for f in facets:
+	f.state.mass = mass
+	f.state.blockedDOFs = 'XYZz'
+
+# plots 
+plot.plots = { 'e':('s',), }
+def plotAddData():
+	f1 = sum(O.forces.f(b.id)[2] for b in top)
+	f2 = sum(O.forces.f(b.id)[2] for b in bot)
+	f = .5*(f2-f1)
+	s = f/(pi*.25*width*width) if testType=='cyl' else f/(width*width) if testType=='cube' else None
+	e = (top[0].state.displ()[2] - bot[0].state.displ()[2]) / (height-rParticle*2*bcCoeff)
+	plot.addData(
+		i = O.iter,
+		s = s,
+		e = e,
+	)
+
+# apply prestress to facets
+def addForces():
+	for f in facets:
+		n = f.shape.normal
+		a = f.shape.area
+		O.forces.addF(f.id,preStress*a*n)
+
+# stop condition and exit of the simulation
+def stopIfDamaged(maxEps=5e-3):
+	extremum = max(abs(s) for s in plot.data['s'])
+	s = abs(plot.data['s'][-1])
+	e = abs(plot.data['e'][-1])
+	if O.iter < 1000 or s > .5*extremum and e < maxEps:
+		return
+	f = os.path.join(exportDir,fileName)
+	print 'gnuplot',plot.saveGnuplot(f,term='png')
+	if runGnuplot:
+		import subprocess
+		os.chdir(exportDir)
+		subprocess.Popen(['gnuplot',f+'.gnuplot']).wait()
+	print 'Simulation finished'
+	O.pause()
+	#sys.exit(0) # results in some threading exception
+
+O.dt=.5*utils.PWaveTimeStep()
+enlargeFactor=1.5
+O.engines=[
+	ForceResetter(),
+	InsertionSortCollider([
+		Bo1_Sphere_Aabb(aabbEnlargeFactor=enlargeFactor,label='bo1s'),
+		Bo1_Facet_Aabb()
+	]),
+	InteractionLoop(
+		[
+			Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=enlargeFactor,label='ss2d3dg'),
+			Ig2_Facet_Sphere_ScGeom(),
+		],
+		[
+			Ip2_CpmMat_CpmMat_CpmPhys(cohesiveThresholdIter=O.iter+5),
+			Ip2_FrictMat_CpmMat_FrictPhys(),
+			Ip2_FrictMat_FrictMat_FrictPhys(),
+		],
+		[
+			Law2_ScGeom_CpmPhys_Cpm(),
+			Law2_ScGeom_FrictPhys_CundallStrack(),
+		],
+	),
+	PyRunner(iterPeriod=1,command="addForces()"),
+	NewtonIntegrator(damping=.3),
+	CpmStateUpdater(iterPeriod=50,label='cpmStateUpdater'),
+	PyRunner(command='plotAddData()',iterPeriod=10),
+	PyRunner(iterPeriod=50,command='stopIfDamaged()'),
+]
+
+# run one step
+O.step()
+
+# reset interaction detection enlargement
+bo1s.aabbEnlargeFactor=ss2d3dg.interactionDetectionFactor=1.0
+
+# initialize auto-updated plot
+if runInGui:
+	plot.plot()
+	try:
+		from yade import qt
+		renderer=qt.Renderer()
+		# uncomment following line to exagerate displacement
+		#renderer.dispScale=(100,100,100)
+	except:
+		pass
+
+# run
+O.run()

=== modified file 'examples/concrete/uniax.py'
--- examples/concrete/uniax.py	2013-04-24 19:49:00 +0000
+++ examples/concrete/uniax.py	2013-05-27 06:02:45 +0000
@@ -130,7 +130,7 @@
 	O.step(); # to create initial contacts
 	# now reset the interaction radius and go ahead
 	ss2sc.interactionDetectionFactor=1.
-	is2aabb.aabbEnlargeFactor=-1.
+	is2aabb.aabbEnlargeFactor=1.
 
 	O.run()
 
@@ -143,7 +143,6 @@
 	if extremum==0: return
 	# uncomment to get graph for the very first time stopIfDamaged() is called
 	#eudoxos.estimatePoissonYoung(principalAxis=axis,stress=strainer.avgStress,plot=True,cutoff=0.3)
-	print O.tags['id'],mode,strainer.strain,sigma[-1]
 	import sys;	sys.stdout.flush()
 	if abs(sigma[-1]/extremum)<minMaxRatio or abs(strainer.strain)>(5e-3 if isoPrestress==0 else 5e-2):
 		if mode=='tension' and doModes & 2: # only if compression is enabled
@@ -163,8 +162,8 @@
 			title=O.tags['description'] if 'description' in O.tags.keys() else O.tags['params']
 			print 'gnuplot',plot.saveGnuplot(O.tags['id'],title=title)
 			print 'Bye.'
-			#O.pause()
-			sys.exit(0)
+			O.pause()
+			#sys.exit(0) # results in some threading exception
 		
 def addPlotData():
 	yade.plot.addData({'t':O.time,'i':O.iter,'eps':strainer.strain,'sigma':strainer.avgStress+isoPrestress,

=== modified file 'gui/qt4/OpenGLManager.cpp'
--- gui/qt4/OpenGLManager.cpp	2010-09-23 09:17:40 +0000
+++ gui/qt4/OpenGLManager.cpp	2013-05-29 09:48:51 +0000
@@ -41,7 +41,7 @@
 
 void OpenGLManager::closeViewSlot(int id){
 	boost::mutex::scoped_lock lock(viewsMutex);
-	for(size_t i=views.size()-1; (!views[i]) && i>=0; i--){ views.resize(i); } // delete empty views from the end
+	for(size_t i=views.size()-1; (!views[i]); i--){ views.resize(i); } // delete empty views from the end
 	if(id<0){ // close the last one existing
 		assert(*views.rbegin()); // this should have been sanitized by the loop above
 		views.resize(views.size()-1); // releases the pointer as well

=== modified file 'lib/import/STLReader.hpp'
--- lib/import/STLReader.hpp	2012-04-30 23:31:20 +0000
+++ lib/import/STLReader.hpp	2013-05-29 09:48:51 +0000
@@ -125,7 +125,7 @@
 	ret=fscanf(fp, "%*s %f %f %f\n", &v[2][0],  &v[2][1],  &v[2][2]);
 	ret=fscanf(fp, "%*s"); // end loop
 	ret=fscanf(fp, "%*s"); // end facet
-	if(ret < 0 || feof(fp)) break;
+	if(feof(fp)) break;
 
 	int vid[3];
 	for(int i=0;i<3;++i)

=== modified file 'pkg/common/Cylinder.hpp'
--- pkg/common/Cylinder.hpp	2012-11-22 14:32:53 +0000
+++ pkg/common/Cylinder.hpp	2013-05-29 09:48:51 +0000
@@ -256,8 +256,6 @@
                                      );
     FUNCTOR2D(CylScGeom6D,CohFrictPhys);
     DECLARE_LOGGER;
-private:
-    Real currentContactPhysics;
 
 };
 REGISTER_SERIALIZABLE(Law2_CylScGeom6D_CohFrictPhys_CohesionMoment);
@@ -281,8 +279,6 @@
                                      );
     FUNCTOR2D(ChCylGeom6D,CohFrictPhys);
     DECLARE_LOGGER;
-private:
-    Real currentContactPhysics;
 
 };
 REGISTER_SERIALIZABLE(Law2_ChCylGeom6D_CohFrictPhys_CohesionMoment);

=== modified file 'pkg/common/Facet.cpp'
--- pkg/common/Facet.cpp	2011-02-14 08:05:09 +0000
+++ pkg/common/Facet.cpp	2013-05-24 16:48:19 +0000
@@ -25,7 +25,10 @@
 	#define CHECK_EDGE(i) if(e[i].squaredNorm()==0){LOG_FATAL("Facet has coincident vertices "<<i<<" ("<<vertices[i]<<") and "<<(i+1)%3<<" ("<<vertices[(i+1)%3]<<")!");}
 		CHECK_EDGE(0); CHECK_EDGE(1);CHECK_EDGE(2);
 	#undef CHECK_EDGE
-	normal = e[0].cross(e[1]); normal.normalize();
+	normal = e[0].cross(e[1]);
+	area = .5*normal.norm();
+	normal /= 2*area;
+	//normal.normalize();
 	for(int i=0; i<3; ++i){
 		ne[i]=e[i].cross(normal); ne[i].normalize();
 		vl[i]=vertices[i].norm();

=== modified file 'pkg/common/Facet.hpp'
--- pkg/common/Facet.hpp	2011-02-14 08:05:09 +0000
+++ pkg/common/Facet.hpp	2013-05-24 16:48:19 +0000
@@ -38,6 +38,7 @@
 	YADE_CLASS_BASE_DOC_ATTRS_CTOR_PY(Facet,Shape,"Facet (triangular particle) geometry.",
 		((vector<Vector3r>,vertices,vector<Vector3r>(3,Vector3r(NaN,NaN,NaN)),(Attr::triggerPostLoad | Attr::noResize),"Vertex positions in local coordinates."))
 		((Vector3r,normal,Vector3r(NaN,NaN,NaN),(Attr::readonly | Attr::noSave),"Facet's normal"))
+		((Real,area,NaN,(Attr::readonly | Attr::noSave),"Facet's area"))
 		#ifdef FACET_TOPO
 		((vector<Body::id_t>,edgeAdjIds,vector<Body::id_t>(3,Body::ID_NONE),,"Facet id's that are adjacent to respective edges [experimental]"))
 		((vector<Real>,edgeAdjHalfAngle,vector<Real>(3,0),,"half angle between normals of this facet and the adjacent facet [experimental]"))

=== modified file 'pkg/dem/CohesiveFrictionalContactLaw.hpp'
--- pkg/dem/CohesiveFrictionalContactLaw.hpp	2012-07-13 10:23:18 +0000
+++ pkg/dem/CohesiveFrictionalContactLaw.hpp	2013-05-29 09:48:51 +0000
@@ -34,8 +34,6 @@
 	);
 	FUNCTOR2D(ScGeom6D,CohFrictPhys);
 	DECLARE_LOGGER;
-	private:
-	Real currentContactPhysics;
 };
 REGISTER_SERIALIZABLE(Law2_ScGeom6D_CohFrictPhys_CohesionMoment);
 

=== modified file 'pkg/dem/GlobalStiffnessTimeStepper.cpp'
--- pkg/dem/GlobalStiffnessTimeStepper.cpp	2013-02-04 18:23:35 +0000
+++ pkg/dem/GlobalStiffnessTimeStepper.cpp	2013-05-24 16:48:19 +0000
@@ -13,6 +13,7 @@
 #include<yade/core/Interaction.hpp>
 #include<yade/core/Scene.hpp>
 #include<yade/core/Clump.hpp>
+#include<yade/pkg/dem/Shop.hpp>
 
 CREATE_LOGGER(GlobalStiffnessTimeStepper);
 YADE_PLUGIN((GlobalStiffnessTimeStepper));

=== modified file 'pkg/dem/HertzMindlin.hpp'
--- pkg/dem/HertzMindlin.hpp	2011-11-23 12:09:58 +0000
+++ pkg/dem/HertzMindlin.hpp	2013-05-29 11:54:22 +0000
@@ -118,9 +118,6 @@
 
 /******************** Law2_ScGeom_MindlinPhys_Mindlin *********/
 class Law2_ScGeom_MindlinPhys_Mindlin: public LawFunctor{
-		// just for the deprecation warning, can be removed later
-		Real _beta_parameters_of_Ip2_FrictMat_FrictMat_MindlinPhys; 
-		bool _nothing;
 	public:
 
 		virtual void go(shared_ptr<IGeom>& _geom, shared_ptr<IPhys>& _phys, Interaction* I);
@@ -149,9 +146,6 @@
 			((OpenMPAccumulator<Real>,shearDampDissip,,Attr::noSave,"Energy dissipated by tangential damping"))						
 			
 			, /*deprec*/
-			((betan,_beta_parameters_of_Ip2_FrictMat_FrictMat_MindlinPhys,"!Moved to MindlinPhys, where the value is assigned by the appropriate Ip2 functor."))
-			((betas,_beta_parameters_of_Ip2_FrictMat_FrictMat_MindlinPhys,"!Moved to MindlinPhys, where the value is assigned by the appropriate Ip2 functor."))
-			((useDamping,_nothing,"Damping is now turned on automatically if either of MindlinPhys.betan or MindlinPhys.betas or MindlinPhys.alpha are non-zero."))
 			, /* init */
 			, /* ctor */
 			, /* py */

=== modified file 'pkg/dem/KinemCTDEngine.hpp'
--- pkg/dem/KinemCTDEngine.hpp	2010-11-07 11:46:20 +0000
+++ pkg/dem/KinemCTDEngine.hpp	2013-05-29 09:48:51 +0000
@@ -14,8 +14,7 @@
 class KinemCTDEngine : public KinemSimpleShearBox
 {
 	private :
-		Real	dalpha	// the increment over alpha to set, to cancel the offset due to vertical displacement of upper box
-			,current_sigma		// Computed in kPa
+		Real current_sigma		// Computed in kPa
 			;
 
 		int		temoin;

=== modified file 'pkg/dem/KinemSimpleShearBox.cpp'
--- pkg/dem/KinemSimpleShearBox.cpp	2011-05-12 15:13:50 +0000
+++ pkg/dem/KinemSimpleShearBox.cpp	2013-05-29 09:48:51 +0000
@@ -194,7 +194,7 @@
 // 	cout << "Alors que f0 =  = "<< f0 << endl;
 // 	cout << "Car terme correctif = " << KnC * 1.0e9 * Scontact * (hCurrent-y0)<< endl;
 
-	if( (stiffness==0) )
+	if( stiffness==0 )
 	{
 		deltaH=0;
 		cerr << "Stiffness(sample) = 0 => DNC in fact : not CNL or CNS..." << endl;

=== modified file 'pkg/dem/Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment.hpp'
--- pkg/dem/Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment.hpp	2013-05-14 21:24:11 +0000
+++ pkg/dem/Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment.hpp	2013-05-29 09:48:51 +0000
@@ -28,7 +28,5 @@
 	);
 	FUNCTOR2D(ScGeom6D,InelastCohFrictPhys);
 	DECLARE_LOGGER;
-	private:
-	Real currentContactPhysics;
 };
 REGISTER_SERIALIZABLE(Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment);

=== modified file 'pkg/dem/SpherePack.cpp'
--- pkg/dem/SpherePack.cpp	2013-03-07 18:28:01 +0000
+++ pkg/dem/SpherePack.cpp	2013-05-23 14:20:26 +0000
@@ -448,19 +448,18 @@
 	const int maxTry=200;
 	int nGen=0; // number of clumps generated
 	// random point coordinate generator, with non-zero margins if aperiodic
-	static boost::minstd_rand randGen(seed!=0?seed:(int)TimingInfo::getNow(/* get the number even if timing is disabled globally */ true));
-	typedef boost::variate_generator<boost::minstd_rand&, boost::uniform_real<> > UniRandGen;
-	static UniRandGen rndX(randGen,boost::uniform_real<>(mn[0],mx[0]));
-	static UniRandGen rndY(randGen,boost::uniform_real<>(mn[1],mx[1]));
-	static UniRandGen rndZ(randGen,boost::uniform_real<>(mn[2],mx[2]));
-	static UniRandGen rndUnit(randGen,boost::uniform_real<>(0,1));
+ 	static boost::minstd_rand randGen(seed!=0?seed:(int)TimingInfo::getNow(/* get the number even if timing is disabled globally */ true));
+ 	static boost::variate_generator<boost::minstd_rand&, boost::uniform_real<Real> > rnd(randGen, boost::uniform_real<Real>(0,1));
 	while(nGen<num || num<0){
-		int clumpChoice=rand()%clumps.size();
+		int clumpChoice=(int)(rnd()*(clumps.size()-1e-20));
 		int tries=0;
 		while(true){ // check for tries at the end
-			Vector3r pos(rndX(),rndY(),rndZ()); // random point
+			Vector3r pos(0.,0.,0.);
+			for(int i=0;i<3;i++){
+				pos[i]=rnd()*(mx[i]-mn[i])+mn[i];
+			}
 			// TODO: check this random orientation is homogeneously distributed
-			Quaternionr ori(rndUnit(),rndUnit(),rndUnit(),rndUnit()); ori.normalize();
+			Quaternionr ori(rnd(),rnd(),rnd(),rnd()); ori.normalize();
 			// copy the packing and rotate
 			SpherePack C(clumps[clumpChoice]); C.rotateAroundOrigin(ori); C.translate(pos);
 			const Real& rad(boundRad[clumpChoice]);

=== modified file 'pkg/dem/SpherePack.hpp'
--- pkg/dem/SpherePack.hpp	2013-03-07 18:28:01 +0000
+++ pkg/dem/SpherePack.hpp	2013-05-29 09:48:51 +0000
@@ -133,7 +133,7 @@
 
 	// iteration 
 	size_t len() const{ return pack.size(); }
-	python::tuple getitem(size_t idx){ if(idx<0 || idx>=pack.size()) throw runtime_error("Index "+lexical_cast<string>(idx)+" out of range 0.."+lexical_cast<string>(pack.size()-1)); return pack[idx].asTuple(); }
+	python::tuple getitem(size_t idx){ if(idx>=pack.size()) throw runtime_error("Index "+lexical_cast<string>(idx)+" out of range 0.."+lexical_cast<string>(pack.size()-1)); return pack[idx].asTuple(); }
 	struct _iterator{
 		const SpherePack& sPack; size_t pos;
 		_iterator(const SpherePack& _sPack): sPack(_sPack), pos(0){}

=== modified file 'pkg/dem/TriaxialStateRecorder.hpp'
--- pkg/dem/TriaxialStateRecorder.hpp	2010-11-12 08:03:16 +0000
+++ pkg/dem/TriaxialStateRecorder.hpp	2013-05-29 09:48:51 +0000
@@ -27,7 +27,6 @@
 {
 	private :
 		shared_ptr<TriaxialStressController> triaxialStressController; 
-		bool changed;
 	public :
 		virtual ~TriaxialStateRecorder ();
 		virtual void action();

=== modified file 'pkg/dem/ViscoelasticPM.cpp'
--- pkg/dem/ViscoelasticPM.cpp	2012-09-21 19:03:18 +0000
+++ pkg/dem/ViscoelasticPM.cpp	2013-05-28 06:22:52 +0000
@@ -4,6 +4,7 @@
 #include<yade/pkg/dem/ScGeom.hpp>
 #include<yade/core/Omega.hpp>
 #include<yade/core/Scene.hpp>
+#include<yade/pkg/common/Sphere.hpp>
 
 YADE_PLUGIN((ViscElMat)(ViscElPhys)(Ip2_ViscElMat_ViscElMat_ViscElPhys)(Law2_ScGeom_ViscElPhys_Basic));
 
@@ -25,6 +26,8 @@
 	const Real ks1 = mat1->ks*mass1; const Real cs1 = mat1->cs*mass1;
 	const Real kn2 = mat2->kn*mass2; const Real cn2 = mat2->cn*mass2;
 	const Real ks2 = mat2->ks*mass2; const Real cs2 = mat2->cs*mass2;
+	
+		
 	ViscElPhys* phys = new ViscElPhys();
 	
 	if ((kn1>0) or (kn2>0)) {
@@ -43,7 +46,33 @@
 	
 	phys->tangensOfFrictionAngle = std::tan(std::min(mat1->frictionAngle, mat2->frictionAngle)); 
 	phys->shearForce = Vector3r(0,0,0);
-	//phys->prevNormal = Vector3r(0,0,0);
+	
+	if (mat1->Capillar and mat2->Capillar)  {
+		if (mat1->Vb == mat2->Vb) {
+			phys->Vb = mat1->Vb;
+		} else {
+			throw runtime_error("Vb should be equal for both particles!.");
+		}
+		
+		if (mat1->gamma == mat2->gamma) {
+			phys->gamma = mat1->gamma;
+		} else {
+			throw runtime_error("Gamma should be equal for both particles!.");
+		}
+	
+		if (mat1->theta == mat2->theta) {
+			phys->theta = (mat1->theta*M_PI/180.0);
+		} else {
+			throw runtime_error("Theta should be equal for both particles!.");
+		}
+		if (mat1->CapillarType == mat2->CapillarType and mat2->CapillarType != ""){
+			phys->CapillarType = mat1->CapillarType;
+		} else {
+			throw runtime_error("CapillarType should be equal for both particles!.");
+		}
+		phys->Capillar=true;
+	}
+	
 	interaction->phys = shared_ptr<ViscElPhys>(phys);
 }
 
@@ -57,23 +86,48 @@
 	const int id2 = I->getId2();
 	
 	if (geom.penetrationDepth<0) {
- 		scene->interactions->requestErase(I);
-		return;
-	}
+		if (phys.liqBridgeCreated and -geom.penetrationDepth<phys.sCrit and phys.Capillar) {
+			phys.normalForce = -calculateCapillarForce(geom, phys)*geom.normal;
+		  if (I->isActive) {
+				addForce (id1,-phys.normalForce,scene);
+				addForce (id2, phys.normalForce,scene);
+			};
+			return;
+		} else {
+			scene->interactions->requestErase(I);
+			return;
+		};
+	};
 
 	const BodyContainer& bodies = *scene->bodies;
 
 	const State& de1 = *static_cast<State*>(bodies[id1]->state.get());
 	const State& de2 = *static_cast<State*>(bodies[id2]->state.get());
 
+  /*
+   * This part for implementation of the capillar model.
+   * All main equations are in calculateCapillarForce function. 
+   * There is only the determination of critical distance between spheres, 
+   * after that the liquid bridge will be broken.
+   */ 
+   
+	if (not(phys.liqBridgeCreated) and phys.Capillar) {
+		phys.liqBridgeCreated = true;
+		phys.sCrit = (1+0.5*phys.theta)*(pow(phys.Vb,1/3.0) + 0.1*pow(phys.Vb,2.0/3.0));   // [Willett2000], equation (15), use the full-length e.g 2*Sc
+		Sphere* s1=dynamic_cast<Sphere*>(bodies[id1]->shape.get());
+		Sphere* s2=dynamic_cast<Sphere*>(bodies[id2]->shape.get());
+		if (s1 and s2) {
+			phys.R = 2 * s1->radius * s2->radius / (s1->radius + s2->radius);
+		} else if (s1 and not(s2)) {
+			phys.R = s1->radius;
+		} else {
+			phys.R = s2->radius;
+		}
+	}
+
 	Vector3r& shearForce = phys.shearForce;
 	if (I->isFresh(scene)) shearForce=Vector3r(0,0,0);
 	const Real& dt = scene->dt;
-	//Vector3r axis = phys.prevNormal.cross(geom.normal);
-	//shearForce -= shearForce.cross(axis);
-	//const Real angle = dt*0.5*geom.normal.dot(de1.angVel + de2.angVel);
-	//axis = angle*geom.normal;
-	//shearForce -= shearForce.cross(axis);
 	shearForce = geom.rotate(shearForce);
 	
 
@@ -113,6 +167,7 @@
 	}
 	
 	if (I->isActive) {
+		//std::cerr<<"Contact: "<<phys.normalForce<<std::endl;
 		const Vector3r f = phys.normalForce + shearForce + shearForceVisc;
 		addForce (id1,-f,scene);
 		addForce (id2, f,scene);
@@ -120,3 +175,110 @@
 		addTorque(id2, c2x.cross(f),scene);
   }
 }
+
+Real Law2_ScGeom_ViscElPhys_Basic::calculateCapillarForce(const ScGeom& geom, ViscElPhys& phys) {
+  Real fC = 0.0;
+  
+  /* Capillar
+    * Some equations have constants, which can be calculated only once per contact. 
+    * No need to recalculate them at each step. 
+    * It needs to be fixed.
+    * 
+    */
+     
+  if (phys.CapillarType  == "Weigert") {
+      /* Capillar model from [Weigert1999]
+       */
+        Real R = phys.R;
+        Real a = -geom.penetrationDepth;
+        Real Ca = (1.0 + 6.0*a/(R*2.0));                                                          // [Weigert1999], equation (16)
+        Real Ct = (1.0 + 1.1*sin(phys.theta));                                                    // [Weigert1999], equation (17)
+        
+        /*
+        Real Eps = 0.36;                                                                          // Porosity
+        Real fi = phys.Vb/(2.0*M_PI/6.0*pow(R*2.0,3.));                                           // [Weigert1999], equation (13)
+        Real S = M_PI*(1-Eps)/(pow(Eps, 2.0))*fi;                                                 // [Weigert1999], equation (14)
+        Real beta = asin(pow(((S/0.36)*(pow(Eps, 2.0)/(1-Eps))*(1.0/Ca)*(1.0/Ct)), 1.0/4.0));     // [Weigert1999], equation (19)
+        */
+        
+        Real beta = asin(pow(phys.Vb/(0.12*Ca*Ct*pow(2.0*R, 3.0)), 1.0/4.0));                     // [Weigert1999], equation (15), against Vb
+        
+        Real r1 = (2.0*R*(1-cos(beta)) + a)/(2.0*cos(beta+phys.theta));                           // [Weigert1999], equation (5)
+        Real r2 = R*sin(beta) + r1*(sin(beta+phys.theta)-1);                                      // [Weigert1999], equation (6)
+        Real Pk = phys.gamma*(1/r1 - 1/r2);                                                       /* [Weigert1999], equation (22),
+                                                                                                   * see also a sentence over the equation
+                                                                                                   * "R1 was taken as positive and R2 was taken as negative"
+                                                                                                   */ 
+
+        //fC = M_PI*2.0*R*phys.gamma/(1+tan(0.5*beta));                                           // [Weigert1999], equation (23), [Fisher]
+        
+        fC = M_PI/4.0*pow((2.0*R),2.0)*pow(sin(beta),2.0)*Pk +
+             phys.gamma*M_PI*2.0*R*sin(beta)*sin(beta+phys.theta);                                // [Weigert1999], equation (21)
+        
+      } else if (phys.CapillarType  == "Willett_numeric") {
+      
+        /* Capillar model from [Willett2000]
+         */ 
+        
+        Real R = phys.R;
+        Real s = -geom.penetrationDepth/2.0;
+        Real Vb = phys.Vb;
+        
+        Real VbS = Vb/(R*R*R);
+        Real Th1 = phys.theta;
+        Real Th2 = phys.theta*phys.theta;
+        Real Gamma = phys.gamma;
+        
+        /*
+         * [Willett2000], equations in Anhang
+        */
+        Real f1 = (-0.44507 + 0.050832*Th1 - 1.1466*Th2) + 
+                  (-0.1119 - 0.000411*Th1 - 0.1490*Th2) * log(VbS) +
+                  (-0.012101 - 0.0036456*Th1 - 0.01255*Th2) *log(VbS)*log(VbS) +
+                  (-0.0005 - 0.0003505*Th1 - 0.00029076*Th2) *log(VbS)*log(VbS)*log(VbS);
+        
+        Real f2 = (1.9222 - 0.57473*Th1 - 1.2918*Th2) +
+                  (-0.0668 - 0.1201*Th1 - 0.22574*Th2) * log(VbS) +
+                  (-0.0013375 - 0.0068988*Th1 - 0.01137*Th2) *log(VbS)*log(VbS);
+                  
+        Real f3 = (1.268 - 0.01396*Th1 - 0.23566*Th2) +
+                  (0.198 + 0.092*Th1 - 0.06418*Th2) * log(VbS) +
+                  (0.02232 + 0.02238*Th1 - 0.009853*Th2) *log(VbS)*log(VbS) +
+                  (0.0008585 + 0.001318*Th1 - 0.00053*Th2) *log(VbS)*log(VbS)*log(VbS);
+        
+        Real f4 = (-0.010703 + 0.073776*Th1 - 0.34742*Th2) +
+                  (0.03345 + 0.04543*Th1 - 0.09056*Th2) * log(VbS) +
+                  (0.0018574 + 0.004456*Th1 - 0.006257*Th2) *log(VbS)*log(VbS);
+  
+        Real sPl = s/sqrt(Vb/R);
+        
+        Real lnFS = f1 - f2*exp(f3*log(sPl) + f4*log(sPl)*log(sPl));
+        Real FS = exp(lnFS);
+        
+        fC = FS * 2.0 * M_PI* R * Gamma;
+      } else if (phys.CapillarType  == "Willett_analytic") {
+        /* Capillar model from Willet [Willett2000] (analytical solution), but 
+         * used also in the work of Herminghaus [Herminghaus2005]
+         */
+         
+        Real R = phys.R;
+        Real Gamma = phys.gamma;
+        Real s = -geom.penetrationDepth;
+        Real Vb = phys.Vb;
+                
+        /*
+        
+        Real sPl = s/sqrt(Vb/R);                                                            // [Herminghaus2005], equation (sentence between (7) and (8))
+        fC = 2.0 * M_PI* R * Gamma * cos(phys.theta)/(1 + 1.05*sPl + 2.5 *sPl * sPl);       // [Herminghaus2005], equation (7)
+        
+        */ 
+        
+        Real sPl = (s/2.0)/sqrt(Vb/R);                                                      // [Willett2000], equation (sentence after (11)), s - half-separation, so s*2.0
+        Real f_star = cos(phys.theta)/(1 + 2.1*sPl + 10.0 * pow(sPl, 2.0));                 // [Willett2000], equation (12)
+        fC = f_star * (2*M_PI*R*Gamma);                                                     // [Willett2000], equation (13), against F
+        
+      } else {
+        throw runtime_error("CapillarType is unknown, please, use only Willett_numeric, Willett_analytic or Weigert");
+      }
+  return fC;
+}

=== modified file 'pkg/dem/ViscoelasticPM.hpp'
--- pkg/dem/ViscoelasticPM.hpp	2012-09-21 19:03:18 +0000
+++ pkg/dem/ViscoelasticPM.hpp	2013-05-28 06:22:52 +0000
@@ -21,7 +21,12 @@
 		((Real,cn,NaN,,"Normal viscous constant"))
 		((Real,ks,NaN,,"Shear elastic stiffness"))
 		((Real,cs,NaN,,"Shear viscous constant"))
-		((Real,frictionAngle,NaN,,"Friction angle [rad]")),
+		((Real,frictionAngle,NaN,,"Friction angle [rad]"))
+		((bool,Capillar,false,,"True, if capillar forces need to be added."))
+		((Real,Vb,NaN,,"Liquid bridge volume [m^3]"))
+		((Real,gamma,NaN,,"Surface tension [N/m]"))
+		((Real,theta,NaN,,"Contact angle [°]"))
+		((std::string,CapillarType,"",,"Different types of capillar interaction: Willett_numeric, Willett_analytic [Willett2000]_ , Weigert [Weigert1999]_ ")),
 		createIndex();
 	);
 	REGISTER_CLASS_INDEX(ViscElMat,Material);
@@ -32,9 +37,17 @@
 class ViscElPhys : public FrictPhys{
 	public:
 		virtual ~ViscElPhys();
+		Real R;
 	YADE_CLASS_BASE_DOC_ATTRS_CTOR(ViscElPhys,FrictPhys,"IPhys created from :yref:`ViscElMat`, for use with :yref:`Law2_ScGeom_ViscElPhys_Basic`.",
 		((Real,cn,NaN,,"Normal viscous constant"))
-		((Real,cs,NaN,,"Shear viscous constant")),
+		((Real,cs,NaN,,"Shear viscous constant"))
+		((bool,Capillar,false,,"True, if capillar forces need to be added."))
+		((bool,liqBridgeCreated,false,,"Whether liquid bridge was created, only after a normal contact of spheres"))
+		((Real,sCrit,false,,"Critical bridge length [m]"))
+		((Real,Vb,NaN,,"Liquid bridge volume [m^3]"))
+		((Real,gamma,NaN,,"Surface tension [N/m]"))
+		((Real,theta,NaN,,"Contact angle [rad]"))
+		((std::string,CapillarType,"",,"Different types of capillar interaction: Willett, Weigert, Herminghaus")),
 		createIndex();
 	)
 };
@@ -58,6 +71,8 @@
 class Law2_ScGeom_ViscElPhys_Basic: public LawFunctor {
 	public :
 		virtual void go(shared_ptr<IGeom>&, shared_ptr<IPhys>&, Interaction*);
+	private:
+		Real calculateCapillarForce(const ScGeom& geom, ViscElPhys& phys);
 	FUNCTOR2D(ScGeom,ViscElPhys);
 	YADE_CLASS_BASE_DOC(Law2_ScGeom_ViscElPhys_Basic,LawFunctor,"Linear viscoelastic model operating on :yref:`ScGeom` and :yref:`ViscElPhys`.");
 };