Long News Stories

Professor Anthony Thornton Inauguration lectures

2023-05-31

Today and tomorrow there will be the Granular Matter and Open-Source Workshop will start today at 12:40 at Ravelijn 2502 at the University of Twente. The programme for the workshop is available here: https://docs.google.com/document/d/1YoR_NcI9E4GOI-eZ2zCZl3uSEuaoMxCN4Tcy0ZtFyLk/edit#heading=h.jq10gcxb5hi6. As part of the professorially inauguration celebration of Anthony Thornton.

If you want to attend the workshop online, you can do so using this link:

https://teams.microsoft.com/l/meetup-join/19:meeting_Zjk5MGM0MjktYTg3YS00M2JkLWE2YjEtODA1NjVkMmJkZGI2@thread.v2/0?context=%7B%22Tid%22:%22723246a1-c3f5-43c5-acdc-43adb404ac4d%22,%22Oid%22:%224f3f6c33-4f5e-429f-94c2-0b61a36f34e9%22%7D

 

Best regards,

Thomas


MercuryMay 2023

2023-03-15

Dear MercuryDPM user,


I would like to invite you to the annual Mercury hackathon (MercuryMay). It is free for anybody who is interested in learning or developing MercuryDPM. This year it will take place from April 17th to May 12th (inclusive) at the Twentsche Food hall (https://twentschefoodhal.nl/). Each day starts at 9am and finishes at 5pm.


As stated, attending is free (you just need to cover food, travel and accommodation) and a virtual room will be set up for people who would like to take part virtually. Everyday, at least two of the four main developers of the code will be physically present and it is a great chance to get started with the code, or to get help pushing a feature back you have already developed.


The week after will be the MercuryDPM–oomph-lib (MOomph) workshop about the DPM-FEM-coupled code. It will take place at the University of Manchester on 16h of May. It will also be available online for those people interested but unable to attend in person. A timetable for the Moomph workshop will follow later.


Details of the event are constantly in flux but up-to-date information can be found here: https://mercurydpm.atlassian.net/wiki/spaces/MER/pages/192184321/Mercury+May+2023


Please let us know if you intend to attend, so we have a rough idea of numbers and can reserve the right amount of space.


Best regards,

Ant.

On behalf on MercuryDPM core team.




MercuryLab courses 2022

2022-04-01

May 2nd to 4th, 2022

C++ for Programmers

C++ for Software Development         

Read More …


May 4th to 6th, 2022

The Fundamentals of Discrete Particle Simulations

C++ for Software Development         

Read More …

We moved to bitbucket

2022-05-18

After 13 years in a self-hosted SVN repository we have moved to git hosted via bitbucket. We only moved the Trunk (now called master) with history kept back to 2018-04-09. This gives you new ways to use and develop the code and we hope this will streamline the process of reintegrating new externally developed features. The old SVN repository will remain read only for a foreseeable future, in case you need an earlier version of MercuryDPM or one of the old releases or development branches. 


The new bitbucket page is found here: https://bitbucket.org/mercurydpm/mercurydpm/ and if you want to directly clone the master (formally Trunk) you can use the command:

git clone https://bitbucket.org/mercurydpm/mercurydpm.git MercurySource


Please note commits via the SVN will still be accepted until end of August. So it you have local uncommitted features in your SVN checkout please commit asap and then move to a fork or clone on the new git-bitbucket version. The installation instructions for the developers version have been updated to reflect this change.


Which version of MercuryDPM should I use?

2021-02-10

Due to the growing number of MercuryDPM developers, it has become harder to provide official releases. We therefore recommend you to download and install the developer's version instead of the release. You can find instructions to do so http://mercurydpm.org/downloads/Trunk"

Older Posts


MercuryDPM Released as 0.9 Beta

2013-05-19

Version 0.9 beta of the code has been  released. This does not, yet, include the full feature list, but extra features will be added to the public version in the coming months.

 

Particles 2013, Stuttgart        

2013-09-17

If you are interested in Mercury and would like to discuss it with one of the <a href="http://mercurydpm.org/about-the-code/team">developers</a>, you ca n meet us in Stuttgart at the <a href="http://congress.cimne.com/particles2013/frontal/default.asp">Particles conference</a> from September 17-20, 2013.


MercuryDPM training on the 9th of December

2013-11-26

We are offering free MercuryDPM training on the 9th of December, starting with a lecture. I know this is short notice but if you are in the area feel free to attend the lecture and maybe stay a few days to get help from the experts on how to use MercuryDPM.


If there is demand we can make this lecture available on the internet (maybe via Skypte). If you are interested in this please let me know by sending an e-mail to anthony@MercuryDPM.org by Monday 2nd of December.


Details will follow after Monday 2nd when the level of interest is better known.


Update on the MercuryDPM training on the 9th of December    

2013-12-04

 On Monday, Dec. 9, 2013 at 8:45-10:30 CET, Thomas Weinhart  will give a lecture on particle simulations using MercuryDPM. It will take place at the University of Twente (room CR 3F), but you can also participate online. To join the lecture, please follow this link:<br>

         

http://videolecture.utwente.nl/mediasite/Viewer/?peid=0431d88dec0d4992878ef3fa1ddb333c1d


There will be a second lecture on Monday, December 16 at the same time.

Videos of the lectures will be archived.


Part 2 of the Introduction to MercuryDPM lectures

2013-12-13

We will continue the lecture on particle simulations using MercuryDPM on Monday, Dec 16, at 8:45-10:30 CET. It will take place at the University of Twente (room CR 3F), but you can also participate online.


To join the lecture, please follow this link: <a href="http://videolecture.utwente.nl/mediasite/Viewer/?mode=SkinPreview&amp;viewerId=9501e12fef09472a802d9545fec56f5d0a">http://videolecture.utwente.<wbr>nl/mediasite/Viewer/?mode=<w

br>SkinPreview&amp;viewerId=<wbr>9501e12fef09472a802d9545fec56f<wbr>5d0a</a>

  

Tutorials   

2013-12-19  

A tutorial option has been added to the documentation menu. Here you can find unedited videos of the recent MercuryDPM lessons.


Also other resources and hopefully helpful tutorials will be added here over time.


​Sad News    

2014-01-27

It is with great sadness that I announce the premature passing of a valued colleague and friend Chris Savage. Chris is responsible for the design of both hpGEM and MercuryDPM websites, and has hosted both web and svn servers for MercuryDPM for the last six months.

  

Chris was a valuable member of both the MercuryDPM and hpGEM teams and  was leading a project to develop browser based tools for MercuryDPM. Chris also joined the hpGEM team last February for part of the intensive  workshop and it was planned that he would join the MercuryDPM team  next  month for a similar workshop.          


He was a joy to work with and will be missed by all that knew him.


MercuryDPM 0.10 (Beta) released

2014-02-18

MercuryDPM 0.10 (Beta) was released February 18, 2014. It does not yet include the full feature list planned for MercuryDPM, but is a fully functional C++ package for performing discrete particle simulations. Many improvements and new features have been added since version 0.9, please see version history

for full details.


Also both 0.10 and 0.9 versions are now available via our public SVN server, please see downloads page for details of how to obtain the code this way.


Bug fix to 0.10 Beta      

2015-01-05

On the 5th of January an update to the current beta was released. This was a small change to a single demo: 'chute_demo\xe2\x80\x99. Previously the number of saves for stat and data files were not equal meaning post-processed statistics could not be run on this file. Please be aware that if you want to use \x e2\x80\x98fstatistics\xe2\x80\x99, our post-processing statistics tool, both of these values most be equal. This problem will be fixed in the version 1.0 which will have redesigned options for the saving of files.

  

Bug fix to 0.10 Beta    

2015-05-02

Today there was a small update to the beta, this was mainly to fix a problem with how the documentation was displayed, if complied to html format. Additional some mistakes have been fixed in the documentation, some of the information about how to use the code had not been updated since the 0.9 version and hence was not correct for the current beta. Hopefully all of this issues have now been fixed. Note, there was no change to the actually source code. However, if you have a checked out version and want to receive these updates to the beta simple type svn update in the root the beta source directory. Note, this only works if you checkout the code in the first place i.e. you installed not using the tarball. The tarball has NOT been updated for this change.  Finally, a static copy of the beta documentation has been added to the MercuryDPM website. The exact add

ress is http://mercurydpm.org/documentation/source-code-documentation-beta


0.10 fully released

2015-01-22

MercuryDPM 0.10 was fully released January 22, 2014. It does not yet include the full feature list planned for MercuryDPM, but is a fully functional C++ package for performing discrete particle simulations. Please note for people using the Beta release of 0.10 this is only marginally different.


This version can be checkout via

          svn checkout https://svn.mercurydpm.org/SourceCode/Release/0.10">https://svn.mercuryDPM.org/SourceCode/Release/0.1

         

REQUIRED DRIVER CHANGES (to update from MercuryDPM 0.9)

 When you update from MercuryDPM 0.9 to MercuryDPM 0.10, you DRIVER codes have to be updated. Here is a list of the required changes:

          A) Name changes:          

