Ultra High Speed Discrete Element Simulation Engine
碩士 === 國立臺灣科技大學 === 營建工程系 === 106 === Discrete Element Method (DEM) is a numerical method that has many applications in geotechnical engineering. It divides the continuous time into many time steps and calculate the physical behavior of discrete elements in each time step. Accurate DEM analyses need...
Main Authors: | , |
---|---|
Other Authors: | |
Format: | Others |
Language: | zh-TW |
Published: |
2018
|
Online Access: | http://ndltd.ncl.edu.tw/handle/56zhu8 |
Summary: | 碩士 === 國立臺灣科技大學 === 營建工程系 === 106 === Discrete Element Method (DEM) is a numerical method that has many applications
in geotechnical engineering. It divides the continuous time into many time steps and
calculate the physical behavior of discrete elements in each time step. Accurate DEM
analyses needs to calculate many elements and collisions between them with tiny time
discretization and thus many time steps. Therefore, simulations using DEM takes too
long to be practical. This study develops a program that utilizes graphical processing
unit (GPU) to conduct DEM analyses with reduced computing time.
This study consists of the following four main steps. The commercial software
PFC3D
.is firstly studied to understand its inner work. A GPGPU code is then
developed using object-oriented programming to allow flexibility and extensibility.
The calculation results from the developed code are compared and validated with
PFC3D. Afterwards, several collision detection algorithm are studied and one is then
selected to be implemented in the program. Finally, the code is extended with a new
computing engine that uses OpenCL to drive the GPU device to execute the full discrete
elements analysis.
This study further compares the performance of the DEM calculated by GPU and
CPU under different problem sizes and different floating-point precisions. It is
concluded that the DEM performance using GPU can be 100 times better than CPU
when the number of discrete elements is large. It is also concluded that the
performance of the developed code is memory bound (by the memory bandwidth)
rather than bound by the compute capability (CPU bound).
|
---|