CN116306380A - 一种基于流体力学网格处理方法、装置、设备及介质 - Google Patents

一种基于流体力学网格处理方法、装置、设备及介质 Download PDF

Info

Publication number
CN116306380A
CN116306380A CN202310429985.9A CN202310429985A CN116306380A CN 116306380 A CN116306380 A CN 116306380A CN 202310429985 A CN202310429985 A CN 202310429985A CN 116306380 A CN116306380 A CN 116306380A
Authority
CN
China
Prior art keywords
grid
algorithm
renumbering
target
hydrodynamic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310429985.9A
Other languages
English (en)
Inventor
刘杰
张华健
郭晓威
李超
宋敏
梁越超
夏睿
王庆林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202310429985.9A priority Critical patent/CN116306380A/zh
Publication of CN116306380A publication Critical patent/CN116306380A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/28Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/08Fluids
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/14Force analysis or force optimisation, e.g. static or dynamic forces
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Fluid Mechanics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种基于流体力学网格处理方法、装置、设备及介质,涉及计算流体力学领域。包括:获取包含目标流体的当前特征数据的网格;将网格输入至目标网格重编号算法中;利用目标网格重编号算法进行流体力学数值模拟;根据流体力学数值模拟的结果确定预设时刻目标流体的特征数据。该方法中,由于基于局部异常因子算法的网格重编号质量判别指标将稀疏矩阵内部的非零元的聚集程度纳入重编号算法需要的考量范畴,从而能够有效判别流体力学网格重编号算法的质量;其次,由于选取出了合适的重编号算法,从矩阵的组装和求解两个方面大幅缩短数值模拟的执行时间,提高可基于流体力学数值模拟计算的整体迭代时间。

Description

