↓ Skip to main content
  1. Theses/

Discrete Element Code

Discrete Element Code
Numerical Programming Particles

Why it matters

Over the last decades, Discrete Element simulations have proven to be a powerful tool for simulating a wide range of phenomena, from particle-based representations of continua that capture fracture mechanisms to industrial applications such as hoppers, conveyor belts and other machinery in mining, pharmaceuticals and more. Our research group mainly uses this method to generate concrete specimens on which meso-scale Finite Element analyses are then performed. Working directly inside the code lets you deal with many problems that are hard to interpret and solve as an end user, such as contact algorithms or the stabilisation of the equations of motion. Another interesting aspect is the chance to improve the performance of your own code, both algorithmically and computationally, so as to run your simulations efficiently on a computing server. The thesis focuses on developing the code in C++, combined with simulations to test what has been implemented: you will be supported through the first steps of setting up the development environment, and by the end of the thesis you will be able to manage and modify the code on your own.

What you'll do

  • Implement superquadric particles (spheres, ellipsoids, etc.) and clusters of them, together with specialised contact algorithms, and benchmark them to estimate computational efficiency.
  • Implement and calibrate tangential contacts and the viscous forces of the cementitious fluid, modifying the integration scheme to stabilise the simulation.
  • Implement concave particles by decomposing them into clusters of convex particles.
  • Manage and simplify an STL library of aggregates, from complex meshes (obtained through industrial tomography) to simplified particles, in order to run efficient yet realistic analyses.
  • Proposals from students for developments not mentioned here are welcome.

Prerequisites

  • A good aptitude for working at a computer.
  • Basic programming skills (MATLAB or any other language): not essential, but useful to speed up the first steps.

Tools

  • Integrated development environment for research software in C++.
  • Modern scientific libraries such as the Visualization Toolkit (VTK), the Intel Math Kernel Library (MKL) and others.
  • 3D modelling software (Rhinoceros recommended), to handle the geometry of the aggregates (only for some topics).
  • A computing cluster (HPC - High Performance Computing), to run simulations efficiently.

Supervisor

Prof. Gianluca Mazzucco · gianluca.mazzucco@unipd.it