Yade is a free, open source and extensible framework that can be used for discrete numerical models, especially designed for the Discrete Element Method. Yade's computation parts were written in C++ with the help of the flexible object model, which allows independent implementation of new interfaces and algorithms.
Yet Another Dynamic Engine
Yade stands for Yet Another Dynamic Engine, and it uses Python for concise and rapid scene construction, post-processing, debugging, as well as simulation control. The software is distributed through GitHub, as a source archive, as well as via Launchpad for the Ubuntu Linux operating system.
Under the hood
A quick look under the hood of Yade (Yet Another Dynamic Engine) will show us that the application has been written in the C++ and Python programming languages. It is officially tested with several popular distributions of Linux, including Ubuntu. Both 32-bit and 64-bit hardware platforms are supported at this time.
Getting started with Yade
There are two ways to install this program on your GNU/Linux computer, either by using the pre-built binary packages from the default software repositories of your distribution or by using the universal sources archive provided on Softoware.
Download the tarball (tar.gz) file, extract it somewhere on your path, open a terminal emulator and navigate to the location of the extracted files. Then, run the “cmake .” command (without quotes) to configure the project, followed by the “make” command, without quotes, of course, which will compile the software.
Be aware of Yade requirements, as you will need to install them all in order to deploy the application on your computer using the sources archive, as explained above. After a successful compilation, you must execute the “make install” command as root, without quotes. Please read the official documentation if you get stuck when trying to install Yade.
What is new in this release:
- Remove RELEASE file.
- Simplify definition of build flags
- Fix some warnings during compilation.
- For clang use -fstack-protector instead of -fstack-protector-strong
- Ignore project files of idea IDE
- Refactoring of Math.hpp
- Make minieigen external package mandatory.
- Add -fstack-protector-strong only for gcc >=4.9
- Some warning fixes.
- Add ENABLE_PROFILING option
- Set some metric-measures in ViscElCap.
- Revert adding frounding-math flag
- Replace INSTALL_PREFIX by CMAKE_INSTALL_PREFIX
- Remove deprecated in Yade BOOST_PYTHON_FUNCTION_OVERLOADS macros.
- Fix some more compilation warnings.
- Fix some more compilation warnings.
- Minor fix in CMakeLists.txt
- Fix hexagonal packing, should not be undesired overlap any more.
- Make Serializable.hpp more readable.
- Remove deprecated parameters.
- Move STLReader into STLImporter
- +1 master thesis at TU Freiberg.
- Fix crash by export-VTK of interactions after body removal.
- Split description of ViscoelasticPM to make it more readable.
- Let exist interactions between clumpMembers of the same clump.
- Skip force calculation in SPH-clump
- Add warning about CGAL in Ubuntu 14.04 Trusty
- Add ISC_TIMING pre preprocessor directive.
- Drop support of Ubuntu 12.04 Precise
- Merge pull request #46 from timpovall/master
- Non invasive refactoring of InsertionSortCollider
- Revert previous commit.
- Add a second option to fix the compilation with CGAL on 14.04
- Remove deprecated code with very old boost.
- Implement viscous damping for capillary phase.
- Fix SPH force calculation between clump members.
- Fix compilation with QGLViewer>=2.6.3
- Prepare Qt5-build.
- Fix compilation against gqlviewer-qt4.
- Fix check-script
- +1 conference
- First steps in Qt5.
- Prepare Qt5 build.
- Update python files due to Qt5.
- Some more updates toward Qt5.
- Qt5-migration is alsmot finished.
- Fix Qt5 compilation.
- Fix crash in Qt5.
- Fix QThread issue.
- Add information about compilation against Qt5.
- Add missing function in TesselationWrapper
- Remove some unused headers and defs.
- Fix compilation if openmp is disabled
- Fix compilation introduced in last commit.
- Add talk, hold in Particles 2015
- Add hourglass example
- Add RELEASE file.
- Save relative rotations in ScGeom6D (unmark "nosave") since it is required for reloading correctly.
- CohesiveFrictionalInteractions: removed "nosave" flags for contact moments
- +1 journal paper
- +1 journal paper
- add a virtual function returning rotational stiffness of the interactions - returning zero if not overloaded
- account for the rotational stiffness of interactions in GlobalStiffnessTimeStepper
- apply the spin of the velocity gradient on particles in periodic BCs
- small typo
- Added book chapter
- Installation: http://www.yade-dem.org/packages is required for an external library (eigen or cgal? not sure now)
- more accurate defintion of fluctuational velocity/spin for kinetic energy in periodic BCs
- correct value of volume for id
What is new in version 1.12.0:
- Remove RELEASE file.
- Use toleranceWarning and toleranceCritical for DEM-PFV check.
- Fix crash after clumps removing. Closes LP:1354433
- Add checkClumpHopper autotest.
- Fix crash after removal of the whole clump.
- Fix calculation of massR in ViscoelasticPM
- Fix cs calculation in ViscoelasticPM
- Fix ViscElPM one more time.
- Create an array of clump`s memberIds to remove.
- Return fictional value from deprecated functions.
- Respect returnin value in computeForceTorqueViscEl
- Update Schwager2007 URL
- Add one more paper
- Merge pull request #44 from fifthguy/master
- Add firstIterRun parameter to PyRunner.
- Use system call "sphinx-build" instead of python module.
- Fix compilation error in PeriodicFlow.hpp
- Set python versions explicitly.
- Move function declarations of _utils.cpp into .hpp
- Fix runtime error in debug mode and without openmp.
- Drop including "yade/" folder in cpp and hpp files.
- Fix docs-generation.
- SPH-code refactoring.
- Use only vtkCommonCore vtkIOImage vtkIOXML components for VTK.
- Use Python 2.7 only
- Reintroduce viscosity in SPH-modell.
- Add RELEASE file.
- Bruno Chareyre (33):
- -include UnsaturatedEngine to start Chao's work
- fix a few mistakes and make a real (not empty) test function
- - replace hand-defined positions by scene's positions
- Merge branch 'master' of https://github.com/yade/trunk into chaoUnsat
- remove pack.particleSD and variants, unmaintained and deprecated by makeCloud (functions kept temporarily but returning error)
- fix https://bugs.launchpad.net/yade/+bug/1362090
- fix https://bugs.launchpad.net/yade/+bug/1308074
- fix https://bugs.launchpad.net/yade/+bug/1368591 + remove a useless test
- remove a temporary fix for https://bugs.launchpad.net/yade/+bug/923929, after better fix in https://github.com/yade/trunk/commit/4ea76ad6e47ac5074a389ad61712a0840e8560a5, thanks Anton
- parallel removal of old interactions
- replace LOG_ERROR by LOG_WARN for notifying deprecation of GravityEngine
- improve falling back to 1-thread in parrallel collider (fix https://bugs.launchpad.net/yade/+bug/1368591)
- fix missing brackets resulting in wrong permeability in periodic PFV
- point to Bourrier2013 for a partial explanation of the CohesiveFrictional contact law
- fix doc regarding requestErase() - https://bugs.launchpad.net/yade/+bug/1370736, thanks Jan
- selective blocking of cells of the mesh in FlowEngines (preliminary steps)
- remove empty file
- PFV: don't skip perm calculation for blocked cells, yet
- fix filename
- remove cpp with wrong filename
- reset id of erased bodies; enabling this: b=Body(); O.bodies.erase(O.bodies.append(b)); O.bodies.append(b)
- turn DeprecationWarning (not displayed) into UserWarning (displayed) since the error messages where cryptic
- no indexing of blocked cells in PFV
- decrease verbosity of blocking PFV cells
- DFNFlow unblock cells as fractures reach them + additional attributes in JCFPM
- split resetNetwork and resetLinearSystem + add more getter/setter
- split TwoPhaseFlowEngine in hpp/cpp for inclusion in child engines
- #ifdef guard for openmp function
- don't overwrite imposed fluid pressure when initializing the values (more flexible) + a function returning barycenter + improved "locate" for interpolation
- increased flexibility of imposing fluid pressure in FlowEngine's
- specialized getter/setter's for TwoPhaseFlowEngine + no re-indexing of cells in UnsatEngine
- better #def/#ifdef logic for TwoPhaseFlowEngine
- rename cellCenter->cellBarycenter (missing in prev. commit)
- Chao Yuan (86):
- - my first work on drainage simulation
- Commit the first working code for drainage
- - make the FAR constant more flexible (a parameter in addBoundaries)
- -add poreRadius
- -a test commit to escape big mess...
- Merge github.com:yade/trunk into chaoUnsat
- -add saveLatticeNode functions for generating axial-normal slice with "0" and "1"
- -add isWaterReservoir, isAirReservoir.
- -add another version for drainage.
- -delete unnecessary recursion for invadeSingleCell2()
- Merge github.com:yade/trunk into chaoUnsat
- Merge github.com:yade/trunk into chaoUnsat
- -add UnsatCellInfo, UnsatVertexInfo
- clean code
- -add temp function for pore connection
- Merge github.com:yade/trunk into chaoUnsat
- -update boundary attributes
- -a backup for laptop
- -add UnsatVertexInfo(void) for future use
- -test commit
- -test commit
- Merge remote-tracking branch 'origin/chaoUnsat' into chaoUnsat
- Merge github.com:yade/trunk into chaoUnsat
- -clean code
- add capillaryCellVolume in cellinfo, optimize getSaturation()
- -replace cell->info().p with isAir/WaterReservoir
- -add solidLine in cell info. partly code for force.
- clean code, fix mistake on Facet_Force.
- a test version of computing fluid force.
- fix solidLine[i][j] when facetNFictious case(1).
- -fix noCache.
- -fix solidLine[i][j] when facetNFictious case(2).
- -clean code.
- fix reservoir attr. change boundcells.isWaterReservoir=true when finish drainage.
- clean code.
- add temp test func.
- add cell->info().trapCapP; fix pressure calculation for trapped phase.
- clean code.
- Merge github.com:yade/trunk into chaoUnsat
- clean code.add action()
- add getSaturation2() for mode 2.
- Merge github.com:yade/trunk into chaoUnsat
- borrow saveVTK from FlowEngine
- normalize two invade modes.
- make computeForce optional;a bakcup
- a temporary save, change waterReservoir=bound[2], add invadeBounday option
- -make invade from boundary optional.(default false)
- -fix Line_Solid_Pore() in Network.
- Merge github.com:yade/trunk into chaoUnsat
- -big change, inherit from FlowEngine.
- remove old files
- clean code
- fix force calculation.
- add compute specific interficial area, lots of bugs...
- fix computeCellInterfacialArea with fictious vertex
- -test. no big change.
- Merge github.com:yade/trunk into chaoUnsat
- Merge github.com:yade/trunk into chaoUnsat
- Merge github.com:yade/trunk into chaoUnsat
- -fix ‘python' declared bug
- -clean some info in debug
- -fix core dump in computerForcePoreForceWithCache, currentTes shoule be solver->T[solver->currentTes],NOT solver->T[currentTes]
- Merge github.com:yade/trunk into chaoUnsat
- Merge github.com:yade/trunk into chaoUnsat
- -update with PFV
- -use bndCondValue to mark reservoir.
- -fix reservoirs determination; fix invade(), Pw can be negative (mode1)
- -change invade rule, use bndCondValue to determine invasion. reservoirInfo depends on bndCondValue; merge isInvadeBoundary.(mode1)
- -change invade rule for mode2. merge some functions
- -fix getWindowsSaturations.
- -add pore radius checking funcs(tmp)
- -rename variables for computePoreRadius(); clean code.
- -clean code
- Merge github.com:yade/trunk into chaoUnsat
- Merge github.com:yade/trunk into chaoUnsat
- -add debugOut to test isInvadeBoundary=True isPhaseTrapped=True
- -insert debugOut. (core dump fixed by ulimit -s 16000)
- Merge github.com:yade/trunk into chaoUnsat
- This is TwoPhaseFlowEngine (alpha version) yeah!
- Merge github.com:yade/trunk into chaoUnsat
- -merge TwoPhaseFlowEngine, add more cell infos.
- Merge branch 'master' of github.com:yade/trunk
- -add savePhaseVtk. rename function.
- -remove check cell.index
- Merge branch 'master' of github.com:yade/trunk
- comment #define TWOPHASEFLOW
- Christian Jakob (6):
- insert updatePorosity option in TriaxialStressController
- fix long line in github doc
- small fix of a warning in NewtonIntegrator
- minor fix in doc introduction.rst
- include fluid stiffness for TSC for undrained flow condition
- fix fluidStiffness for TSC when FlowEngine is deactivated
- Dominik Boemer (1):
- Add check-script for ViscoElasticPM.
- Francois (1):
- Correct contact tracking bugs for grids. They essencially came from the new logic of laws that have to return booleans.
- Jan Stransky (7):
- Added force and torque export to VTKRecorder (question #252413)
- fixed typo in utils.polyhedron function
- enable periodic simulations with Polhedron and Tetra
- rename PolyhedraVolumetricLaw -> Law2_PolyhedraGeom_PolyhedraPhys_Veolumetric
- deleted vtk output of force for boxes (bug #1376734)
- added Polyhedra::GetSurfaces function
- Added volumePower attribute to Law2_PolyhedraGeom_PolyhedraPhys_Volumetric, Polyhedra code small cleanup
- Janek Kozicki (2):
- Fix bug in 'inspect' that made editing values annoying.
- Merge doc/sphinx/references.bib into doc/references.bib
- Jerome Duriez (3):
- Re-write of "Yade on GitHub" wiki page in sphinx doc.
- Anecdotic commit to keep a track (in code comment) of a useful link for JCFpm paraview analysis
- Removal of very last wiki-link github-related in rst files
- Raphael Maurin (1):
- New force engine to couple Yade with a 1D RANS code. Add a new force engine applying the main hydrodynamical forces in function of a 1D average fluid velocity vector which depends only on the depth. The engine is calculating at each time step the drag, lift and buoyant forces for each particle. Complete the references for the documentation associated to the engine.
- T Sweijen (1):
- Merge two-phase flow engine
- Thinkpad (1):
- -a test commit from laptop
- cyuan (7):
- a small change for check reservoir boundingCells.
- -add temp function for generating sample windows, calculating responding saturation...
- -add savePhaseVtk
- Merge github.com:yade/trunk into chaoUnsat
- Merge github.com:yade/trunk into chaoUnsat
- -replace abs, max, min by std::abs, std::max, std::min
- Merge github.com:yade/trunk into chaoUnsat
- cyuanLaptop (1):
- -change debugOut
- fifthguy (1):
- Fixed a bug that appeared when running the uniaxial-post.py script from examples. Edited py/post2d.py to capture exception while importing Vector3 from minieigen.
- jduriez (12):
- Correction of an error using psd() with monodisperse packings (false = False in python). Add of an explanatory message
- Few changes in capillary doc: assumption of null wetting angle, hyperlinks, and some comments in source code
- One forgotten change during previous commit about TriaxialStressController 3DTriaxialEngine ? https://github.com/yade/trunk/commit/77bc6d75b780bcbad5bdadc5bb3645badb009cd9
- Adding mention of different save files kinds. Tried to comment differences, please correct if I was wrong
- Typos and precisions in capillary doc
- porosity() function infers now a volume value for non-periodic cases, rather than throwing an error. Positiv volume values eventually passed as argument override this inferred value
- porosity doc changed according to previous commit
- getStress() considers now an adequate volume value for non-periodic case (values passed as parameters may still also be taken into account)
- Re-introducing change from https://github.com/yade/trunk/commit/ab91b3cf8654f6d563dede10184e784a8ce84219, reverted since, without reason
- Improvement of https://github.com/yade/trunk/commit/05599b23808991dbfef6b85400c7ddd32be594e0 regarding volume computation in getStress for non periodic cases
- Typo in CapillaryPhys doc
- Parallelization of interaction loops in Law2_..._Capillarity (which is in fact not a LawFunctor handled by InteractionLoop). Moreover adopting the FOREACH iterator for the non-parallel flavour.
What is new in version 1.07.0:
- Remove RELEASE file.
- Add -ftrack-macro-expansion=0, if gcc>=4.8
- Provide VTK6-support.
- Use ADD_DEFINITIONS instead of adding those directly in CXX_FLAGS.
- Remove information about yade-stable from Readme.
- Add BicyclePedalEngine as a new kinematic motion.
- Add -save-temps if GCC-4.8 is used.
- Split Grid into Grid and Grid_GUI.
- Add information about missing packages in documentation and external PPA. Closes: LP:1250928
- Add notice about using libqglviewer-qt4-dev instead of libqglviewer-dev on older Ubuntu versions.
- Add script to create PPA-packages. (Not finished)
- Use othermirror for some ubuntu versions.
- Add stl-gts example.
- Add qt.View() to clumps-example.
- Add one more check-script to check the functionality of ViscoElastic PM.
- Consider massMultiply-parameter, calculating parameters in ViscoElasticPM.
- Add functions to save and load clumps.
- Set the higher pripority in sys.path to self-compiled modules. Closes LP:1254708
- Fix volume calculation. Closes LP:1261415
- Set the higher pripority in sys.path to self-compiled modules in yade-batch.
- Update scripts for PPA.
- Add configuration files, needed for PPA.
- Minor update of PPA scripts.
- Update information about yadedaily prebuilt packages.
- Add support for qglviewer>=2.5.0.
- Open GUI in packs/packs.py after 1 step to show all elements.
- Raise warning, if no spheres are produced by regular* commands.
- Update information about daily-packages.
- Set one more paramter -ftemplate-depth-512 for clang
- Prevent attraction forces in ViscPM due to viscosity
- Add some more steps to checkWeight-script.
- Minor formatting in references.
- Remove cout accidentally added in a prev. commit.
- Minor change of setFromTwoVectors in utils.py.
- Rename createtar.py to buildppa.py.
- Minor fix in docs.
- Add RELEASE-file.
- a function to increase the size of a single sphere (~>Thomas swelling)
- easier manipulation of state files in TesselationWrapper
- restore the python wrapping of utils.growParticles() as it was before fb02a74 (changed by mistake, sorry Christian)
- give unique identifiers to trangulation's cells
- FlowEngine::nCells retruns the number of finite cells; FlowEngine::getVertices returns the vertices of a cell defined by its id
- make cmake output more consistent when missing dependency for LinSolv
- Fix the behavior of FlowEngine.updateTriangulation=True
- FlowEngine: increment a counter correctly
- small changes in the installation section regarding suitesparse and related libs
- installation.rst: smallfix in indentation
- remove a not necessary sorting in FlowEngine, as it triggers a critical bug in the STL (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58800)
- correct target values of the DEM-PFV checktest
- Fix paths to online and packaged documentation (fix url error with GUI's hyperlinks)
- DEM Background chapter: a note on the semantic strain vs. displacement for contact kinematics
- Merge branch 'master' of github.com:yade/trunk
- fix undefined "key" in triax-tutorial/script-session1.py
- +1 published paper
- small fix in an example script tetra/oneTetra.py
- Fix missing REGISTER_CLASS_INDEX(...) into ViscElPhys. This macro is essential for a right law dispatch !
- Corrected a minor mistake in code comments : k=2*r*E
- Allow the contact between (coh)frictMat and viscElMat as frictPhys. Almost everything was done by inheritance, just had to convert stiffnesses to modulus and modulus to stiffnesses to ensure material compatibility. Note that for the moment the timeStepper cannot handle this kind of simulations -> will be fixed soon.
- Modified error message if not yade.runtime.hasDisplay (bug #1241817)
- fixed SyntaxError from previous commit
- uncomment and modify utils.forcesOnCoordPlane function
- corrected mistake in examples/test/triax.py
- - Introducing (uncommenting in fact) tens/shearBreakRel variables in JCFpmState : relative part of broken interactions per body (instead of absolute number). - Few changes in some doc of JCFpm variables.
- Quite important changes in JCFpm code
- Modifying JCFpm example scripts so that they still work after previous commit
- Re-put some commented lines, after discussion of this thread (https://lists.launchpad.net/yade-dev/msg10185.html), thanks Anton. The comments solution is (at the moment ?) finally still used to avoid putting a new variable in VTKRecorder..
- A script example for JCFpm : two rock parts with one joint in the middle, like in laboratory experiments
- Some forgotten corrections in some example scripts, so that they still work after changes of today in JCFpm
- Some corrections in the JCFpm doc (hyperlinks...)
- (Hopefully) Fixing some rst links in DEM Background doc
- Some changes in the doc of getStress() function, to be consistent with the source code (https://answers.launchpad.net/yade/+question/239919)
- Merge branch 'master' of github.com:yade/trunk
- Idem as previous commit
- Restoring the 2d version of growParticle previously erased by mistake..
- Some hyperlinks in JCFpm doc corrected
- Typos and hyperlinks corrected in Peri3dController doc
- Correction of a link in TesselationWrapper() doc
- add CGAL link and delete libgmp3 from install list
- Change in the calculation of the normal and tangential stiffness and damping. The change affects only the behavior when one of the two parameters is zero, e.g. for two particles with different stiffness k1 and k2, the contact stiffness will always be k = k1*k2/(k1+k2). Before it gave the same except when k2 = 0 (respectively k1 = 0), where it gave k = k1 (resp. k=k2). This is done to ensure continuity in the behavior when one of the two parameter tend to zero. Add a function contactParameterCalculation in Ip2_ViscElMat_ViscElMat_ViscElPhys to avoid code duplication.
What is new in version 1.05.0:
- Anton Gladky:
- Add system-component of boost to be linked.
- Fix typo in equations in getViscoelasticFromSpheresInteraction (documentation). Thanks to Medack (TU Freiberg).
- Explicitly link BZip2-library
- Explicitly link ZLIB-library
- Update installation docs, add libbz2-dev zlib1g-dev.
- Fix LudingPM.
- Rename variables in LudingPM (Theta->Delta).
- Fix k2-calculation in LudingPM.
- Update script for LudingPM.
- Split gui/qt4/GLViewer.cpp.
- Remove pkg/dem/DomainLimiter.*
- Recover DomainLimiter (LawTester should be moved somewhere).
- Remove some warnings.
- Update numpy_boost.hpp from svn.
- Remove executes bit on py, cpp and h-files.
- Split Shop.cpp on Shop_01.cpp and Shop_02.cpp
- Fix compilation.
- Remove stable-PPA reference from documentation.
- Replace all libboost-*-dev by libboost-all-dev.
- Christian Jakob:
- complete description of clump methods in users manual
- fix a bug in inertia tensor approximation scheme
- fix some links in users manual and Scene doc
- fix description of default material in users manual
- fixing/updating refs and links in users manual - part 1
- removed SpherePadder description from users manual
- fixing/updating refs and links in users manual - part 2 (finished)
- adapt buoyancy example with new O.forces.addF() method and make it look nicer
- update in Clump::updateProperties: included new bool integrateInertia and int discretization and adapt clump(), appendClumpend(), addToClump(), releaseFromClump(), replaceByClumps() and growParticles()
- create links to some example scripts in wrapper
- increase initialization speed of examples/packs/packs.py (fix https://bugs.launchpad.net/yade/+bug/1229783)
- try to fix (still broken) refs in users manual
- Merge branch 'master' of github.com:yade/trunk
- make getRoundness() more flexible: empty excludeList is no more needed as input argument; adapt replaceByClumps-example.py and associated part in users manual
- small fix in users manual
- fix a link in TesselationWrapper
- fix a link in TesselationWrapper (second try)
- fix buoyancy example for clumps
- removed typenames from Polyhedra.cpp, make gcc < version 4.7 happy
- Donia:
- Save the relative velocities of particles.
- Compute edgesSurfaces if viscousShear is true.
- Save the interactions only between spheres into a vector.
- get the shear and normal viscous stress in each interaction.
- Jan Stransky:
- marginal modifications
- Merge branch 'master' of github.com:yade/trunk
- Added periodic cell VTK export (to VTKRecorder and export.VTKExporter)
- Merge branch 'master' of github.com:yade/trunk
- added forgotten example file
- fixed bug in export.VTKExporter from one previous commits
- Merge branch 'master' of github.com:yade/trunk
- Polyhedra implementation + examples (Contributed by Jan Elias).
- adding examples with tetrehadron modeled by new Polyhedron class
- CombinedKinematicEngine will not call its 'dead' subengines (question #237437)
- Jerome Duriez:
- Correction of typo in comment
- Proposal of new (similar but more compact) examples using JCFpm classes. A choice can be made one day after some feedback ?
- Some changes in JCFpm documentation (add of external references, and removal of cross reference towards the CFpm model which does not exist anymore). In cpp, some commented lines to add (in the future ?) some post-pro features that could maybe break current saves of (existing ??) current users
- Commiting changes discussed briefly in https://lists.launchpad.net/yade-dev/msg09979.html. Mainly written by L. Scholtes, they allow to vizualize with paraview some features of JCFpm classes. It adds then 2 recorders, "jcfpm" and "cracks", that are separated mainly for historical reasons.. They are anyway now documented
- Add of pylab.ion() in plotNumInteractionsHistogram() and plotDirections() so that yade does not hang anymore after launch of these functions (even after closing the plot window, here). Still thanks to Vaclav ! (http://stackoverflow.com/questions/9753885/pylab-matplotlib-show-waits-until-window-closes)
- Anecdotic changes in an example script
- Klaus Thoeni:
- resolve problem with mask in GridConnection
- ignore local kdevelope specific files on git
What is new in version 0.97.0:
- 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 Stransky' (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.
What is new in version 0.95.0:
- 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 Francois.
- 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 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 Francois 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.
- Francois 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 Stransky' (1):
- minor changes
- francois (1):
- makeClumpCloud(...) now takes a "seed" parameter to generate always the same pack.
What is new in version 0.90.3:
- It is now possible to build the Yade for Ubuntu 12.10 and newer versions.
What is new in version 0.90.2:
- It contains only the minor fix LP:1009500, now F8-F12 keys are working again. Thanks to Bruno Chareyre for providing the fix.
What is new in version 0.90.1:
- It contains only the minor fix: SnapshotEngine did not work in 0.90.0
- version. Thanks to wangxiaoliang for pointing that out.
What is new in version 0.90.0:
- The main new feature is a moving build-system from scons to cmake [0]. It will hopefully bring better portability of the program on different platforms and operating systems/distributions.
Requirements:
- Python
1 註釋
محمدرضا 12 Jan 17
سلامشخص مسلط به این نرم افزار برای انجام پروژه لطفا تماس بگیرد
09188492669