Release NEWS

From Yade

(Redirected from Changelog)

Please check on GitHub for the latests release notes.

Some older release notes are listed below.

YADE 0.12.1, beta release

  • several python interface improvements
  • add code for plotting histogram of interaction directions
  • added buttons for looking from different directions
  • new contact algorithm for facets
  • added python script for making videos
  • added a TCP server on port 9000 with python console in it
  • new dependency on python-numpy package, which allows faster math in python
  • added a script for parametric studies

YADE 0.12.0, beta release

  • User interface:
    • Refactored Qt3 interface: MDI with simulation running asynchronously, with python console
    • Python wrapper and console with the ability to control most simulation aspects (including creating simulations, modifying, inspecting, running, recording data), some parts of the UI (setting view, configuring renderer); see scripts/ to get started (
    • Much enhanced simulation recorder and player, saving optionally to a single file (sqlite database), the ability to create video from simulation with one command (may be done offscreen as well): scripts/,
  • Graphical Viewer:
    • up to 3 clipping planes in the GLViewer, can be manipulated, bound to each other, activated/deactivated
    • saving view to view configurations inside MetaBody (Alt+7 -- Alt+9), can be loaded later (from python as well)
    • displacement and rotation scaling in GLViewer, using PhysicalParameters::refSe3
  • Simulation features:
    • New moment rotation law, fully tested and working
    • All simulation aspects (dt, iteration, virtual time) are now inside MetaBody, i.e. are restored exactly as they were from .xml
    • Much improved triaxial test
    • Lattice model can now simulate concrete with steel fibres
  • New, experimental features:
    • Selectively block any of 6 DOFs ( translation and rotation) for individual bodies (PhysicalParameters::blockedDOFs - not documented, not conveniently accessible from python yet)
    • Plotting interface based on pylab see example in scripts/
    • Sega's facets and vertices with stl import (for example import shapes from blender)
  • Serialization:
    • Transparent support for compressed .xml.gz and .xml.bz2 files; dropped support for binary format
    • The (de)serializer now (un)escapes all control characters, using the &charname; format, arbitrary string values can be de/serialized now, including parentheses, quotations marks, newlines, tabs, <>.
  • Compilation / Development:
    • Compilation profiles allow separate option sets for scons; simultaneous compilation of multiple profiles is supported via the profile=a,b,c
    • QGLViewer source is now in our tree, no need to install it separately

"Yade Open DEM: small bugfixes in TriaxialTest", beta release, yade 0.11.1

  • added yade.spec for fedora (should work)
  • small bugfixes in TriaxialTest and amd64 compilation

"Yade Open DEM: no more license problems", beta release, yade 0.11.0

  • As a result of voting on the mailing list call the Discrete Element Method component of Yade as Open DEM. Other components, such as Finiete Element Method, Lattice Geometrical Model or Mass Spring may be called Open as well: Open FEM, Open LGM, Open MM.
  • it is possible to select and move bodies by mouse
  • SimulationController sets the timestepper correctly, no need to reload
  • Lattice Geometrical Model to simulate fracture of concrete completed, as a PhD by Janek Kozicki
  • TriaxialTest by Bruno and started Capillary Law by Luc Scholtes
  • yade now can draw forces between spheres (as interactions)
  • deleted swiftpp and qhull to solve license problems, removed ErrorTolerant which was abadoned by Oliver
  • added an example of extending yade (MyTetrahedron)
  • renamed: volatileInteractions -> transientInteractions, ElasticContactParameters -> ElasticContactInteraction
  • removed flag DOUBLE_PRECISION, now everything uses double. No option to use floats, or long doubles.
  • upon crash gdb is called automatically. (if yade was not run from terminal it will look as if yade hangs)
  • yade compiles now with g++ 4.1
  • switch to scons build system, directory tree cleanup
  • new icon

"Just before big changes", beta release, yade-all 0.10.0

  • major improvements to lattice beam model,
  • FEM, DEM, Mass Spring and Rigid Body are working good,
  • added SDECMovingWall FileGenerator example from Andreas Plesh,
  • view can display a grid ('g' key) with cell size exacly 1 meter or 1 cm (depending on the model size),
  • view has reversed meaning of scrollwheel - it is now similar to behaviour of blender and autocad,
  • view mouse middle button is now "PAN" command,
  • view has customizable background color,
  • view drawing is not synchronized, some is from current iteration, some is from previous - should be fixed on next release,
  • with two processors theoretically QtGUI should have speed equal to NullGUI,
  • when idle no processor time is consumed,
  • 'yade -h' will now display compilation flags,
  • added compilation flags: NO_GLUTINIT, QGLVIEWER20 to accomodate newer/older versions of libglut and qglviewer,
  • 'Load' and 'Save' in FileGenerator works and allows to save various generator configurations,
  • added binary save format (smaller and faster save files),
  • can save simulation from simulation controller,
  • added StandAloneEngine.hpp, InteractionSolver.hpp, DataRecorder.hpp, BroadInteractor.hpp - to have a nicer class diagram,
  • SimulationPlayer, QtSimulationPlayer - can play recorded position/orientation data,
  • SphericalDEMSimulator - a separate version of DEM calculations without all "yade burden" to make speed comparisons,
  • a bit of work with documentation,
  • some work towards compiling yade on windows, but no success yet.

yade-all version 0.9.1

  • fixed compilation problem in gcc 4.0.1
  • written some additional explanations in INSTALL file
  • some example input files for filegenerators in yade

"Finally we've got something", beta release, yade version 0.9.0

  • split of packages done. Now each package can be developed separately and has own version numbers,
  • Initial version numbers are choosen arbitrally to reflect their advancement state,
  • huge improvement in Makefile. 'make compile_install' and yade is ready to release to the wild world,
  • some class renamed to better reflect their functions,
  • some cleaning,
  • Simulation loop editing through GUI starts to work,
  • added REGISTER_BASE_CLASS_NAME, so we can build class tree on runtime (used by simulation loop GUI),
  • removed all references from Serialization stuff to yade-lib-multimethod as they are totally unrelated,
  • plugins of yade containers are now using ::iterator, just like STL !
  • Tetrahedron Discrete Model, and Lattice Discrete Model start to work, but not good enough to increment a major revision number,
  • FEM, DEM, Mass Spring and Rigid Body are working good,

yade-all version, beta release

  • yade 0.9.0 is split to many packages, so for easier first install of yade, people can use yade-all package.

to avoid cluttering tags/ directory older tags were deleted, to see them please go to revision 900

yade version 0.8.7

r.801 (*)
  • second redesign of directory tree finished.
  • yade-core is clean
  • yade-empties contain templates for whole packages.
  • New yade-empty-package which is simpler than previous one.
  • Makefiles install correctly.
  • Yade is now compiling with separate libraries projects

yade version 0.8.6

r.714 (*)
  • All those extra environment variables are no longer needed. Currently only LD_LIBRARY_PATH is used by dlopen. Dunno how to remove it.
  • added user manual to doc/, without pictures, and still a draft.
  • Small change so that yade is compiling with qglviewer 2.0
  • Updates in Omega : now foreach plugins we store if it is indexable, factorable or serializable.
  • Improved GUI for code generation : Data class, engine and dispatching engine works. No stuff is done for generation of kdevelop projects.

yade version 0.8.5

r.700 (*)
  • Lattice works with rods, but dirty, of course - as always when something is implemented for the first time :>

yade version 0.8.4

r.688 (*)
  • 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 version 0.8.3

  • Splitted ElasticContactLaw into 2 : ElasticContactLaw and ElasticCohesiveLaw.
  • Autocollision for hanging cloth is working without hack.

yade version 0.8.2

  • new directory structure almost splitted, we start to have packages.
  • Yade is now compiling on the first try.
  • removed initialization in constructor of bodyContainer, InteractionContainer ... because now container are in plugins and so compiled after yade itself.
  • Changed name Dispatcher/funtor to MetaEngine/EngineUnit

yade version 0.8.1

  • we have made a great yade-empty directory structure. This is a design for future split of yade into several packages.

yade version 0.8.0

  • FEM works!

yade version 0.7.5

  • Quite stable version used for course (teaching how to use yade) with Frederic, Emmanuel and Julien.

yade version 0.7.4

  • version used for training with Julien, Frederic, and Luc

yade version 0.7.3

  • 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.
  • 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 posions ratio - as it should.
  • timestepper is working good with that. All examples filegenerators exept FEM are working!

yade version 0.7.2

r.417 (U)
  • damping is separated from SDECDynamicEngine and works, strange is that ActionDampingDispatcher and ActionApplyDispatcher are exactly the same! so they s

yade version 0.7.1

r.416 (U)
  • I have done some general cleaning - removed unnecessary constructors, deleted unused postProcessAttributes, etc..
  • FunctorWrapper is Serializable, now - because we want Dispatcher to work with serialization, so that Functors can get extra arguments from .xml

yade version 0.7.0

r.379 (U)
  • To add BodyPhysicalParameter the OpenGLDispatchers have been added. This greatly separates display from numerics.
  • MassSpring cloth is now working : but we still have to update geometricalModel. Created TimeIntegratorFunctor and Dispatcher. BallisticDynamicEngine is now LeapFrogIntegrator

yade version 0.6.8

r.367 (U)
  • Added single step button in QtGUI
  • Better SpheresPlanes FileGenerator
  • HangingCloth is working again but it is designed using Yade framework

yade version 0.6.7

r.352 (*) (****) (U)
  • small change in ActionDispatcher.cpp, is faster, but if Action was holding body's id it is possible that it can be faster result: 107 seconds is faster compared to 111 seconds
  • tere are a lot of places where we can do improvement like this. if we do code change like here - in every possible places - yade can gain a lot of speed.
  • basically I've discovered that every temporary variable of type shared_ptr costs 3 seconds, so we should avoid creating them and instead pass them around by references - whenever possible.
  • And very iportant to note is that this speed improvement is possible ONLY because we have introduced Action, which is more generic! without this class it would be impossible to get faster. So it means that good generic code allows faster code - at least sometimes - as we have example if this here. The same was with containers - introducing containers made code slower, but it made possible to make improvements in other places (because containers increased genericity) and as a result the code got faster.

yade version 0.6.6

r.345 (*) (U)
  • 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.

yade version 0.6.5

r.342 (B) (U)
  • containers return references (no temporary objects are created)

yade version 0.6.4

r.340 (B) (U)
  • ActionContainer, without creating new pointers everytime.

yade version 0.6.3

r.339 (B) (U)
  • ActionContainer->reset() - faster code.
  • benchmark tests.

yade version 0.6.2

r.338 (B) (U)
  • ActionDispatcher is working
  • dispatcher for creating actions need createIndex() in constructor of all Actions
  • Added classes: Action, ActionVecVec, ActionContainer, ActionForce, ActionMomentum, etc.. but they are empty. And it is compiling

yade version 0.6.1

r.315 (B) (U)
  • version used for benchmark checks
  • small fixes.
  • Real used everywhere instead of floar or double.

yade version 0.6.0

  • 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

yade version 0.5.2

r.254 (U)
  • Finished rearranging subdirectories. Now we have directory extensions (we can rename it,
  • if there is a better name), and ClassFactory is in toolbox/Libraries,
  • yade is now compiling (and works) with g++ 3.3,
  • all .xml examples except ErrorTolerant, are now working,
  • 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,
  • 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,
  • Boxes are now casting shadows,
  • Better handling of thread into GUI.
  • is compiling with double.

yade version 0.5.1

r.232 (B) (U)
  • small fixes, little faster

yade version 0.5.0

r.227 (B) (U)
  • Bounding volume are now both indexalbe and a GeometricalModel,
  • BoundingVolume update is now done in an actor,
  • Improved version of GLWindowManager library,
  • BoundingVolume optimized for each kind of GeometricalModel makes computation almost twice faster

yade version 0.4.8

r.223 (B) (U)
  • scripts are checking all Environement Variables - more safety,
  • fixed missing is_base_and_derived in Indexable.hpp,
  • 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,
  • OpenGLWrapper 50% done - and #DOUBLE_PRECISION works! (float/double),
  • Shadows are working
  • SDECCollision.xml and SDECTetrahedronWithLinks.xml work for dt=0.003,
  • comparing results with older versions.

yade version 0.4.7

r.196 (B) (U)
  • Improved thread management. Multiple views are now working,
  • Improved GUI.
  • scripts that allow easy switching between relative paths and paths in environemnt YADE*PATH variables
  • XMLManager writes pointers in a shorter way, with _className_
  • NullGUI works - for benchmars of Vector3 not in Serializable, etc..

yade version 0.4.6

r.184 (U)
  • New SimulationController is now working
  • Started moving simulation loop from glViewer to a specific thread
  • InteractionContainer and BodyContainer integration completed. but container classes quality/speed is not good (and tested) yet
  • InteractionVecSet and BodyVector done.
  • Added ThreadSynchronizer. Yade is now working with external simulation loop
  • FIXED threading on multi-processor machine (not real multiprocessor, just hyper threading...)
  • rename BodyVector to BodyRedirectionVector

yade version 0.4.5

r.175 (B) (U)
  • Add QtFileGenerator, for automatic file generation with Qt GUI (not completely working yet)
  • QtGuiGenerator and QtFileGenerator are now working
  • BodyContainer starts to work
  • All Qt libraries are now in one library.
  • Created new qt controller for simulation and new opengl library

yade version 0.4.4

r.168 (B) (U)
  • InteractionContainer starts working

yade version 0.4.3

r.165 (B) (U)
  • praparing for InteractionContainer.
  • small fixes

yade version 0.4.2

r.155 (B) (U)
  • better serialization for math stuff.

yade version 0.4.1

r.147 (B) (U)
  • Serialization now supports almost all STL containers from std namespace, boost and Loki containers and more
  • comparing resluts with older revisions.

yade version 0.4.0

r.129 (B) (U)
  • moment rotation law added,
  • unit tests of SDEC with r.90 (checking results correctness)
  • LPC solver for ErrorTolerant computations

yade version 0.3.1

r.112 (B)
  • added NullGUI, so commandline computation is possible

yade version 0.3.0

  • SDEC (DEM) added and works with contact law

yade version 0.2.0

  • with working cloth,
  • rotatingbox and falling boxes.
  • before adding SDEC
  • ClassFactory is now reusable

yade version 0.1.1

  • after adding multimethods and before adding Cloth

yade version 0.1.0

  • initial yade version imported (after 6 months of work by Olivier alone)
  • tagging this version before adding multimethods
  • Rigid Body example works

  • (*) - something important about design goes here, and should be investigated later.
  • (B) - version used for benchamrks.
  • (U) - version used for unit tests.