实现计算流体力学大规模实时模拟的方法

文档序号:9217366阅读:1109来源:国知局
实现计算流体力学大规模实时模拟的方法
【技术领域】
[0001] 本发明实施例涉及计算流体力学技术领域,尤其涉及一种实现计算流体力学大规 模实时模拟的方法。
【背景技术】
[0002] 计算流体力学是对在时间与空间上连续的流体力学控制方程进行离散,建立离散 节点上变量满足的代数方程组,并利用计算机进行数值求解。由流体力学的基本特点可以 发现,流体力学的发展包括以下几个方面:建立流体力学控制方程;建立高精度稳定的离 散算法;对流体空间区域进行离散划分;代数方程的高效快速的数值求解算法;计算机程 序实现以及高效求解;以及方法的理论实验验证。
[0003] 在实际工业应用中,一方面需要研宄的物理对象空间尺寸大,如轮船,飞机,工业 反应设备(米级),需要研宄的过程演化时间长,如石油储存过程需要研宄的时间尺度以天 计算;另一方面流动现象特征时空尺度小,实际工业设备中流动多为湍流,流动的时空特征 尺度为科尔莫戈罗夫尺度Kolmogorov scale,一般远远小于设备尺度及关心的物理时间尺 度,因此对实际工业应用问题的准确模拟预测需要巨大计算量。与此同时工程实际希望模 拟预测的速度越快越好,在尽可能短的时间内得到需要的模拟结果。因此需要大规模计算 流体力学计算进行加速。
[0004] 而计算流体力学模拟一般为多物理场耦合求解,在求解过程中不同方程求解的速 度不一致,导致计算速度受到了计算效率最低的方程的控制。例如在格子波尔兹曼方法耦 合求解雷诺时均的湍流模型时,湍流流动方程的求解占据了整个求解过程的绝大多数时 间,极大降低了模拟计算的效率,是计算的瓶颈。

【发明内容】

