← Back to team overview

yade-dev team mailing list archive

Re: New Yade version, beginning of January 2021 - Release notes.


Hi all,

It has been a busy year for yade-dev. With both fresh and vetran blood flowing in.

I trust 2021 will be also quite busy, and that's great.

Thanks very much to Anton and Janek for putting stuff together for next release.

And Happy New Year to all of you!


p.s. we might also want to release a new numbered version of doc sometimes soon. 2nd edition is from 2015.

On 31/12/2020 22:27, Anton Gladky wrote:
Hi Janek,

thanks for preparing release notes based on MR! Very appreciated!
I will start to prepare a newer Yade release soon.

Best regards


Am Fr., 25. Dez. 2020 um 00:26 Uhr schrieb Janek Kozicki (yade)
Hi Anton,

the website https://pad.systemli.org/p/yade-2021-release-notes
has reset its content. I pasted there the merge requests from this year.
But also I paste them here. Of course please rearrange as you see fit :)

I might have misplaced some merge request titles. Then please edit this list.
Especially I thought that we had more MPI related stufff happening.

Short summary of 2021.01a release:
short title (Merge Request count)

Documentation                         (41 MRs)
Bug fixes                             (36 MRs)
High precision RealHP<N>              (31 MRs)
Small improvements                    (22 MRs)
Fluid & thermal & particle saturation (14 MRs)
Tests & checks                        (12 MRs)
OpenMPI calculations                  ( 8 MRs)
clang-format in the pipeline          ( 7 MRs)
Packaging improvements                ( 6 MRs)
GUI                                   ( 3 MRs)

Documentation (41 MRs):
   Update installation.rst (asan builds + stuff)
   Add recent publications
   point youtube's 'related videos' to the same channel
   Update front page link to videos: tutorial-more-examples.html more up to date.
   Fix bug and documentation FlowEngine invVoidVolume wrapper
   Fix recent build failures on master with latest docker bullseye image.
   Small docs fix
   Doc typo: missing norm in trial shear force
   Doc Body.groupMask
   User doc
   Update high precision documentation
   Miscellanea doc
   Add example script for opengeomechanics paper
   clarify thermalengine doc
   Documentation makeCloud and makeClumpCloud
   ViscoelasticPM doc update
   Prog doc typo
   Formulation doc typo
   improve cellDist doc
   small addition to the doc to mention verletDist explicitely
   Doc prog.rst update
   FlowEngine.getCell doc
   Doc update of VTKRecorder.fileName
   Prog doc typos and minor changes
   Doc Law2_Polyhedra*
   residualFrictionAngle in radians in JCFpmMat docstring
   Sphinx doc broken link in Prog doc
   O.forces.f doc
   Two Docstrings
   adding open geomechanics reference to doc and pubs
   Add --stdperformance, --quickperformance explanation to documentation.
   Polyhedra Ip2 doc
   MaterialContainer doc typo
   Added Hicham Benniou PhD reference
   Add references to article describing lubrication law
   update publications
   !463 alternative : Added article February 2020 Computational Particle Mechanics

Bug fixes (36 MRs):
   fix #145 seed in makeCloud FIX makeCloud doesn't use "seed"
   Fix pygts module import in python3.9
   Fix PyRunner. Now it can propagate errors upwards.
   Fix #110 FIX Graph yade.plot.live matplotlib numpy update exception
   Fix compilation with python3.9
   fix #157 FIX O.stopAtTime does not do anything useful
   Fix #140 FIX ForceContainerParallel::sync() can count permanent forces twice or more
   Fix https://gitlab.com/yade-dev/docker-yade/issues/1 FIX yade-ci crashes
   export.text2vtk - fixed a bug + refactoring
   Fix #146 FIX "to-Python converter already registered" RuntimeWarning
   Fix even more warnings, print only 'maybe-uninitialized' and '#warning' (!270), faster compilation. (!273)   18 of 18 tasks completed
   fix clang formating mistake, change remaining doubles to Real
   fix tutorial script https://answers.launchpad.net/yade/+question/689537
   Fix printing Vectors by LOG macros.
   Fix GCC-10 compilation #958006
   #153 fix FIX O.energy['nonViscDamp'] misses gravity forces
   Skip url ping-pong for "getting help" page
   fix yade crash, when closing 3D view via "X" window frame button, in Ubuntu 20.04, fixes #164 FIX yade crash when closing the 3D view.
   Fix close view crash
   small mailmap fix and test cleanup
   Little bit of work on #97 : lib/base/Math.hpp should be math only
   Fix compilation against newer QT5.
   Some small fixes for Sacha : Fix compilation with boost 1.65 and g++ 9.3 combination
   Fix denser grid in GLViewer.
   clumpId type should be Body::id_t, not int. Add fixme note in Math.hpp about issue #97
   Fix #162 - fix building master pipeline due to recent VTK upgrade in OpenSuse 15.
   Fix build on latest bullseye
   Fix doc generation for newer sphinx. #955097
   Workaround MPFR boost bug on ubuntu focal
   Enable OpenMP for MPFR
   SpatialQuickSortCollider is nice, because it's only 70 lines long. But has one bug. FIX groupMask treatment.
   comment out buggy heat flux boundary condition for now
   GCAL version 5.1.1 produces different results (again), but maybe the old results are back?
   Qt::MidButton is deprecated, use MiddleButton instead
   Use boost::filter_iterator for BodyContainer instead of home-backed. #122