The following functions changed their name (the line starting with a minus is the old version, the line starting with + is the new version)

          -get_WallHandler()

          +getWallHandler()

    

          -get_ParticleHandler()

          +getParticleHandler()

       

          -Particle p0;

          +BaseParticle p0;

          Note: If you are using friction, you have to define your particles as TangentialSpringParticle, not BaseParticle


          If you are using the plastic force model, you have to define your particles as DeltaMaxsParticle, not BaseParticle

    

          -cout, endl, stringstream, string

          +std::cout, std::endl, std::stringstream, std::string<br>

          Note: Removed "using namespace std", and inserted all the necessary std::

          -set_HGRID_sphere_to_cell_ratio(1.2);

          -set_UpdateEachTimeStep(false);

          +setHGridCellOverSizeRatio(1.2);

          +setHGridUpdateEachTimeStep(false);

       

          Use set_Position and set_Velocity when setting positions and velocities

    

          Note that this list might not be complete; if you find your code required more changes than listed here, please let us know. 

      

          B) CMake

    

          We now use cmake to compile code. For more detail, see the installation instructions on the MercuryDPM website.

       

          C) Downloading

 

          MercuryDPM is now available from our public svn server both version 0.9 and the new 0.10 (Beta). 


          KNOWN ISSUES

     

          - The balls option "-scala 4" does not work on the mac operating system

          - The restarting feature does not save the first time step after restart

       

          NEW FEATURES IN 0.10

    

          - CMake          CMake is now used to compile MercuryDPM code. For more details, see installation instructions on the website.         

          - HGridOptimiser 

          The cell sizes used in the HGrid neighbourhood search routine are now set automatically by the HGridOptimiser. The optimal placement of the cell sizes is based on the particle size distribution. Currently, two distributions are considered.

           -Linear (the maximum number of levels are linearly distributed between minimum and maximum particle size)

           -Exponential (the maximum number of levels are linearly distributed between minimum and maximum particle size)

           -(In progress) Constant number of particles per cell

           -(In progress) Optimal<br>

          Further Changes:

           X It now allows for top-down and bottom-up approaches

           X The CELL_TO_CELL_RATIO parameter has been removed

           X Changed how sizes (and inverse size) of level are stored to vectors

           X The SPHERE_TO_CELL_RATIO parameter has been renamed to cellOverSizeRatio and is used to make sure that particles fit more comfortably in each cell, such that their HGrid positions don't need to be updated each time step

           X Added new test HGrid_demo.cpp which test different HGrid options with a larger particle size distribution then free cooling

      

          - Adhesive Forces: It is now possible to simulate short-range non-contact forces. These are typically adhesive forces, such as van-der-Waals forces or liquid bridges, but potential applications include short-range potential forces like Lennard-Jones or SPH interactions. Currently, only a linear reversible and a linear irreversible adhesive force is implemented. The new code is tested by the two driver codes UnitTests/adhesiveForce

