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...
Main Authors: | , |
---|---|
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 |