High precision RealHP<N> (31 MRs):
   Finalize high precision Real - finished, really :) documentation + put minieigen sources into Yade
   Add check test for Runge Kutta Cash Karp 54 time integrator, error tolerance 1e-147, 147 correct decimal places :)
   checkGravity.py : reduce error tolerance from 1e-3 → 1e-10
   Use the minieigen ↔ yade.minieigenHP redirection when necessary.
   Add High Precision to the gitlab CI pipeline
   Ensure that VTK is compatibile with Real - Without Macros.
   std::weibull_distribution can't understand Real type so use boost::weibull_distribution
   OpenGL Real compatibility
   Lapack Compatibility with Real type.
   Remove Real from global namespace.
   Another step towards enabling high precision Real
   Adapt checks and tests to high precision Real.
   Add RealHP<N> : double, quadruple and more precisions.
   Bit correctness: extra tests for RealHP<N>
   Small HP cleanup: don't use std::to_string.
   The last remaining double to Real changes (2/2)
   The last remaining double to Real changes (1/2)
   Remove #DEFINEs from MathFunctions.hpp
   Remove unused variables uN, uT.
   don't use operator++ for floating point type.
   Replace std:: with math:: when invoking math functions. (6/4) - optional, remove even more using std::min, std::max.
   Replace std:: with math:: when invoking math functions. (2/4)
   Replace std:: with math:: when invoking math functions. (3/4)
   Replace std:: with math:: when invoking math functions. (4/4)
   Replace std:: with math:: when invoking math functions. (5+6/4) - optional, remove more using
   Replace std:: with math:: when invoking math functions. (1/4)
   put minieigen sources back into Yade
   Remove a couple of non-math:: using directives.
   If necessary use mpmath.linspace instead of numpy.linspace. (high precision on python side)
   Enable high precision CGAL
   Avoid raw memory access for high precision types.

Small improvements (22 MRs):
   added utils.randomOrientation function
   libVersions detects architecture.
   Use std::ofstream in pkg/dem/PDFEngine.cpp instead of old C interface for writing data files.
   Use C++17 standard, remove Loki dependency.
   Use vtkSmartPointer to handle memory release
   small mailmap update.
   Merge PotentialBlockVTKRecorder and PotentialBlockVTKRecorderTunnel engines
   A better Wall-Polyhedra normal
   Update warning message for deprecated GravityEngine
   Clean shape: Add #ifdef YADE_FEM in core/Shape.hpp
   Add seed value for periodic packings
   improved O.stopAtTime
   frictionAngle in radians for examples
   Removing Vector4r definition from Lin4NodeTetra
   Add ymport.stl.shift
   Add ymport.stl.scale parameter
   change Shop::aabbExtrema from a Python tuple to a C++ pair.
   Add seed parameter to MakeClumpCloud
   Un-expose breakOccurred to avoid user confusion
   remove remaining FOREACH loops on bodies
   consistent use of 'et' in ViscoelasticPM (LP Answer 691009)

Fluid & thermal & particle saturation (14 MRs):
   Adding flux type boundary condition (thermalEngine) for Luc Scholtes and Ahmed Mostafa
   Protect from segfault after looping on erased particles in thermalengine
   improving the particle sat field estimate, other small improvements
   Partial sat clay patch
   Partial sat update
   add Ip2 functor for PartialSatMat
   Add lubrication examples
   add the packing used in thermalengine examples
   add example scripts demonstrating ThermalEngine functionality
   decouple mechanical and partialsat timesteps
   Update conductionVerification.py
   add fully coupled THM example, add citation to thermalengine publication
   a more robust cmake when cgal or pfvflow are disabled and dependent modules...
   add PFV tools for getting cell velocity and volume

Tests & checks (12 MRs):
   Improve multithread debugging and logging. Add TRVARn(…), LOG_TIMED_*(5seconds,msg)
   Make sure gitlab CI pipeline shows all the output.
   improve error checking
   Print time spent on each of the --checks
   Add VTKRecorder check.
   Add vectorized compilation to the pipeline
   make runtime of two checkScripts acceptable
   Improve performance test, add it to the pipeline.
   Add multi core check
   add enum tests and fix .deb builds
   Add 32bit architecture to the pipeline.