and MercurySimpleDemos/free_fall_adhesive.

     

          - Reorganisation of the source files 

          Added the constant specifier to a lot of functions in CParticle most notably get_Position() and get_Velocity() return a const Vec3D now 

          Split the CParticle and the ParticleHandler into header and implementation files

          Split the HGRID from HGRID_base and created header and implementation files

          Added the functionality to get en set X,Y,Z components of a Vec3D by index.

          Added the directory Boundaries where baseBoundary and all its derivatives should move to.

          Created an insertionBoundary which allows you to insert particles at random in a Domain, it does not yet use the HGRID and needs some more improvements.

          Added Simple_MD/insertionBoundaryTest.cpp to test the insertionBoundary.

          Removed the obsolete CWall.h

   

          - Changes to the ParticleHandler 

          Change the ParticleHandler such that it extends from the BaseHandler.

          Major changes:

          All objects designed for Handlers have an index, id and pointer to their handler.

          All objects designed for Handlers have the required set functions.

          All objects designed for Handlers have a moveInHandler function, which is called when a Object is moved to a new position in a vector. This is for example used for tangential springs.

          The baseHandler now stores the maximum number of objects in the handler and the id for the next object.

          Note: If you are using friction, you have to define your particles as TangentialSpringParticle, not BaseParticle

    

          - Walls can now have a species and velocity. For most walls the definition of velocity is simple. Only for the FiniteAxisSymmetricWall a more complex definition was implemented (r567,r584).

       

          - Prismatic polyhedral walls can now be added using the function FiniteWall::create_prism_walls<br>

        

          - Added the functionality to MD to follow a single particle and output integration and collisions to the screen. This is useful for anlyzing selftests going wrong 

      

          - Change the default of getInfo to be the species number

    

          - added local angular momentum, local angular momentum flux and couple Stress to the Statistics<br>

       

          - Compatibility issues

          In order to get consistent selftest results for different compilers, the self tests have been revised to take into account differences between compiler implementations.  

       

          - Removed "using namespace std", and inserted all the necessary std:: 

  

          - Many extra example DRIVER codes were added


          - Fix to chute_demo so that its\xe2\x80\x99 output can be run through fstatistics, our statistics post-processing program


          - Doxygen clean up and update some issues with the documentation


          - Many other small bugs have been fixed


Beta of version 1.0 available

2015-03-11


Recently (11th of March), MercuryDPM has been subjected to a massive upgrade. It has been revamped with some exciting features and possibilities which we hope you will find useful.


It can be downloaded, or checked out, by executing the following command in your terminal:


svn co https://svn.mercurydpm.org/SourceCode/Beta">https://svn.mercuryDPM.org/SourceCode/Beta

        

For users already working with the Beta version, the latest changes can be received by typing ‘svn up’ in your current source directory.


The newest features of our Beta are:


1. A complete documentation of MercuryDPM\xe2\x80\x99s core directory (Kernel/), previously known as src/.


2. Most importantly, new tests have been added to check if all the new features work.


3. MercuryDPM now supports Paraview. All your particle data can be viewed both in Paraview and XBalls. Please look into our documentation for further details <a href="http://docs.mercurydpm.org/Beta/d1/d6b/analysing.html">http://docs.mercurydpm.org/Beta/d1/d6b/analysing.html</a>


4. New tutorials have been added to showcase the features of our code. We are working on many more new tutorials for a comprehensive understanding of MercuryDPM.


5. A fully reorganised directory structure:


At the top level of the source directory you will find six main subdirectories:


Drivers/ This is the only directory you need to create new application codes or modify existing ones; all other directories contain either documentation or files required as input files in the codes contained in this directory.         It has a series of subdirectories, for example Tutorials/, that contain a series of demo codes illustrating how to write applications in MercuryDPM. 

       

Kernel/         

Contains the heart of the code. Users should not change the Kernel files. Instead, the classes and functions defined here are should be used (and possibly modified) in the Driver files.</li>


Scripts/ Contains a script used by <em>make test</em>, and <em>make fullTest</em> to check if two output files are equal. 

        

Tools/ Contains the source files required to use paraview. 

    

Documentation/         

Contains the raw .dox files for creating documentation pages, like the one you are reading right now, as well as the images used in the documentation.</li>


 Configuration        

These files specify how the documentation and the code is configured. </li>


6. All source files now have the license prepended.


7. New Features


        a) Complex wall geometries are now possible such as axisymmetric walls, screw feeder, coil and many more.


        b) Support for Angled periodic boundaries, circular periodic boundaries, Lees Edwards boundary, periodic boundary.


        Also introduced a deletion and insertion boundary.


        c) Multiple types of interactions varying from adhesive to frictional, e.g. Hertzian Visco-elastic, linear plastic visco-elastic, linear visco-elastic, liquid bridge willet, reversible adhesive, sliding friction


        d) Multiple species to account for variety of particle properties varying from adhesive to frictional.


9. In addition to the wallHandler and particleHandler, additional handlers have been introduced, please refer to the documentation


         boundaryHandler


         interactionHandler


         speciesHandler


        10. A new class Files has been introduced to read and write files. The files can be accesses by the following variables:


         restartFile


         dataFile


         fstatFile



         statFile


         eneFile


        11. New coding guidelines have been adopted. Please check the link <a href="http://mercurydpm.org/development/coding-style-of-the-kernel">http://mercurydpm.org/development/coding-style-of-the-kernel</a>. As a result we have changed function names adhering to the new guidelines.


        12. The following a few functions, e.g., changed their name (the line starting with a minus is the old version, the line starting with + is the new version)


        -getWallHandler()

        +wallHandler


        -getParticleHandler()

        +particleHandler


        - set/get_Position

        +set/getPosition


        -set/get_Velocity

        +set/getVelocity


        -set/get_name

        +set/getName


        -set/get_{xmin, xmax, ymin, ymax, zmin, zmax}

        +set/get{XMin, XMax, YMin, YMax, ZMin, ZMax}


        -set/get_Radius

        +set/getRadius


        -set/get_species

        +set/getSpecies


        - setNormalStiffnessAndDissipation() to

        + setStiffnessAndDissipation(), to be compatible with the setStiffness() and setDissipation functions


        Note that this list might not be complete; Most of the functions, in the old beta, which have an underscore in between the names have been modified such that they adhere to the new coding guidelines. If you find your code required more changes than listed here, please let us know. Also please look in /Source/Drivers/Tutorials.


13. Additionally, several functions have been deprecated (will soon disappear or take a much nicer form in the later versions), and should be replaced by different syntax. When compiling with the functions which are deprecated, one will receive warnings which shall soon disappear as well in the later versions.


        The most important deprecated functions are:


        (i) Walls should not be initialised by a normal vector and a scalar (representing the scaled distance from the origin) anymore. Use a vector position (point on the wall) instead.

</div>

<div>

        E.g. In order to declare a wall on the right of your domain, replace the following line:


        InfiniteWall w;


        Vec3D normal=Vec3D(1,0,0);


        - w.set(normal, getXMax())

        + w.set(normal,Vec3D(getXMax(),0,0));


        KNOWN ISSUES:


        - If you are using the gcc compiler you will get compiler warnings that the deprecated keyword is unknown. You can ignore these warnings, or turn them off using -Wnoattributes



New Training Course Dates Announced

2015-05-06

We are pleased to announce that our intensive training courses, 'A Practical Introduction to C++ and The Fundamentals of Discrete Particle Simulations, will be held this year between the 20th and 24th July at the Un iversity of Twente, NL.


