| 摘要 | 第1-4页 |
| ABSTRACT | 第4-8页 |
| 第1章 绪论 | 第8-12页 |
| ·问题提出 | 第8页 |
| ·研究背景 | 第8-9页 |
| ·研究意义 | 第9-10页 |
| ·主要研究内容 | 第10-11页 |
| ·论文的组织结构 | 第11-12页 |
| 第2章 DEM仿真原理、GPU和OpenGL编程概述 | 第12-24页 |
| ·离散单元法(DEM)概述 | 第12-14页 |
| ·法线方向力 | 第12-13页 |
| ·切向力及合力 | 第13页 |
| ·蛙跳积分 | 第13-14页 |
| ·CPU+GPU异构编程概述 | 第14-19页 |
| ·CPU和GPU设计架构 | 第14-15页 |
| ·CPU和GPU比较 | 第15-16页 |
| ·CUDA存储器模型 | 第16-17页 |
| ·CUDAC | 第17-18页 |
| ·CUDA程序基本框架 | 第18-19页 |
| ·OpenGL编程概述 | 第19-23页 |
| ·OpenGL管线 | 第20-21页 |
| ·OpenGL初始化 | 第21页 |
| ·OpenGL投影设置 | 第21-22页 |
| ·OpenGL光照设置 | 第22-23页 |
| ·本章小结 | 第23-24页 |
| 第3章 粒子系统主机端的设计与实现 | 第24-31页 |
| ·系统的文件安排 | 第24-25页 |
| ·C++后缀的文件 | 第24-25页 |
| ·CUDA后缀的文件 | 第25页 |
| ·粒子系统类 | 第25-27页 |
| ·仿真参数初始化 | 第26页 |
| ·系统的内存分配与释放 | 第26-27页 |
| ·系统的主函数文件 | 第27-30页 |
| ·GLUT编程框架 | 第28-29页 |
| ·螺杆挤出器模型的绘制 | 第29-30页 |
| ·本章小结 | 第30-31页 |
| 第4章 粒子系统设备端的设计与实现 | 第31-41页 |
| ·线程维度划分 | 第32页 |
| ·粒子状态更新 | 第32-33页 |
| ·邻域搜索 | 第33-36页 |
| ·划分网格 | 第33-34页 |
| ·哈希值排序 | 第34-35页 |
| ·计算排序后的粒子数组 | 第35-36页 |
| ·粒子碰撞处理 | 第36-40页 |
| ·粒子间的碰撞 | 第36页 |
| ·粒子与螺筒与螺杆的碰撞 | 第36-37页 |
| ·粒子与螺纹的碰撞 | 第37-40页 |
| ·本章小结 | 第40-41页 |
| 第5章 粒子系统的改进 | 第41-51页 |
| ·使用shared memory和线程同步 | 第41-43页 |
| ·使用CUDA流 | 第43-45页 |
| ·使用CUDA与OpenGL的互操作 | 第45-46页 |
| ·CUDA程序其他功能实现及策略 | 第46-50页 |
| ·程序控制分支优化 | 第46-47页 |
| ·寄存器使用优化 | 第47-48页 |
| ·线程维度划分策略 | 第48页 |
| ·Memory coalescing策略 | 第48-49页 |
| ·使用CUDA事件 | 第49-50页 |
| ·本章小结 | 第50-51页 |
| 第6章 实验与结果分析 | 第51-65页 |
| ·实验条件与初始数据 | 第51-53页 |
| ·系统运行效果 | 第53-57页 |
| ·各种优化策略效率的实验分析 | 第57-60页 |
| ·使用shared memory | 第57-58页 |
| ·使用CUDA流 | 第58-59页 |
| ·使用CUDA与OpenGL互操作 | 第59-60页 |
| ·不同显卡试验数据对比 | 第60-62页 |
| ·实验结果分析 | 第62-64页 |
| ·本章小结 | 第64-65页 |
| 第7章 全文总结 | 第65-67页 |
| ·研究成果及结论 | 第65页 |
| ·下一步的工作 | 第65-67页 |
| 致谢 | 第67-68页 |
| 参考文献 | 第68-71页 |
| 攻读学位期间的研究成果 | 第71页 |