OpenMPI calculations (8 MRs):
   Correct and improve two methods in domaindecomposition.py
   Mpy update
   cleaner exit and spawn/despawn
   MpiDoc rebased
   One Py3-required LOG_TRACE, Making Py3 mandatory for MPI compilation. Fix #144 Py2 (no-)support
   fix thread-unsafe assignment of permForceSynced (fix #156, setPermF broken)
   Temporarily disable insertionSortParallel() until #138 is solved.
   fix parallel collision detection (fix #138) : FIX Out-of-bounds access in insertionSortParallel

clang-format in the pipeline (7 MRs):
   clang-format ./pkg
   clang-format ./py
   clang-format ./lib
   clang-format ./core
   clang-format gui/qt5. Remove qt4.
   Add clang-format test to the CI pipeline.
   clang-format discussion.

Packaging improvements (6 MRs):
   Prepare 20.04 deb-packages
   Add instructions for yadedaily Ubuntu 20.04 packages
   Update scripts for uploading daily-packages
   Fix deb packages
   build deb also on master pipeline
   Clean aptly DB after update

GUI (3 MRs):
   Draw grid label coordinates, allow custom change of grid density.
   remove unaligned margins in GUI inspect.
   Add enum support for GUI dropdown menus.

Are the extra debian packages yade-long-double or yade-float128, maybe even yade-mpfr150
even possible?

best regards

Janek Kozicki (yade) said:     (by the date of Sun, 6 Dec 2020 00:26:03 +0100)

Hi Anton,

Do you think that you could also prepare yade-long-double or
yade-float128, maybe even yade-mpfr150 packages?

Better if all of them used ENABLE_MPFR, to avoid slow boost::cpp_bin_float.

It would work great to protect (via dpkg tests caused by changes in
other packages) our achievement of having working high precision in
yade. We don't want this functionality to break at some later time.

best regards

Anton Gladky said:     (by the date of Mon, 16 Nov 2020 20:13:06 +0100)

Hello Jérôme,

our goal is to get the newer Yade into the Debian Bullseye, because
it will be the default version for the next two years (till 2023).

It would be good to upload Yade into the repository in January (till soft freeze
on 2021-02-12). After that date any upload into the repository should be
coordinated with the Release team and is actually not for the new software

If you are able to push your changes till the end of December and all tests
are passing, I think it would be possible to accept it for the new release.

I am not a fan of a last-minute commit (especially on Friday afternoon
:) ) because it can break the stuff with a very limited time to fix it.

Anyway, if you are not able to do it on time - there is still an
opportunity to release a minor version later.

Please take time and test your code (including --test and --check scripts)
to prevent breakages and to provide Yade with new and reliable features.

Best regards


Am Fr., 13. Nov. 2020 um 11:23 Uhr schrieb Jerome Duriez

Dear all,

Sorry for the inconvenience but is there any flexibility in that schedule ?

I have been working on a new Shape child and I may get closer to the
endpoint of my work in the form of a merge request.

It now represents "32 files changed, 2193 insertions(+), 178
deletions(-)" since 2020.01(a ?) = commit 9964f5.

In case there is some flexibility in the schedule and if I'm not the
only one interested in that flexibility (MPI maybe ?..), maybe we could
discuss inclusion of that Shape child in the new release ?

If not, let it be, I would totally understand to miss that train.


Chargé de Recherche / Research Associate
3275 route Cezanne – CS 40061 13182 Aix-en-Provence Cedex 5 FRANCE
+33 (0)4 42 66 99 21

On 12/11/2020 22:18, Anton Gladky wrote:
Dear Yade users and developers,

As always at the beginning of January I am planning to prepare
a release of a new Yade version.

Please try to push your changes inyo the code at least till the mid
of December, so we will have enough time to test it on different
platforms during the Christmas period and release it on time.
Also please try not to push too much breaking changes at that

The new Debian Bullseye release is scheduled already [1]. So we
should not be too late to prepare a new Yade for the next stable
Debian version.

Also it would be good to prepare short but meaningful release notes.
Current git-workflow has too many small log-messages, so it is
difficult to get meaningful information from there. Please use this
link to add some notes [2].

[1] https://wiki.debian.org/DebianBullseye
[2] https://pad.systemli.org/p/yade-2021-release-notes

Thank you

Anton Gladky
Janek Kozicki, PhD. DSc. Arch. Assoc. Prof.
Gdańsk University of Technology
Faculty of Applied Physics and Mathematics
Department of Theoretical Physics and Quantum Information
http://pg.edu.pl/jkozicki (click English flag on top right)

Mailing list: https://launchpad.net/~yade-dev
Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp
Mailing list: https://launchpad.net/~yade-dev
Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp