Accelerating Polyhedral Discrete Element Method with CUDA

This paper presents an efficient CUDA-based implementation of a nonspherical discrete element method where irregular particles are described by using polyhedrons. Two strategies are employed to exploit the parallelism of the numerical method. One is to perform contact detection based on the contact...

Full description

Bibliographic Details
Main Authors: Tongge Wen, Xiangyuan Zeng
Format: Article
Language:English
Published: IOP Publishing 2023-01-01
Series:The Astronomical Journal
Subjects:
Online Access:https://doi.org/10.3847/1538-3881/acfc46
_version_ 1827790920890712064
author Tongge Wen
Xiangyuan Zeng
author_facet Tongge Wen
Xiangyuan Zeng
author_sort Tongge Wen
collection DOAJ
description This paper presents an efficient CUDA-based implementation of a nonspherical discrete element method where irregular particles are described by using polyhedrons. Two strategies are employed to exploit the parallelism of the numerical method. One is to perform contact detection based on the contact pair level instead of the traditional particle level. The second is to reduce the computational burden of each kernel function by allocating thread blocks reasonably. Contact detection between potential contact pairs is the most complicated, time-consuming, and essential process for the polyhedral discrete element method. The linear bounding volume hierarchies are introduced to fix this issue. The hierarchies of the bounding volume tree are organized in a spatially coherent way. Such a structure can minimize branch divergence and is very suitable for parallel implementation with GPU. Two numerical examples are presented to show the performance of the code. It is found from the scenario of two sphere collision that improving the mesh resolution of polyhedral particles can reduce the computational error while slowing down the computational speed correspondingly. A trade-off must be made between accuracy and efficiency. The other example of self-gravitating aggregation demonstrates the code is convergent, stable, and highly efficient. Particularly, with a mainstream GPU, the proposed method easily performs hundreds of times faster than the serial CPU code that does the same function.
first_indexed 2024-03-11T17:39:44Z
format Article
id doaj.art-56dab7ffcf534989bf76d4d2536e00fa
institution Directory Open Access Journal
issn 1538-3881
language English
last_indexed 2024-03-11T17:39:44Z
publishDate 2023-01-01
publisher IOP Publishing
record_format Article
series The Astronomical Journal
spelling doaj.art-56dab7ffcf534989bf76d4d2536e00fa2023-10-18T12:46:16ZengIOP PublishingThe Astronomical Journal1538-38812023-01-01166519410.3847/1538-3881/acfc46Accelerating Polyhedral Discrete Element Method with CUDATongge Wen0https://orcid.org/0000-0001-9883-7025Xiangyuan Zeng1School of Automation, Beijing Institute of Technology , Beijing 100081, People's Republic of China ; zeng@bit.edu.cnSchool of Automation, Beijing Institute of Technology , Beijing 100081, People's Republic of China ; zeng@bit.edu.cnThis paper presents an efficient CUDA-based implementation of a nonspherical discrete element method where irregular particles are described by using polyhedrons. Two strategies are employed to exploit the parallelism of the numerical method. One is to perform contact detection based on the contact pair level instead of the traditional particle level. The second is to reduce the computational burden of each kernel function by allocating thread blocks reasonably. Contact detection between potential contact pairs is the most complicated, time-consuming, and essential process for the polyhedral discrete element method. The linear bounding volume hierarchies are introduced to fix this issue. The hierarchies of the bounding volume tree are organized in a spatially coherent way. Such a structure can minimize branch divergence and is very suitable for parallel implementation with GPU. Two numerical examples are presented to show the performance of the code. It is found from the scenario of two sphere collision that improving the mesh resolution of polyhedral particles can reduce the computational error while slowing down the computational speed correspondingly. A trade-off must be made between accuracy and efficiency. The other example of self-gravitating aggregation demonstrates the code is convergent, stable, and highly efficient. Particularly, with a mainstream GPU, the proposed method easily performs hundreds of times faster than the serial CPU code that does the same function.https://doi.org/10.3847/1538-3881/acfc46Astronomical simulationsN-body problem
spellingShingle Tongge Wen
Xiangyuan Zeng
Accelerating Polyhedral Discrete Element Method with CUDA
The Astronomical Journal
Astronomical simulations
N-body problem
title Accelerating Polyhedral Discrete Element Method with CUDA
title_full Accelerating Polyhedral Discrete Element Method with CUDA
title_fullStr Accelerating Polyhedral Discrete Element Method with CUDA
title_full_unstemmed Accelerating Polyhedral Discrete Element Method with CUDA
title_short Accelerating Polyhedral Discrete Element Method with CUDA
title_sort accelerating polyhedral discrete element method with cuda
topic Astronomical simulations
N-body problem
url https://doi.org/10.3847/1538-3881/acfc46
work_keys_str_mv AT tonggewen acceleratingpolyhedraldiscreteelementmethodwithcuda
AT xiangyuanzeng acceleratingpolyhedraldiscreteelementmethodwithcuda