一种基于流体力学网格处理方法、装置、设备及介质
技术领域
本申请涉及计算流体力学领域,特别是涉及一种基于流体力学网格处理方法、装置、设备及介质。
背景技术
计算流体力学(Computational Fluid Dynamics,CFD)被广泛应用于航空航天、反应堆热水力学、海洋传播、爆炸等。然而,由于计算量巨大,模拟真实世界工程案例中流场的微小结构仍然是低效率的。因此并行性能优化技术在学术界和工业界受到了广泛关注。网格编号直接决定了离散化后的矩阵结构,然后对并行流体模拟的性能产生巨大影响。如今,通过网格重新编号来加速流体模拟已经成为一种成熟的方法。
几十年来,传统的CFD网格重编号质量判别指标,如“带宽(Bandwidt)”或“轮廓(Profile)”,一直被用来区分线性系统的矩阵结构,从而为选择有效的排序方法提供了宝贵的指导。稀疏矩阵的结构决定了并行计算的访问顺序。这对具有多级存储层次的现代计算机架构的性能有很大影响。首先,以上两个简单的指标“带宽”和“轮廓”,不能准确评估复杂应用相对应的稀疏矩阵的计算性能。在复杂的应用场景中,较低的带宽并不总是能带来更好的性能。其次,现有的网格编号算法主要集中在解决线性系统的优化上。然而,方程离散化过程在CFD模拟中也占据了很大的比例。因此也有必要考虑网格编号对复杂流体模拟案例的完整计算过程的影响。
由此可见,提供一种能够选择合适的网格重编号的方法,从而加速计算流体力学数值模拟是本领域人员亟需解决的技术问题。
发明内容
本申请的目的是提供一种基于流体力学网格处理方法、装置、设备及介质,用于选择合适的网格重编号算法,从而加速计算流体力学数值模拟。
为解决上述技术问题,本申请提供一种基于流体力学网格处理方法,包括:
获取包含目标流体的当前特征数据的网格;
将所述网格输入至目标网格重编号算法中;其中,所述目标网格重编号算法是基于局部异常因子算法的网格重编号质量判别指标从网格重编号算法中获取的;所述基于局部异常因子算法的网格重编号质量判别指标根据所述网格生成的稀疏矩阵内部的非零元的聚集程度确定;
利用所述目标网格重编号算法进行流体力学数值模拟;
根据所述流体力学数值模拟的结果确定预设时刻所述目标流体的特征数据。
优选地,根据所述网格生成的所述稀疏矩阵内部的所述非零元的聚集程度确定所述基于局部异常因子算法的网格重编号质量判别指标包括:
将所述网格产生的所述非零元的邻接关系生成对应的所述稀疏矩阵转换成坐标系;
获取所述稀疏矩阵中所述非零元的数量;
获取当前目标点与目标周围点的第一距离值;
获取距离所述当前目标点第k远的元素的第二距离值;
根据所述第一距离值、所述第二距离值确定所述目标周围点到所述当前目标点的第k可达距离;
获取距离所述当前目标点第k远的距离之内的所有元素的数量;
根据所有的所述目标周围点到所述当前目标点的第k可达距离之和、所述所有元素的数量确定所述当前目标点的可达密度值;
获取各所述目标周围点的可达密度值;
根据所述当前目标点的可达密度值、所述目标周围点的可达密度值、所述所有元素的数量确定所述当前目标点的当前局部离群因子;
在所述当前局部离群因子大于1的情况下,确定所述当前目标点为异常点;
将所述当前目标点的下一个点作为新的当前目标点,并返回所述获取当前目标点与目标周围点的第一距离值的步骤,直至确定完所有的所述非零元是否为异常点后停止返回。
优选地,所述将所述网格产生的所述非零元的邻接关系生成对应的所述稀疏矩阵转换成坐标系包括:
将所述网格产生的所述非零元的邻接关系生成对应的所述稀疏矩阵中各所述非零元的坐标定义为对应的所述非零元的行数值和列数值;
根据各所述非零元的所述行数值和所述列数值将所述稀疏矩阵转换成仅在第一象限有元素的所述坐标系。
优选地,建立基于贪心算法的网格重编号算法包括:
定义初始编号单元,并建立邻居容器;
从所述初始编号单元开始编号,将所述初始编号单元的邻居作为编号单元压入所述邻居容器中;
令所述邻居容器中的第一个元素为所述初始编号单元;
返回所述从所述初始编号单元开始编号的步骤,直至所有的单元被重编号后停止返回。
优选地,建立基于单元商的网格重编号算法包括:
获取当前编号下的第一带宽;
获取各单元的相邻单元编号总和、相关邻居单元数、单元商;
根据所述单元商对所有单元重新编号并作为新的当前编号;
获取新的当前编号下的第二带宽;
在所述第一带宽和所述第二带宽满足预设要求的情况下,以所述新的当前编号作为所述网格的编号;
在所述第一带宽和所述第二带宽不满足所述预设要求的情况下,返回所述获取当前编号下的第一带宽的步骤,直至迭代收敛指数满足预设值为止停止。
优选地,在所述获取包含目标流体的当前特征数据的网格之后,所述方法还包括:
将所述网格分解为预设大小的子网格;
对应地,所述将所述网格输入至目标网格重编号算法中包括:
将各所述子网格分别输入至所述目标网格重编号算法中。
优选地,所述网络重编号算法为基于贪心算法的网格重编号算法、基于单元商算法的网格重编号算法;确定所述目标网格重编号算法包括:
获取第一网格编号以及第二网格编号;其中,所述第一网格编号为通过所述贪心算法对初始网格编号进行优化得到,所述第二网格编号为通过所述单元商算法对所述初始网格编号进行优化得到;
利用所述基于局部异常因子算法的网格重编号质量判别指标分别获取所述第一网格编号对应的第一非零元数目、所述第二网格编号对应的第二非零元数目、所述初始网格编号对应的初始非零元数目;
获取所述第一非零元数目、所述第二非零元数目、所述初始非零元数目中最小值;
将所述最小值对应的算法作为所述目标网格重编号算法。
为了解决上述技术问题,本申请还提供一种基于流体力学网格处理装置,包括:
获取模块,用于获取包含目标流体的当前特征数据的网格;
输入模块,用于将所述网格输入至目标网格重编号算法中;其中,所述目标网格重编号算法是基于局部异常因子算法的网格重编号质量判别指标从网格重编号算法中获取的;所述基于局部异常因子算法的网格重编号质量判别指标根据所述网格生成的稀疏矩阵内部的非零元的聚集程度确定;
数值模拟模块,用于利用所述目标网格重编号算法进行流体力学数值模拟;
确定模块,用于根据所述流体力学数值模拟的结果确定预设时刻所述目标流体的特征数据。
为了解决上述技术问题,本申请还提供一种基于流体力学网格处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述的基于流体力学网格处理方法的步骤。
为了解决上述技术问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于流体力学网格处理方法的步骤。
本申请所提供的一种基于流体力学网格处理方法,包括:获取包含目标流体的当前特征数据的网格;将网格输入至目标网格重编号算法中;其中,目标网格重编号算法是基于局部异常因子算法的网格重编号质量判别指标从网格重编号算法中获取的,基于局部异常因子算法的网格重编号质量判别指标根据网格生成的稀疏矩阵内部的非零元的聚集程度确定;利用目标网格重编号算法进行流体力学数值模拟;根据流体力学数值模拟的结果确定预设时刻目标流体的特征数据。该方法中,在确定目标网格重编号算法时,以基于局部异常因子算法的网格重编号质量判别指标从网格重编号算法中选取。由于基于局部异常因子算法的网格重编号质量判别指标将稀疏矩阵内部的非零元的聚集程度纳入重编号算法需要的考量范畴,从而能够有效判别流体力学网格重编号算法的质量;其次,由于选取出了合适的重编号算法,从矩阵的组装和求解两个方面大幅缩短数值模拟的执行时间,提高可基于流体力学数值模拟计算的整体迭代时间。
此外,本申请还提供一种基于流体力学网格处理装置、基于流体力学网格处理设备以及计算机可读存储介质,与上述提到的基于流体力学网格处理方法具有相同或相对应的技术特征,效果同上。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于流体力学网格处理方法的流程图;
图2为本申请实施例提供的一种建立局部异常因子算法的网格重编号质量判别指标算法的流程图;
图3为本申请实施例提供的一种基于贪心算法的网格重编号方法的流程图;
图4为本申请实施例提供的一种基于单元商的网格重编号方法的流程图;
图5为本申请实施例提供的一种基于有限体积法的数值模拟的示意图;
图6为本申请的一实施例提供的基于流体力学网格处理装置的结构图;
图7为本申请另一实施例提供的基于流体力学网格处理设备的结构图;
图8为本申请另一实施例提供的基于流体力学网格处理方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种基于流体力学网格处理方法、装置、设备及介质,用于选择合适的网格重编号算法,从而加速计算流体力学数值模拟。
计算流体力学被广泛应用于航空航天、反应堆热水力学、海洋传播、爆炸等。然而,由于计算量巨大,模拟真实世界工程案例中流场的微小结构仍然是低效率的。因此并行性能优化技术在学术界和工业界受到了广泛关注。网格编号直接决定了离散化后的矩阵结构,然后对并行流体模拟的性能产生巨大影响。如今,通过网格重新编号来加速流体模拟已经成为一种成熟的方法。
几十年来,传统的CFD网格重编号质量判别指标,如“带宽”或“轮廓”,一直被用来区分线性系统的矩阵结构,从而为选择有效的排序方法提供了宝贵的指导。稀疏矩阵的结构决定了并行计算的访问顺序。这对具有多级存储层次的现代计算机架构的性能有很大影响。以应用最广泛的有限体积法(Finite Volume Method,FVM)为例,在对模拟域的离散单元进行编号后,需要对稀疏线性系统进行并行组装。组装过程是基于连接的网格单元的参数和编号。许多著名的编号算法,诸如雷达编码消息(Radar Coded Messages,RCM)等,在简单的基准案例中已经证明了它们的稳定性、快速性和效率。然而,在复杂工程问题的流体模拟中,选择一种更好的编号方法仍然面临着巨大的挑战。首先,以上两个简单的指标,带宽和轮廓,不能准确评估复杂应用相对应的稀疏矩阵的计算性能。在复杂的应用场景中,较低的带宽并不总是能带来更好的性能。其次,现有的网格编号算法主要集中在解决线性系统的优化上。然而,方程离散化过程在CFD模拟中也占据了很大的比例。因此也有必要考虑网格编号对复杂流体模拟案例的完整计算过程的影响。
因此,针对日益复杂的真实CFD案例和不断开发的网格重编号算法,如何结合网格重编号后产生的线性系统的稀疏矩阵特点设计新的网格重编号质量判别指标,进一步提高基于FVM的并行流体数值模拟效率,已成为该领域亟需解决的关键问题。
针对传统网格重编号质量判别指标只能有限表达网格稀疏矩阵性质的特点,提出了一种基于局部异常因子算法的CFD网格重编号质量判别指标,可以进一步判断不同CFD网格重编号方法在数值模拟迭代处理时的效率高低。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。图1为本申请实施例提供的一种基于流体力学网格处理方法的流程图,如图1所示,该方法包括:
S10:获取包含目标流体的当前特征数据的网格;
S11:将网格输入至目标网格重编号算法中;
其中,目标网格重编号算法是基于局部异常因子算法的网格重编号质量判别指标从网格重编号算法中获取的;基于局部异常因子算法的网格重编号质量判别指标根据网格生成的稀疏矩阵内部的非零元的聚集程度确定;
S12:利用目标网格重编号算法进行流体力学数值模拟;
S13:根据流体力学数值模拟的结果确定预设时刻目标流体的特征数据。
对于目标流体,目标流体对应的特征数据、获取目标流体对应的特征数据的方式等不作限定,根据实际情况确定。如水管在某种状态下,经过30s的流动情况,此时的目标流体为水,在水流经过的区域会形成一个网格,各网格中包含水的当前特征数据,当前特征数据可以指的是水的流速、压力、热量等物理量的变化。
为了选取合适的网格重编号算法,本实施例中从网络重编号算法中选取目标网格重编号算法。对于用于选取目标网格重编号算法的网络重编号算法不作限定。
本实施例中目标网格重编号算法是基于局部异常因子算法的网格重编号质量判别指标确定的;基于局部异常因子算法的网格重编号质量判别指标根据网格生成的稀疏矩阵内部的非零元的聚集程度确定。在实施中,具体地,根据网格生成的稀疏矩阵内部的非零元的聚集程度确定基于局部异常因子算法的网格重编号质量判别指标包括:
将网格产生的非零元的邻接关系生成对应的稀疏矩阵转换成坐标系;
获取稀疏矩阵中非零元的数量;
获取当前目标点与目标周围点的第一距离值;
获取距离当前目标点第k远的元素的第二距离值;
根据第一距离值、第二距离值确定目标周围点到当前目标点的第k可达距离;
获取距离当前目标点第k远的距离之内的所有元素的数量;
根据所有的目标周围点到当前目标点的第k可达距离之和、所有元素的数量确定当前目标点的可达密度值;
获取各目标周围点的可达密度值;
根据当前目标点的可达密度值、目标周围点的可达密度值、所有元素的数量确定当前目标点的当前局部离群因子;
在当前局部离群因子大于1的情况下,确定当前目标点为异常点;
将当前目标点的下一个点作为新的当前目标点,并返回获取当前目标点与目标周围点的第一距离值的步骤,直至确定完所有的非零元是否为异常点后停止返回。
图2为本申请实施例提供的一种建立局部异常因子算法的网格重编号质量判别指标算法的流程图。如图2所示,该方法包括:
S14:输入矩阵坐标系,非零元数量为
Figure SMS_1
S15:
Figure SMS_2
S16:
Figure SMS_3
S17:确定目标点
Figure SMS_4
S18:计算点
Figure SMS_5
的第k距离;
S19:计算点
Figure SMS_6
第k邻域内的周围点o数量;
S20:计算所有的周围点o到
Figure SMS_7
的第k可达距离;
S21:计算点
Figure SMS_8
的局部可达密度;
S22:计算点
Figure SMS_9
的局部离群因子LOF;
S23:判断
Figure SMS_10
;若是,则返回步骤S16;若是,则进入步骤S24;
S24:输出非零元的LOF序列。
具体地,建立局部异常因子算法的网格重编号质量判别指标算法的过程如下:
(1)定义目标点p和周围点o的距离,为
Figure SMS_11
(2)定义点p的第k距离(k-distance):距离点p第k远的那个距离值,即距离点p第k远的元素的距离,表示为
Figure SMS_12
(3)定义第k距离邻域
Figure SMS_13
:距离点p的第k远的距离之内的所有点,即点p的k个邻居,且/>
Figure SMS_14
表示邻域内元素的数量;
(4)定义可达距离(r-distance):点o到点p的第k可达距离为:
Figure SMS_15
即点o到点p的可达距离,至少是点o的第k距离,或者为点o和点p之间的真实距离,即离点o最近的k个点,o到它们的可达距离被认为相等,且均为
Figure SMS_16
。这个距离也是衡量o是p的周围点,p是否也是o的周围点,如果p是异常点,但o是正常点,那么很可能虽然o是p的邻居,但p不是o的邻居;
(5)定义局部可达密度(Local reachability density)
Figure SMS_17
:点p的局部可达密度表示为:
Figure SMS_18
表示点p第k邻域内的点到p的平均可达距离的倒数,分子即为邻域内元素的数量,分母为点p的k个邻居中,每个邻居到p的可达距离。若p不是它的邻居点的邻居,则p的局部可达密度越小,p是异常点的可能性越大;
(6)定义局部离群因子LOF:点p的局部离群因子表示为:
Figure SMS_19
表示点p的邻域点
Figure SMS_20
的局部可达密度与点p的局部可达密度之比的平均数。即对于p的每个邻居o,计算o的局部可达密度与p的局部可达密度的比值,然后所有邻居求平均。即p的局部离群因子越大,说明p的异常分数越高,是异常点的可能性越大。
目标点的局部离群因子若接近1,说明p其邻域点的密度差不多,p可能和邻域点输入同一簇;若局部离群因子小于1,说明p的密度就高于其邻域点的密度,p为密集点;若局部离群因子大于1,说明p的密度小于其邻域点密度,p越可能是异常点;
(7)计算所有非零元的局部离群因子。
上述步骤建立了局部离群因子网格重编号质量判别指标。对于各网络重编号算法计算对应的局部离群因子,从网络重编号算法中选取局部离群因子非零元数目最小的算法作为目标网格重编号算法,利用目标网格重编号算法进行流体力学数值模拟,最终确定预设时刻目标流体的特征数据。如水管在某种状态下,经过30秒的流动后的情况,包括水管各处的速度、压力、热量等物理量的变化,而当前水管的状态就是计算前的输入,30秒后的水管状态就是计算后得到的状态。
本实施例所提供的一种基于流体力学网格处理方法,包括:获取包含目标流体的当前特征数据的网格;将网格输入至目标网格重编号算法中;其中,目标网格重编号算法是基于局部异常因子算法的网格重编号质量判别指标从网格重编号算法中获取的,基于局部异常因子算法的网格重编号质量判别指标根据网格生成的稀疏矩阵内部的非零元的聚集程度确定;利用目标网格重编号算法进行流体力学数值模拟;根据流体力学数值模拟的结果确定预设时刻目标流体的特征数据。该方法中,在确定目标网格重编号算法时,以基于局部异常因子算法的网格重编号质量判别指标从网格重编号算法中选取。由于基于局部异常因子算法的网格重编号质量判别指标将稀疏矩阵内部的非零元的聚集程度纳入重编号算法需要的考量范畴,从而能够有效判别流体力学网格重编号算法的质量;其次,由于选取出了合适的重编号算法,从矩阵的组装和求解两个方面大幅缩短数值模拟的执行时间,提高可基于流体力学数值模拟计算的整体迭代时间。
在实施中,为了计算的方便,优选的实施方式是,将网格产生的非零元的邻接关系生成对应的稀疏矩阵转换成坐标系包括:
将网格产生的非零元的邻接关系生成对应的稀疏矩阵中各非零元的坐标定义为对应的非零元的行数值和列数值;
根据各非零元的行数值和列数值将稀疏矩阵转换成仅在第一象限有元素的坐标系。
本实施例提供的方法中,矩阵中每个非零元的坐标定义为该非零元的行列数值,每个非零元有且仅有一个确定的坐标,整个稀疏矩阵形成仅在第一象限有元素(非零元)的坐标系,相比于在各个象限均有元素的坐标系,本实施例的仅在第一象限有元素的坐标系更加方便计算。
为了实现重编号,优选的实施方式是,建立基于贪心算法的网格重编号算法包括:
定义初始编号单元,并建立邻居容器;
从初始编号单元开始编号,将初始编号单元的邻居作为编号单元压入邻居容器中;
令邻居容器中的第一个元素为初始编号单元;
返回从初始编号单元开始编号的步骤,直至所有的单元被重编号后停止返回。
图3为本申请实施例提供的一种基于贪心算法的网格重编号方法的流程图。如图3所示,该方法包括:
S25:输入初始网格
Figure SMS_21
S26:
Figure SMS_22
为初始编号单元,/>
Figure SMS_23
所有初始单元编号设为0;
其中,k的具体数值由程序确定。
S27:
Figure SMS_24
邻居压入L
其中,L是容器,可以是列表,用以存储某个网格单元的未编号的邻居;
S28:判断
Figure SMS_25
;若是,则进入步骤S29;若否,则结束;
其中,
Figure SMS_26
表示区域内所有的网格点;
S29:
Figure SMS_27
其中,
Figure SMS_28
是容器里面的第一个网格,/>
Figure SMS_29
代表该元素的编号;
S30:
Figure SMS_30
的未编号邻居压入L
S31:从L中删除
Figure SMS_31
S32:
Figure SMS_32
,返回步骤S28。
本实施例提供的方法,实现了基于贪心算法对网格进行重编号。
除了基于贪心算法对网格进行重编号,本实施例还提供一种基于单元商的网格重编号算法对网格进行重编号。优选地,建立基于单元商的网格重编号算法包括:
获取当前编号下的第一带宽;
获取各单元的相邻单元编号总和、相关邻居单元数、单元商;
根据单元商对所有单元重新编号并作为新的当前编号;
获取新的当前编号下的第二带宽;
在第一带宽和第二带宽满足预设要求的情况下,以新的当前编号作为网格的编号;
在第一带宽和第二带宽不满足预设要求的情况下,返回获取当前编号下的第一带宽的步骤,直至迭代收敛指数满足预设值为止停止。
第一带宽和第二带宽均指的是最大带宽。在基于单元商的网格重编号方法中,1)设定初始迭代系数
Figure SMS_33
;2)计算当前编号下的最大带宽/>
Figure SMS_34
;3)计算各单元的相邻单元编号总和、相关邻居单元数、单元商(编号总和除以邻居单元数);4)根据单元商的大小对所有单元重新编号;5)计算当前编号下的最大带宽/>
Figure SMS_35
;6)比较带宽/>
Figure SMS_36
和/>
Figure SMS_37
的大小,若
Figure SMS_38
即为预设要求),终止优化迭代过程,否则,重复计算直至满足收敛指数(即为预设值)为止。
图4为本申请实施例提供的一种基于单元商的网格重编号方法的流程图。如图4所示,该方法包括:
S33:输入初始网格
Figure SMS_39
S34:设置初始迭代系数
Figure SMS_40
S35:判断
Figure SMS_41
;若是,则进入步骤S36;若否,则结束;
其中,
Figure SMS_42
是编号前后的带宽变化量,也就是收敛迭代系数,该系数越靠近0,代表重新编号前后越稳定;
S36:计算当前带宽
Figure SMS_43
S37:
Figure SMS_44
,/>
Figure SMS_45
其中,
Figure SMS_46
用以计数,无特殊含义;/>
Figure SMS_47
是容器;
S38:判断
Figure SMS_48
;若是,则进入步骤S39;若否,则进入步骤S42;
S39:计算
Figure SMS_49
的邻居编号和,并压入容器L
S40:计算
Figure SMS_50
的邻居单元数并压入容器L
S41:
Figure SMS_51
;并返回步骤S38;
S42:
Figure SMS_52
,/>
Figure SMS_53
其中,
Figure SMS_54
用以计数;/>
Figure SMS_55
也是容器,存储/>
Figure SMS_56
关系(键值关系),也就是对应关系。容器中一个key值对应一个value值,也就是每一个/>
Figure SMS_57
对应一个/>
Figure SMS_58
,其中,/>
Figure SMS_59
是key,/>
Figure SMS_60
是value
S43:判断
Figure SMS_61
;若是,则进入步骤S44;若否,则进入步骤S47;
S44:计算
Figure SMS_62
S45:K中建立
Figure SMS_63
与/>
Figure SMS_64
的/>
Figure SMS_65
关系;
S46:
Figure SMS_66
,并返回步骤S43;
S47:根据Kkey的升序序列将
Figure SMS_67
重编号,更新为/>
Figure SMS_68
S48:计算当前带宽
Figure SMS_69
S49:
Figure SMS_70
,返回步骤S35。
本实施例提供的方法中,实现了基于单元商的网格重编号。
为了提高计算的效率,优选的实施方式是,在获取包含目标流体的当前特征数据的网格之后,基于流体力学网格处理方法还包括:
将网格分解为预设大小的子网格;
对应地,将网格输入至目标网格重编号算法中包括:
将各子网格分别输入至目标网格重编号算法中。
图5为本申请实施例提供的一种基于有限体积法的数值模拟的示意图,
如图5所示,将网格
Figure SMS_71
分解为多个子网格,如/>
Figure SMS_72
、/>
Figure SMS_73
、……、/>
Figure SMS_74
,将各子网格进行并行重编号;然后基于有限体积法进行并行数值模拟。
本实施例提供的方法中,将网格拆分后,对各子网格进行并行重编号以及并行数值模拟,能够大大提高数值模拟的效率。
在实施中,当网络重编号算法为基于贪心算法的网格重编号算法、基于单元商算法的网格重编号算法时,确定目标网格重编号算法包括:
获取第一网格编号以及第二网格编号;其中,第一网格编号为通过贪心算法对初始网格编号进行优化得到,第二网格编号为通过单元商算法对初始网格编号进行优化得到;
利用基于局部异常因子算法的网格重编号质量判别指标分别获取第一网格编号对应的第一非零元数目、第二网格编号对应的第二非零元数目、初始网格编号对应的初始非零元数目;
获取第一非零元数目、第二非零元数目、初始非零元数目中最小值;
将最小值对应的算法作为目标网格重编号算法。
将单元商算法的局部离群因子大于1的非零元数目记为
Figure SMS_75
,将贪心算法的局部离群因子大于1的非零元数目记为/>
Figure SMS_76
,将原始网格的局部离群因子非零元数目记为/>
Figure SMS_77
,比较三者的大小,选择三者数目较小的算法,其局部离群因子记为/>
Figure SMS_78
,与之对应的算法作为最终的重编号算法,即目标重编号算法。
在上述实施例中,对于基于流体力学网格处理方法进行了详细描述,本申请还提供基于流体力学网格处理装置、基于流体力学网格处理设备对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
图6为本申请的一实施例提供的基于流体力学网格处理装置的结构图。本实施例基于功能模块的角度,包括:
获取模块10,用于获取包含目标流体的当前特征数据的网格;
输入模块11,用于将网格输入至目标网格重编号算法中;其中,目标网格重编号算法是基于局部异常因子算法的网格重编号质量判别指标从网格重编号算法中获取的;基于局部异常因子算法的网格重编号质量判别指标根据网格生成的稀疏矩阵内部的非零元的聚集程度确定;
数值模拟模块12,用于利用目标网格重编号算法进行流体力学数值模拟;
确定模块13,用于根据流体力学数值模拟的结果确定预设时刻目标流体的特征数据。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。并且具有与上述提到的基于流体力学网格处理方法相同的有益效果。
图7为本申请另一实施例提供的基于流体力学网格处理设备的结构图。本实施例基于硬件角度,如图7所示,基于流体力学网格处理设备包括:
存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述实施例中所提到的基于流体力学网格处理的方法的步骤。
本实施例提供的基于流体力学网格处理设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图形处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的基于流体力学网格处理方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于上述所提到的基于流体力学网格处理方法所涉及到的数据等。
在一些实施例中,基于流体力学网格处理设备还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图7中示出的结构并不构成对基于流体力学网格处理设备的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的基于流体力学网格处理设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:基于流体力学网格处理方法,效果同上。
本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请提供的计算机可读存储介质包括上述提到的基于流体力学网格处理方法,效果同上。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图8和具体实施方式对本申请作进一步的详细说明。图8为本申请另一实施例提供的基于流体力学网格处理方法的流程图。如图8所示,该方法包括:
S50:确定实现重编号的算法;
S51:建立LOF网格重编号质量判别指标;
S52:确定目标重编号算法;
S53:CFD数值模拟计算。
本实施例提供的基于局部异常因子算法的CFD稀疏矩阵判别指标来选择合适的网格重编号方法,1、能有效判别CFD网格重编号算法的质量。克服了传统CFD稀疏矩阵质量判别指标的片面性(只考虑稀疏矩阵最外围非零元到行对角线的距离),将内部的非零元的聚集程度(最靠近对应行对角线的一半非零元数的距离)纳入重编号算法需要的考量范畴。2、提高了基于CFD数值模拟计算的整体迭代时间。本申请预计能结合CFD稀疏矩阵求解过程中计算机访存的底层逻辑(矩阵的聚集程度越好,cache命中率越高),选择合适的重编号算法,从矩阵的组装和求解两个方面大幅缩短数值模拟的执行时间。
以上对本申请所提供的一种基于流体力学网格处理方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种基于流体力学网格处理方法,其特征在于,包括:
获取包含目标流体的当前特征数据的网格;
将所述网格输入至目标网格重编号算法中;其中,所述目标网格重编号算法是基于局部异常因子算法的网格重编号质量判别指标从网格重编号算法中获取的;所述基于局部异常因子算法的网格重编号质量判别指标根据所述网格生成的稀疏矩阵内部的非零元的聚集程度确定;
利用所述目标网格重编号算法进行流体力学数值模拟;
根据所述流体力学数值模拟的结果确定预设时刻所述目标流体的特征数据。
2.根据权利要求1所述的基于流体力学网格处理方法,其特征在于,根据所述网格生成的所述稀疏矩阵内部的所述非零元的聚集程度确定所述基于局部异常因子算法的网格重编号质量判别指标包括:
将所述网格产生的所述非零元的邻接关系生成对应的所述稀疏矩阵转换成坐标系;
获取所述稀疏矩阵中所述非零元的数量;
获取当前目标点与目标周围点的第一距离值;
获取距离所述当前目标点第k远的元素的第二距离值;
根据所述第一距离值、所述第二距离值确定所述目标周围点到所述当前目标点的第k可达距离;
获取距离所述当前目标点第k远的距离之内的所有元素的数量;
根据所有的所述目标周围点到所述当前目标点的第k可达距离之和、所述所有元素的数量确定所述当前目标点的可达密度值;
获取各所述目标周围点的可达密度值;
根据所述当前目标点的可达密度值、所述目标周围点的可达密度值、所述所有元素的数量确定所述当前目标点的当前局部离群因子;
在所述当前局部离群因子大于1的情况下,确定所述当前目标点为异常点;
将所述当前目标点的下一个点作为新的当前目标点,并返回所述获取当前目标点与目标周围点的第一距离值的步骤,直至确定完所有的所述非零元是否为异常点后停止返回。
3.根据权利要求2所述的基于流体力学网格处理方法,其特征在于,所述将所述网格产生的所述非零元的邻接关系生成对应的所述稀疏矩阵转换成坐标系包括:
将所述网格产生的所述非零元的邻接关系生成对应的所述稀疏矩阵中各所述非零元的坐标定义为对应的所述非零元的行数值和列数值;
根据各所述非零元的所述行数值和所述列数值将所述稀疏矩阵转换成仅在第一象限有元素的所述坐标系。
4.根据权利要求1所述的基于流体力学网格处理方法,其特征在于,建立基于贪心算法的网格重编号算法包括:
定义初始编号单元,并建立邻居容器;
从所述初始编号单元开始编号,将所述初始编号单元的邻居作为编号单元压入所述邻居容器中;
令所述邻居容器中的第一个元素为所述初始编号单元;
返回所述从所述初始编号单元开始编号的步骤,直至所有的单元被重编号后停止返回。
5.根据权利要求1所述的基于流体力学网格处理方法,其特征在于,建立基于单元商的网格重编号算法包括:
获取当前编号下的第一带宽;
获取各单元的相邻单元编号总和、相关邻居单元数、单元商;
根据所述单元商对所有单元重新编号并作为新的当前编号;
获取新的当前编号下的第二带宽;
在所述第一带宽和所述第二带宽满足预设要求的情况下,以所述新的当前编号作为所述网格的编号;
在所述第一带宽和所述第二带宽不满足所述预设要求的情况下,返回所述获取当前编号下的第一带宽的步骤,直至迭代收敛指数满足预设值为止停止。
6.根据权利要求1至5任意一项所述的基于流体力学网格处理方法,其特征在于,在所述获取包含目标流体的当前特征数据的网格之后,所述方法还包括:
将所述网格分解为预设大小的子网格;
对应地,所述将所述网格输入至目标网格重编号算法中包括:
将各所述子网格分别输入至所述目标网格重编号算法中。
7.根据权利要求6所述的基于流体力学网格处理方法,其特征在于,所述网络重编号算法为基于贪心算法的网格重编号算法、基于单元商算法的网格重编号算法;确定所述目标网格重编号算法包括:
获取第一网格编号以及第二网格编号;其中,所述第一网格编号为通过所述贪心算法对初始网格编号进行优化得到,所述第二网格编号为通过所述单元商算法对所述初始网格编号进行优化得到;
利用所述基于局部异常因子算法的网格重编号质量判别指标分别获取所述第一网格编号对应的第一非零元数目、所述第二网格编号对应的第二非零元数目、所述初始网格编号对应的初始非零元数目;
获取所述第一非零元数目、所述第二非零元数目、所述初始非零元数目中最小值;
将所述最小值对应的算法作为所述目标网格重编号算法。
8.一种基于流体力学网格处理装置,其特征在于,包括:
获取模块,用于获取包含目标流体的当前特征数据的网格;
输入模块,用于将所述网格输入至目标网格重编号算法中;其中,所述目标网格重编号算法是基于局部异常因子算法的网格重编号质量判别指标从网格重编号算法中获取的;所述基于局部异常因子算法的网格重编号质量判别指标根据所述网格生成的稀疏矩阵内部的非零元的聚集程度确定;
数值模拟模块,用于利用所述目标网格重编号算法进行流体力学数值模拟;
确定模块,用于根据所述流体力学数值模拟的结果确定预设时刻所述目标流体的特征数据。
9.一种基于流体力学网格处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的基于流体力学网格处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于流体力学网格处理方法的步骤。
CN202310429985.9A 2023-04-21 2023-04-21 一种基于流体力学网格处理方法、装置、设备及介质 Pending CN116306380A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310429985.9A CN116306380A (zh) 2023-04-21 2023-04-21 一种基于流体力学网格处理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310429985.9A CN116306380A (zh) 2023-04-21 2023-04-21 一种基于流体力学网格处理方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN116306380A true CN116306380A (zh) 2023-06-23