From as little as 497.50 eros , you can learn to design, write and run your own simulation codes using MercuryDPM. If you want to learn more, or to book your place, visit the MercuryLab Website (http://www.mercurylab.org/?page_id=14) for details.


MercuryLab is going to 3TU    

2015-05-18

This Monday, the MercuryLab team are showing off the power of MercuryDPM at the 3TU Innovation & Technology Conference  in Rotterdam. If you can't make it to the technology fair, you can still see what MercuryLab can do by visiting "http://mercurylab.org"



Precision Fair 2015

2015-11-18   

The MercuryLab team will show the power of MercuryDPM at the "http://www.precisiebeurs.nl/precision-fair-2015-the-meeting-point-for-precision-technology/" in Veldhoven. If you can't make it to th

e technology fair, you can still see what MercuryLab can do by visiting "http://mercurylab.org/"


Training Courses 14th - 18th March 2016    

2016-03-14

 MercuryLab are pleased to announce the next set of training courses.


A Practical Introduction to C++ - 14th-16th March, 2016        

Advanced C++ for Software Development - 14th-16th March / 16th-18th March, 2016       

The Fundamentals of Discrete Particle Simulations - 16th-18th March, 2016

 

For only 350 euros per course, MercuryLab can help you to design, write and run your own MercuryDPM simulation codes.


For more details, please refer to the MercuryLab (http://MercuryLab.org) website  or email us at bookings@mercurylab.org.





Mercury 1.0 is coming soon!    

2016-04-14


The new release of MercuryDPM is coming very soon. Finally testing is underway on the brand new Version 1.0 which bringing new features and functionality, faster simulations and a more streamlined user experience. The new version will be available to download right here on the MercuryDPM website - just go to the 'DOWNLOADS' tab above.


MercuryLab sponsors PGBSIA 2016

2016-05-20    


Come join us at PGBSIA 2016 as we show the world the power of MercuryDPM! There will be at least 4 presentations on MercuryDPM, including an introduction into MercuryDPM, MercuryCG, conta ct modelling for wet particle systems and modelling segregation in drums. As the Platinum sponsor of the conference, MercuryLab will also have a large presence, with an exhibition stand and giving the after-dinner speech. See you all inIndia!



MercuryDPM goes global: Conferences 2016   

2016-05-19

 Want to meet the MercuryDPM Team Look for us next time you visit a granular conference. We present at most major international conferences this year, so the chance is high that at least one of us is there.


Just in 2016, we will go to:

April 9-21: "https://www.partec.info/" Partec/Powtech in Nürnberg Messe, DE (Thomas Weinhart)        

May 22-26: http://www.vanderbilt.edu/emipmc2016/" EMI in Nashville, TN, USA (Thomas

Weinhart, Anthony Thornton)

July 24-29:href="http://wccm2016.org/main/ WCCM 12/APCOM 6 in Seoul, Korea (most of our team<

August 1-4: href="http://www.dem7.cn" DEM7 in Dalian, China (most of our team)

December 1-3: "http://www.pgbsia.com/" PGBSIA in Jaipur, India (most of our team)        

and many more, just look for us.

      

Training courses Fall 2016     

2016-06-24


This fall, MercuryLab is organising the next edition of our popular training courses in C++ programming and Discrete Particle Simulations. The dates are:


A Practical Introduction to C++                  

31st October - 2nd November 2016


The Fundamentals of Discrete Particle Simulations                  

2nd -4th November 2016


Courses will take place on the campus of the University of Twente in Enschede, The Netherlands.


For as little as 350 euros per course, MercuryLab can help you to design, write and run your own MercuryDPM simulation codes.


For more details, please refer to the http://www.mercurylab.org/ MercuryLab website or email us at  bookings@mercurylab.org




MercuryDPM in Asia   

2016-08-11

MercuryDPM have been touring the Orient! Over the past two weeks, our members have attended the 12th World Congres s in Computational Mechanics in Seoul, South Korea, and the 7th International Conference on Discrete Element Methods in Dalian,  China. The team has given a total of 11 talks, and chaired 4 sessions, with our Head of Sales, Stefan Luding, presenting both

a keynote speech and a plenary lecture.


[Picture Lost]


Above: Our CEO, CTO and Head of Sales giving the closing talk at the 7th International Conference on Discrete Element Methods


MercuryDPM at the CuriousU Festival

2016-08-19

This week, the Mercury team have been helping to organise and run an international summer school held at the University of Twente!


We have been teaching students from around the world about the important, fascinating, and often fun nature of granular and particulate media. Attendees have been shown some of the cutting-edge research topics in the field and, of course, learned how to use MercuryDPM to solve the problems that experiments alone can't manage.


So far, it has been an amazing week of sun, sand and simulations!


MercuryDPM at JMBC

2016-10-20

user and developer Irana Denissen will be presenting her

work on “formation in bidispersed shallow granular flows” in JMBC colloquium on computational multiphase flows in Amsterdam. If you want to find out more about Irana's work, and learn

a little more about MercuryDPM in the process, you can hear her talk on the 17th November. 


Training Courses Spring 2017   

2016-10-27

Interested in learning how to program in C++? Or maybe you want to know how to create your own particle simulations?


Then good news - the next round of MercuryLab training courses have been announced for 27th-31st March 2017.


The MercuryLab "http://www.mercurylab.org/?page_id=4"Practical Introduction to C++  will provide you with a crash course in C++ programming, teaching you everything you need to know to begin

 writing your own codes in only two days.           


The "http://www.mercurylab.org/?page_id=20"Fundamentals of Discrete Particle Simulations  will teach you

 how to use your C++ skills to create accurate, realistic simulations of real particulate systems.


If you want to attend either or both courses send an email to bookings@mercurylab.org, or for more information visit "http://www.mercurylab.org/?page_id=14" the MercuryLab website




Mercury Version 0.11 Documentation released

2016-11-10


Today the documentation for the new version of MercuryDPM (version 0.1

1) that was made available in August has been released, and can be found http://docs.mercurydpm.org/Release/0.11" here

       

Also now all versions are documentation can be found on our new full pag

e documentation website that is easy to use and clearer. Check out docs

.mercurydpm.org"docs.mercurydpm.org for our nightly updated documentation

of all versions of MercuryDPM.



Mercury Version 0.11 Release

2016-08-12

 A new version of MercuryDPM is available, version 0.11. The new features include


1. A complete documentation of MercuryDPM\xe2\x80\x99s core directory (Kernel/), previously known as src/, available at http://docs.mercurydpm.org/">docs.mercurydpm.org


2. Most importantly, new tests have been added to check if all the new features work.


3. MercuryDPM now supports Paraview. All your particle data can be viewed both in Paraview and XBalls. Please look into our documentation for further details h

ttp://docs.mercurydpm.org/Beta/d1/d6b/analysing.html http://docs.mercurydpm.org/Beta/d1/d6b/analysing.html


4. New tutorials have been added to showcase the features of our code, see Drivers/Tutorials. We are working on many more new tutorials for a comprehensive understandin

g of MercuryDPM.


5. A fully reorganised directory structure:


At the top level of the source directory you will find six main subdirectories:


Drivers/ 

This is the only directory you need to create new application codes or modify existing ones; all other directories contain either documentation or files re quired as input files in the codes contained in this directory. 


It has a series of subdirectories, for example Tutorials/, that contain a series of demo codes illustrating how to write applications in MercuryDPM.


Kernel/

        Contains the heart of the code. Users should not change the Kernel files. Instead, the classes and functions defined here are should be used (and possibly modified) in

the Driver files.


Scripts/ 

Contains a script used by <em>make test</em>, and <em>make fullTest</em> to check if two output files are equal.

        

Tools/ 

Contains the source files required to use paraview.</li>


Documentation/

        Contains the raw .dox files for creating documentation pages, like the one you are reading right now, as well as the images used in the documentation.</li>


Configuration/ 

        These files specify how the documentation and the code is configured.</li>


        6. All source files now have the license prepended.


        7. New Features


        a) Complex wall geometries are now possible such as axisymmetric walls (cones, cylinders, ...), screws, coils, and many more.

        b) Support for periodic boundaries, angled periodic boundaries (periodic boundaries in angular direction in a cylindrical geometry), circular periodic boundaries, Lees-

