The invention belongs to the field of computational fluid dynamics and high-performance computing, and relates to a GPU parallel acceleration technology of discontinuous Galerkin method (DGM), in particular to a GPU acceleration method of discontinuous Galerkin method for solving Euler equation. The method adopts tetrahedral grid to divide the solution area, and takes the basis function, Gauss integral and numerical flux as the basis, GPU as the main calculation hardware, CUDA as the programming model to establish the GPU parallel framework of discontinuous Galerkin method. GPU multithread management is realized by CUDA parallel framework, and efficient memory access is realized by the designed data structure and thread access mode. In order to solve the problem that area division needs data exchange between cells and is not independent, the method of processing two cells according to the parallel computing thread of face grid and each face grid is adopted, which not only avoids the problem of cell independence, but also realizes large-scale parallel, and reduces the calculation amount.
【技术实现步骤摘要】
一种间断伽辽金法求解欧拉方程的GPU加速方法
本专利技术属于计算流体力学、高性能计算领域,涉及一种间断伽辽金方法(DGM)的GPU并行加速技术,具体为一种间断伽辽金法求解欧拉方程的GPU加速方法。
技术介绍
欧拉方程是流体力学中描述无粘流体的方程组,其形式如下:Ut+▽·F=0(1)其中U代表守恒量、Ut代表守恒量对时间t的偏导数,F代表守恒通量,▽·F代表守恒通量的散度,且在三维情况下,有其中ρ为气体密度,u、v、w为气体的三个速度分量,e为完全气体的单位体积总能量,p为气体压强。对于上述欧拉方程的数值求解,通常采用以下几种方法:有限差分法、有限体积法、有限元法。其中有限差分法需要采用结构网格,且计算量小,常用于处理结构网格划分的简单几何区域上的求解,而对于复杂几何区域的求解则相对困难。有限体积法可以求解结构或非结构网格,因此可以处理复杂集合区域,应用范围相对较广,但其难以构造高阶格式(需要扩展模板),且构造的高精度格式要么求解复杂、要么不够紧致。而间断伽辽金方法(DGM)则结合了有限元和有限体积方法,能够处理任意网格和复杂几何区域,而且DGM可以通过简单地增加单元内的解多项式的次数进而增加单元自由度(DOFs)来获得更高的空间精度,是一种高精度的流场求解方法。间断伽辽金法的数值求解过程如下:将欧拉方程的两端乘以试探函数Φ并在体积Ω上积分,经积分变换可以得到伽辽金弱形式将积分区域Ω划分为四面体网格,并取其中的一个单元Ωk来考察上述方程,为了保证单元之间 ...
【技术保护点】
1.一种间断伽辽金法求解欧拉方程的GPU加速方法,包括以下几个步骤:/n步骤1、读取计算网格的信息,并将面网格按照边界类型排序;/n步骤2、在CPU端进行几何参数的预计算,并将结果拷贝到GPU显存;/n步骤3、在GPU端完成流场的初始化,并且将时间步初始化为0;初始化时分配与单元数量一致的线程数,每个线程负责初始化单元内的所有场;/n步骤4、判断计算时间步是否达到预定的终止时间步,若达到,结束计算,否则继续;/n步骤5、在GPU端进入时间推进,具体为:依次启动面上场计算核函数、面积分核函数、体积分核函数、以及时间更新核函数。/n步骤6、再次判断当前计算时间步是否达到预定的后处理时间步,若达到,同步GPU线程,并将计算结果拷贝到CPU端,将当前计算得到的流场数据输出;否则不进行任何操作。/n步骤7、时间步自增1,转至步骤4。/n上述步骤中GPU显存不存储原始的网格信息而只存储:计算直接需要的且由原始数据计算得到的数据、网格拓扑关系以及流场数据,使用数组结构体的方式组织并存储在GPU全局内存中,而CPU端仅在预计算时保留网格原始信息和流场数据,在预计算完成后释放,仅保留计算的场数据;对于高 ...
【技术特征摘要】
1.一种间断伽辽金法求解欧拉方程的GPU加速方法,包括以下几个步骤:
步骤1、读取计算网格的信息,并将面网格按照边界类型排序;
步骤2、在CPU端进行几何参数的预计算,并将结果拷贝到GPU显存;
步骤3、在GPU端完成流场的初始化,并且将时间步初始化为0;初始化时分配与单元数量一致的线程数,每个线程负责初始化单元内的所有场;
步骤4、判断计算时间步是否达到预定的终止时间步,若达到,结束计算,否则继续;
步骤5、在GPU端进入时间推进,具体为:依次启动面上场计算核函数、面积分核函数、体积分核函数、以及时间更新核函数。
步骤6、再次判断当前计算时间步是否达到预定的后处理时间步,若达到,同步GPU线程,并将计算结果拷贝到CPU端,将当前计算得到的流场数据输出;否则不进行任何操作。
步骤7、时间步自增1,转至步骤4。
上述步骤中GPU显存不存储原始的网格信息而只存储:计算直接需要的且由原始数据计算得到的数据、网格拓扑关系以及流场数据,使用数组结构体的方式组织并存储在GPU全局内存中,而CPU端仅在预计算时保留网格原始信息和流场数据,在预计算完成后释放,仅保留计算的场数据;对于高斯积分点的基函数值、高斯积分权重、常数质量矩阵三类所有线程都会使用到的常数,存储于GPU的常量...
【专利技术属性】
技术研发人员:徐立,王晗,杨中海,李斌,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。