[0005] 本发明实施例提供一种实现计算流体力学大规模实时模拟的方法,能够提高方程 求解速度,提高计算效率。
[0006] 本发明实施例提供了一种实现计算流体力学大规模实时模拟的方法,包括:
[0007] 步骤11、接收模拟请求消息,所述模拟请求消息中包含模拟对象;
[0008] 步骤12、从文件中读取模拟对象、模拟对象的空间离散网格信息以及计算方程组 所需的数据信息,所述数据信息包含区域划分参数和时间步长信息;其中,不同计算复杂度 的方程组对应不同时间步长信息;
[0009] 步骤13、根据所述区域划分参数和模拟对象的空间离散网格信息为各进程分配计 算子区域,分别确定各进程对应计算子区域中与相邻进程对应计算子区域无数据交换的内 部节点、与相邻进程对应计算子区域有数据交换的边界节点及计算边界节点所需要的相邻 进程对应计算子区域计算数据的虚拟节点,并开辟所述虚拟节点空间;所述计算子区域包 括不同计算复杂度的方程组对应的不同网格信息;
[0010] 步骤14、各进程根据所述网格信息和所述时间步长信息在对应的计算子区域上求 解方程组,重复步骤14直到达到约束条件。
[0011] 本发明实施例通过接收模拟请求消息,从文件中读取计算方程组所需的数据信息 和模拟对象,所需的数据信息包含模拟对象的网格信息、区域划分参数和时间步长信息;其 中,不同计算复杂度的方程组对应不同的网格信息和/或不同时间步长信息;根据所述区 域划分参数和模拟对象的网格信息为各进程分配计算子区域,各进程根据所述网格信息和 所述时间步长信息在对应的计算子区域上求解方程组,直到达到约束条件。本发明实施例 在保证求解时空精度的情况下根据方程组的计算复杂度为方程组使用不同的时空尺度, 解决求解复杂不同方程存在计算速度瓶颈问题,提高了方程求解速度和计算效率。
【附图说明】
[0012] 图la为本发明实施例一提供的实现计算流体力学大规模实时模拟的方法的流程 示意图;
[0013] 图lb为本发明实施例一提供的实现计算流体力学大规模实时模拟的方法中的区 域划分示意图;
[0014] 图lc为本发明实施例一提供的实现计算流体力学大规模实时模拟的方法中的不 同类型节点分布示意图;
[0015] 图2是本发明实施例二提供的实现计算流体力学大规模实时模拟的方法的流程 示意图;
[0016] 图3是本发明实施例三提供的实现计算流体力学大规模实时模拟的方法的流程 示意图;
[0017] 图4a是本发明实施例四提供的实现计算流体力学大规模实时模拟的方法的模拟 效果不意图;
[0018] 图4b是现有技术中模拟方法的模拟效果示意图;
[0019] 图4c是本发明实施例四提供的实现计算流体力学大规模实时模拟的方法与现有 技术中模拟方法的计算时间比较示意图。
【具体实施方式】
[0020] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描 述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便 于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0021] 本发明实施例提供的实现计算流体力学大规模实时模拟的方法的执行主体,可为 安装在终端设备上的实现计算流体力学大规模实时模拟的装置,该装置可以采用硬件或软 件实现。
[0022] 实施例一
[0023] 图la为本发明实施例一提供的实现计算流体力学大规模实时模拟的方法的流程 示意图,如图la所示,具体包括:
[0024] 步骤11、接收模拟请求消息,所述模拟请求消息中包含模拟对象;
[0025] 例如,模拟请求消息可以为实现计算流体力学大规模实时模拟的装置上的启动按 钮或开关等。模拟对象立方体槽等。
[0026] 步骤12、从文件中读取模拟对象、模拟对象的空间离散网格信息以及计算方程组 所需的数据信息,所述数据信息包含区域划分参数和时间步长信息;其中,不同计算复杂度 的方程组对应不同的网格信息和/或不同时间步长信息;
[0027] 其中,文件中存储了模拟对象的空间离散网格信息,包括大尺寸网格和小尺寸网 格,还存储了计算方程组所需的数据信息,这些数据信息均是由专业人员事先根据实际的 流动或者物理情况给出的各个方程组的求解所需的必要参数。例如,需要计算的方程组为 方程组1、方程组2和方程组3,且三个方程组对应的计算复杂度均不相同,则可以将方程组 1、方程组2和方程组3的计算子区域预先设置为下表一所示:
[0029] 其中,网格尺寸1、网格尺寸2和网格尺寸3可以互不相同,时间步长1、时间步长 2和时间步长3可以互不相同。
[0030] 步骤13、根据所述区域划分参数和模拟对象的空间离散网格信息为各进程分配计 算子区域,分别确定各进程对应计算子区域的网格中与相邻进程对应计算子区域无数据交 换的内部节点、与相邻进程对应计算子区域有数据交换的边界节点及计算边界节点所需要 的相邻进程对应计算子区域计算数据的虚拟节点,并开辟所述虚拟节点空间;所述计算子 区域包括不同计算复杂度的方程组对应的不同网格信息;
[0031] 例如,在实际计算时,采用多个进程同时进行计算。具体的,将当地流动计算区域 分配到各个进程中过去。另外,在区域划分的过程中应根据模拟对象的几何形状采取不同 的网格划分方式(例如一维、二维、或三维分割),例如,如图lb所示,为模拟对象流动区 域二维划分示意图,区域划分后网格中的虚拟节点、边界节点和内部节点的分布如图lc所 示。而且区域划分过程中应遵循以下原则:尽可能使得每个进程对应的计算网格数量相 近,使得各个进程之间的计算速度匹配;不同网格划分方式是为了尽可能减少进程之间数 据交换量,减少通讯,同时可以通过先计算边界节点,将边界节点的数据传递与内部节点 的计算同时进行来掩盖相邻计算域之间的数据交换带来的通讯开销,从而提高并行效率, 加快计算速度。
[0032] 步骤14、各进程根据所述网格信息和所述时间步长信息在对应的计算子区域上求 解方程组,重复步骤14直到达到约束条件。
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1