Edwards boundaries (periodic boxes with shear). Also introduced a deletion and insertion boundary.


        c) Multiple new types of interactions varying from elastic to adhesive to frictional, e.g. Hertzian visco-elastic, linear plastic-visco-elastic, linear visco-elastic, l

iquid bridges (Willet's model), reversible adhesive, sliding friction. For each of these interactions, species are defined that store the contact properties.


        8. In addition to the wallHandler and particleHandler, additional handlers have been introduced, please refer to the documentation


        boundaryHandler<br>

        interactionHandlerspeciesHandler


        9. A new class Files has been introduced to read and write files. The files can be accesses by the following variables:

        restartFile

        dataFile

        fstatFile

        statFile

        eneFile


        10. New coding guidelines have been adopted. Please check the link http://mercurydpm.org/development/coding-style-of-the-kernel http://mercurydpm.org/developm

ent/coding-style-of-the-kernel . As a result we have changed function names, such that they adhere to the new guidelines.


Beta Updated (Bug fix)

2015-09-11


Today the beta was updated to remove a bug.


The bug was a small problem with restarting. It only effected situations

 in which the time stamp was reset to zero on restart.


Beta Update (removing warnings)

2016-01-29


Today the beta was updated. This was a general clean up removing a lot

of warnings that were created by the current complies.


Beta Update (GCC 4.7 issue)    

2016-08-11


Today the beta was updated. This was some extra checks for GNU compiler

s as certain versions do not have all the 2011 features they first claim. Note,

the beta requires gcc at least 4.8 (not 4.7) as it use to claim.


Note, this update did not change the code, it only added an extra warni

ng that the code does not work in GCC 4.7 (despite the claims this compiler make

s about 2011 feature support).


Beta Update (Hertizan Viscoelastic Sliding Friction)

2016-08-18


Today the beta was updated. This fixed a bug that you could not have an

Viscoelastic Sliding Friction is a particle species. 


Note, this has no effect on add working code, it simple adds a missing speices type.


MercuryDPM in India

2016-12-01


The Mercury team have been extolling the virtues of the code at the PGBSIA conference in Jaipur, India.


The conference, sponsored by our sister company MercuryLab, featured 3 keynote speeches from our team members, in addition to another 3 regular talks.


We look forward to working with all our new acquaintances from the confe

rence!


Mercury at Physics@Veldhoven

2017-01-18


The MercuryDPM team are visiting Physics@FOM Fundamenteel Onderzoek der Materie), one of the largest Physics conferences in the Netherlands. While they handle the academic side, our sister company MercuryLab will be at the ‘Physics Meets Industry’ session, which aims to foster collaboration and inspiration at the interface between academics and commercial entities.


Beta Update (Bug Fix CubeInsertionBoundaries)

2017-05-05


The beta has been updated to fix a bug with CubeInsertionBoundaries. Previously the velocity on the particles in this region was incorrectly set.


Please update if you are using CubeInsertionBoundaries. Note, no driver changes required.


Beta Update (New feature added)

2017-03-29


Between the 27th-29th of March the Beta was updated to include extra demos to demonstrate MercuryCG. Also a basic MATLAB scripts to plot the output of this tool was included.




Beta Update

2018-01-08


In a recent update of MercuryDPM, we improved the workflow for bash-for-

Windows users by explicitly calling python2 for running the self-tests instead o

f python. This change does not affect your applications in any way. If the self-

tests start to fail after performing the update, you should remove the 2 from py

thon2 in Scripts/fpdiff.py, line 1.


Please let us know if this change is fix or created a new problem for you.

   

Beta Update Hertz

2018-05-22


The computation of the Hertz normal force was incorrect and has been patched: In the old version, the force

was computed f=4/3 E* sqrt(R) delta has now <f

=4/3 E* sqrt(R* delta)


Prestigious grant for code co-founder Thomas Weinhart

2018-06-11


Dr. Thomas Weinhart has been awarded the prestigious personal Vidi grant from NWO; see https://www.nwo.nl/en/research-and-results/programmes/Talent+Scheme/awards/vidi+awards/vidi+awards+2017" https://www.nwo.nl/en/research-and-results/programmes/Talent+Scheme/awards/vidi+awards/vidi+awards+2017 for details.


The Vidi grant programme is aimed at experienced researchers who have successfully conducted research for several years after gaining their PhD. Together with the Veni and Vici grants, Vidi forms part of the NWO innovation incentive scheme. Researchers in the innovation incentive scheme are free to submit their own subjects for consideration for funding. This way, NWO encourages innovative research that is driven by a desire to break new ground. NWO selects researchers on the basis of their quality, the innovative nature of their research, the expected scientific impact of the research proposal, and the potential for using the knowledge. In this funding round, research proposals were submitted by 571 researchers. Only 86 of them were awarded a grant.


Thomas' Vidi is aimed at developing a novel multiscale modelling framework to design and optimise particulate machinery on the computer, replacing time-consuming and expensive experimental methods by virtual prototyping. Applications are countless, from product development in the chemical, pharmaceutical, agri-food, energy and high-tech industries to the prediction of natural hazards, such as avalanches and erosion.</span>


The work will be undertaken in the MercuryDPM framework, massively extending its capabilities.


It is the second such grant for the co- founders of MercuryDPM, with https://www.utwente.nl/en/news/!/2014/5/342


See UT news article for more information: "https://www.utwente.nl

/nieuws/!/2018/6/168692/vidi-subsidie-voor-thomas-weinhart https://www.utwente.nl/nieuw

s/!/2018/6/168692/vidi-subsidie-voor-thomas-weinhart


Beta Update Python bug

2018-07-09    


Today an update to the beta was release such that the selftest will work with both python 2 and python 3. Fixing the problem of the test suit only worked with certain python installations.


Mercury 0.11.1 Released

2018-10-01


 MercuryDPM 0.11.1 was released on 1st October.


You can find the download instructions here: http://mercurydpm.org

        

To upgrade a 0.11 version, that was checkout using svn simple type: 'svn switch ^/Release/0.11.1'


REQUIRED DRIVER CHANGES (to update from MercuryDPM 0.11)


No driver changes are required if you have previously used Mercury 0.11.


KNOWN ISSUES


- If you are using the gcc compiler you will get compiler warnings that the deprecat

ed keyword is unknown. You can ignore these warnings, or turn them off using -Wnoattributes


NEW FEATURES IN 0.11.1

The following bug fixes have been applied:


             1) SelfTests now work with both python2 and python3.


             2) A mistake in the computation of the Hertz normal force has been patched: In the o

ld version , the force was computed as f=4/3 E^* sqrt(2 R^* delta) delta, this has been corrected

 to f=4/3 E^* sqrt(R^* delta) delta


             3) CubeInsertionBoundary has been patched: before the velocity was incorrectly set.


             The following changes have been made:


             1) Improved xballs parameters for Tutorial9.


             2) HertzianViscoelasticSlidingFrictionSpecies has been defined as a new template species.


             3) The script file loadstatistics.m has been added to Drivers/MercuryCG to plot results of MercuryCG in Matlab.


             4) One new demo have been added and second update to explain how to use MercuryCG: MercurySimpleDemos/FiveParticles.cpp and MercurySimpleDemos/LeesEdwardsSelfTest.cpp





MercuryDPM Training 29th October

2018-09-25


I would like to draw your attention to the following training courses in C++ and DPM simulations taking place between 29th October to 2nd November 2018 at the University of Twente.</span>


MercuryLab is offering the following training courses:

29th October - 31st October 2018


C++ for Programmers

31st October - 2nd November 2018

The Fundamentals of Discrete Particle Simulations (1 Place left)

C++ for Software Development (Sold Out)


Prices

Per course:

                Industry: 500 euros

                Academic: 400 euros

                UTwente: 350  euros 

    Attend 2 courses: receive 50euro discount off the total


The price includes all necessary course materials, lunch and refreshments.


The C++ for Programmers (formerly named A Practical Introduction to C++) course takes a practical, no-nonsense approach to teaching the widely used and versatile C++ programming language. The course is application-oriented, providing you with the skills and knowledge you need to produce well-written and useful C++ programs. The course is suitable for those who have a basic knowledge of C++ and wish to further extend and solidify their skills, as well as a first introduction for those who are entirely unfamiliar with the code.


Our Fundamentals of Discrete Particle Simulations course will teach you the background knowledge required to apply the Discrete Particle Method (DPM) to real scientific and industrial problems. You will learn how to design and create simulations which can accurately reproduce the dynamics and behaviours of particu

late and granular systems, and how you can use these simulations to better understand, predict, control and optimise real-world systems. Topics include an introduction to granular materials, contact modelling, contact detection, complex geometries, calibration and validation, and post-processing.


The course is entirely self-contained; however, a basic knowledge of programming is highly recommended. Those with a pre-existing knowledge of C++ will be able to gain a deeper appreciation of the techniques used and be able to perform more complex tasks. Therefore, if you do not have any experience in C++, you may also want to attend our C++ for programmers course and take advantage of our \xe2\x82\xac50 discount.


C++ for Software Development is intended for those who would like to learn how to develop large complex software packages. It teaches advanced programming concepts, such as dynamic memory management; optimising for speed and memory usage; advanced use of classes; error-handling; build systems (including cmake) and code management (including git and svn).  A knowledge of the basic C++ concepts is assumed.


The courses will be held at the Drienerburght Conference Hotel http://www.drienerburght.nl in Enschede, The Netherlands. The courses are two and a half days and scheduled such that they can be taken individually or together. The courses are suitable for students at undergraduate or postgraduate level as well as post-doctoral researchers and those working in industry, or even individuals interested in acquiring new skills and enhancing their employability. Due to the high teacher-to-attendee ratio (a minimum of 1 teacher per 3 attendees at all times) and the broad skill-set of our team, all levels of prior computing knowledge can be easily accommodated.


If you are interested in booking your place on one of our courses, or simply wish to find out more about the services we offer, please contact us at bookings@mercurylab.org.


Please also refer to our website www.MercuryLab.org for more details. For more information and the ability to download the open-source particle simulations code, please visit www.MercuryDPM.org.


We look forward to hearing from you and seeing you on one of our training courses.



MercuryDPM test fail on mac

2018-12-11


On the new mac operation system macOS Mojave (version 10.14.1) all the self test that use random numbers fail.


he effects all version MercuryDPM under both gcc and clang on the Mac. The problem only appears in the optimised version of the code and if compiled in non-optimised mode does not appear.


When the optimiser is turned on the random numbers change (but still appear to be random). We are confident that MercuryDPM is working normally and it still functions without problems on older version of the Mac

operation system, windows and Linux.


We are working on a solution to this problem. If you are using the current release the following test are expected to fail on the mac:


         26 - force_test0.data

         27 - force_test0.ene

         28 - force_test1.data

         29 - force_test1.ene

         30 - force_test2.data

         31 - force_test2.ene

         32 - force_test3.data

         33 - force_test3.ene

         34 - force_test4.data

         35 - force_test4.ene

         36 - force_test5.data

         37 - force_test5.ene

         38 - force_test6.data

         39 - force_test6.ene

         40 - force_test7.data

         41 - force_test7.ene

         42 - force_test8.data

         43 - force_test8.ene

         44 - force_test9.data

         45 - force_test9.ene

         68 - InsertionBoundarySelfTest.ene

         69 - InsertionBoundarySelfTest.restart

         70 - LeesEdwardsSelfTest.restart

         71 - ParticleCreationSelfTest.restart


MercuryMonth April 4 – May 4, 2019

2019-01-01


Dear all,


From April 4 to May 4, 2019 we will hold our fourth open-source code development workshop in the DesignLab of the University of Twente, Enschede, NL.


We intend to spend the month working on developing new features and improving existing features of MercuryDPM.

 It is a good chance for new Mercury users to meet the core http://mercurydpm.org/about-the-code/team MercuryDPM team, and to learn more about the code. Everyone is welcome to attend and participate in the effort. Just drop us an email at info@mercurydpm.org.


For new developers, we also recommend attending the MercuryLab https://mercurylab.co.uk/lab/portfolio/training-courses which take place the week before the coding workshop.


Best regards,

The MercuryDPM team


Coding workshop 27/4 – 22/5/2020

2020-01-01

Dear all,


 Happy new year!


From April 27 to May 22, 2020 we will hold our fifth annual

coding workshop, in Enschede, NL.


We intend to spend the month working on developing new featu

res and improving existing features of MercuryDPM.


It is a good chance for new Mercury users to meet the core http://mercurydpm.org/about-the-code/team ,  and to learn more about the code. Everyone is welcome to attend and  participate in the  effort. Just drop us an email at info@mercurydpm.org.


For new developers, we also recommend attending the MercuryLab https://mercurylab.co.uk/lab/portfolio/training-courses/ training courses, which take place the week before the coding workshop.


                    Best regards,

                    The MercuryDPM team



Postpone: Training courses

2020-01-10


Dear MercuryDPM developers and users,


Due to the current situation regarding the coronavirus and the government’s measures to control the coronavirus outbreak we have to postpone the training courses in C++ and DPM simulation until further notice. We will inform you about the new dates as soon as possible. I am very sorry for the inconvenience this has caused.


         Keep safe and healthy!


         Kind regards,


         The MercuryDPM team



Why MercuryDPM?

2020-03-19


https://www.youtube.com/watch?v=C6J-Pn3Bj60




1st oomph-lib MercuryDPM meeting

2020-04-15


15th of April  is the first oomp-lib/MercuryDPM meeting. Bring together the developers of both codes.


The programme and some (and pdf of the some of the talks) can be found here: http://confluence.mercurydpm.org/display/MER/First+oomphlib-MercuryDPM+meeting" 


Also on this page you can find a link to join the meeting.


Mercury Month 2020    

2020-04-17


The MercuryMonth 2020 is about the start. It will run from April 20-May 20 and this year will be completely online.  This month will result in the remerging of many new features into the Trunk and hopeful a new stable release.


 We will have regular meetings at 11am CEST time and have a google chat room setup for the month. These are open to also have a question about the code feel free to drop in and ask.


Also if you have developed a feature and would like help merging it into the main development branch now is the idea time. So please feel free to drop and merge your feature back in the main branch.


For a long time the developers of MercuryDPM has used a wiki to store meeting notes and plan future release, this wiki is now publicly available and can be accessed at: http://

confluence/mercurydpm.org/display/MER/MercuryDPM


Info about this month can be found/will appear here: http://confluence.mercurydpm.org/display/MER/MercuryMonth+2020


Have you published a paper with MercuryDPM; then we are more than happy to list it on our website just send us an e-mail and let us know.



One final note. The first full MercuryDPM is now available and can be downloaded at https://www.sciencedirec

t.com/science/article/pii/S0010465519304357?via%3Dihub">https://www.sciencedirect.com/science/article/piiS0010465519304357?via%3Dihub


MercuryDPM webinar: Invited talk given by Sebastian Eibl on 28-04-2020 at 14:00

2020-04-28


We are glad to inform you that we have an invited speaker Sebastian Eibl  from Erlangen to give a webinar on 28th-Apr-2020 at 14:00


                Title: Parallelization and Code Generation Used by MESA-PD

                Presenter: Sebastian Eibl


                Abstract:

  

                With the growing compute power of today's supercomputers the number of particles that can be simulated with a DEM software package increases rapidly. However, to use the compute power efficiently the software has to be able to run in a distributed fashion on possibly thousands of compute nodes. In this talk I will present the MPI parallelization and code generation employed for the MESA-PD software framework. The parallelization is focused on short-ranged interactions and supports the synchronization of contact histories. It has proven to scale up to almost two million processes running concurrently. Due to the high complexity and error proneness of the synchronization algorithms code generation techniques are applied to reduce the burden of the programmer. The code generation also helps to speed up the implementation of new models and  allows for rapid prototyping. Since good efficiency on multiple nodes can only be achieved if the workload is distributed equally, the talk will also showcase the runtime load balancing implemented in MESA-PD. The load balancing used for MESA-PD is based on a forest of octrees domain partitioning scheme that can be refined and redistributed at runtime.

   

Here is the link:

                https://meet.google.com/sed-opre-rud"

                                Please feel free to drop in if you find this is interesting.

                   

                                We are looking forward to seeing you in the GoogleMeet.