Family

ID=86778231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310429985.9A Pending CN116306380A (zh) 2023-04-21 2023-04-21 一种基于流体力学网格处理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116306380A (zh)

Similar Documents

Publication Publication Date Title
Higham et al. Squeezing a matrix into half precision, with an application to solving linear systems
CN109213805A (zh) 一种实现模型优化的方法及装置
US11537879B2 (en) Neural network weight discretizing method, system, device, and readable storage medium
US7991595B2 (en) Adaptive refinement tools for tetrahedral unstructured grids
JP7221062B2 (ja) 流体解析システム、流体解析方法、および流体解析プログラム
Liang A simplified adaptive Cartesian grid system for solving the 2D shallow water equations
Bacchus et al. Accuracy, training time and hardware efficiency trade-offs for quantized neural networks on fpgas
CN110532093B (zh) 数值核反应堆多几何形状全堆芯子通道并行任务划分方法
CN115017808A (zh) 一种基于改进蝴蝶算法优化hkelm的管道冲蚀预测方法
He et al. An artificial viscosity augmented physics-informed neural network for incompressible flow
Yang et al. Parametric reduced order modeling-based discrete velocity method for simulation of steady rarefied flows
CN116484744B (zh) 物体仿真方法、模型训练方法、装置、设备及存储介质
JP7354736B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム
CN116306380A (zh) 一种基于流体力学网格处理方法、装置、设备及介质
JP7188237B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム
Zhan et al. Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems
CN110189230B (zh) 一种动态分区的解析化模型的构建方法
CN110109913B (zh) 一种zerocash挖矿算法的硬件实现方法及装置
Vasan et al. Fuzzy optimization-based water distribution network design using self-adaptive cuckoo search algorithm
CN113449968B (zh) 一种基于深度学习的新能源电网频率风险评估方法及装置
CN115017048A (zh) 一种测试种子的确定方法及装置
CN114492251A (zh) 超算环境的低速流场发散处理方法、装置、设备及介质
CN114595646A (zh) 一种基于计算流体动力学的分析方法
CN114297397A (zh) 基于卷积网络的路径感知的知识图谱补全方法及相关设备
CN117195761B (zh) 一种基于流场离散度自适应的计算加速方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination