\( \usepackage{euler} % must be loaded before fontspec for the whole doc (below); this must be kept for pngmath, however \usepackage{hyperref} \usepackage{amsmath} \usepackage{amsbsy} %\usepackage{mathabx} \usepackage{underscore} \usepackage[all]{xy} % Metadata of the pdf output \hypersetup{pdftitle={Yade Documentation}} \hypersetup{pdfauthor={Smilauer, V., et al.}} \hypersetup{pdfkeywords={Discrete element method, granular materials, contact law, hydromechanical coupling}} % symbols \renewcommand{\mat}{\boldsymbol} \renewcommand{\vec}{\boldsymbol} \renewcommand{\tens}{\boldsymbol} %normalized and locfram here \def\normalized#1{\widehat{#1}} \def\locframe#1{\widetilde{#1}} % timestep \def\Dt{\Delta t} \def\Dtcr{\Dt_{\rm cr}} % algorithm complexity \def\bigO#1{{\mathcal{O}(#1)}} % variants for greek symbols \let\epsilon\varepsilon \let\theta\vartheta \let\phi\varphi % shorthands \let\sig\sigma \let\eps\epsilon % variables at different points of time \def\prev#1{#1^-} \def\pprev#1{#1^\ominus} \def\curr#1{#1^{\circ}} \def\nnext#1{#1^\oplus} \def\next#1{#1^+} % shorthands for geometry \def\currn{\curr{\vec{n}}} \def\currC{\curr{\vec{C}}} \def\uT{\vec{u}_T} \def\curruT{\curr{\vec{u}}_T} \def\prevuT{\prev{\vec{u}}_T} \def\currn{\curr{\vec{n}}} \def\prevn{\prev{\vec{n}}} % motion \def\pprevvel{\pprev{\dot{\vec{u}}}} \def\nnextvel{\nnext{\dot{\vec{u}}}} \def\curraccel{\curr{\ddot{\vec{u}}}} \def\prevpos{\prev{\vec{u}}} \def\currpos{\curr{\vec{u}}} \def\nextpos{\next{\vec{u}}} \def\curraaccel{\curr{\dot{\vec{\omega}}}} \def\pprevangvel{\pprev{\vec{\omega}}} \def\nnextangvel{\nnext{\vec{\omega}}} \def\loccurr#1{\curr{\locframe{#1}}} \def\numCPU{n_{\rm cpu}} \DeclareMathOperator{\Align}{Align} \DeclareMathOperator{\sign}{sgn} % sorting algorithms \def\isleq#1{\currelem{#1}\ar@/^/[ll]^{\leq}} \def\isnleq#1{\currelem{#1}\ar@/^/[ll]^{\not\leq}} \def\currelem#1{\fbox{$#1$}} \def\sortSep{||} \def\sortInv{\hbox{\phantom{||}}} \def\sortlines#1{\xymatrix@=3pt{#1}} \def\crossBound{||\mkern-18mu<} \)

# Welcome to Yade - Open Source Discrete Element Method

The Yade project is a strong community based entirely on peaceful international cooperations. This diverse foundation has bound us to many brilliant scientists from Ukraine and Russia who are unjustly affected by the current hostilities perpetrated by Russia on Ukraine. We, the Yade developers and users, hope for the immediate cessation of agression followed by the prompt restoration of peace in Ukraine. We stand with the people of Ukraine, the citizens of Russia, and the thousands of Russian scientists who vehemently protest this war. As these scientists point out, this unlawful invasion puts many innocent lives at risk in both Ukraine and Russia. Without a doubt, we will continue to keep these Ukranians and Russians in our thoughts as we await a peaceful conclusion ahead.

Yade is an extensible open-source framework for discrete numerical models, focused on the Discrete Element Method. The computation parts are written in c++ using a flexible object model and allowing independent implementation of new algorithms and interfaces. Python is used for rapid and concise scene construction, simulation control, postprocessing and debugging.

Yade is located at yade-dem.org, which contains this documentation and wiki. Development is kindly hosted on GitLab ; they are used for source code and bug tracking. Building, regression tests and packages distribution are hosted on servers of the Grenoble Geomechanics group at Laboratoire 3SR, UMS Gricad and Gdańsk University of Technology.

Yade supports high precision calculations (following this publication) and Python 3 (see backward compatibility for Python 2). The development branch is on GitLab.

This documentation describes Yade version 2026.1.0, see changelogs. You can also download a PDF version of this documentation.

## Acknowledging Yade

Please make sure you read the "Acknowledging Yade" section if you plan to use Yade for publications.

## Documentation

Introduction
getting familiar with Yade

Tutorial
first steps with practical examples

User's Manual
functionality guide and description

Programmer's Manual
understanding and modifying the internals of Yade

DEM Formulation
the Discrete Element Method (DEM)

Class reference
simulation building blocks, c++ & python

Yade modules
python modules extending Yade

Multiscale FEMxDEM
Parallel coupling using Escript and Yade

References articles cited in the documentation Installation from binaries and sources Full contents with all the details | Index all functions, classes, attributes Search search the documentation Yade Technical Archive documents written by and for the Yade community

## Yade Community

Authors and contributors
information about the people working on Yade

Public support and Discussions
Getting help, getting in touch

Publications
on Yade itself or done with Yade

Screenshots and videos
Simulation examples; feel free to add yours.

Discord server
A place to meet, chat, and collaborate

Twitter account
Follow Yade news and interact with us

Paid support and Consulting
Need professional help?

Yade community events
community events