CN111680456A - 一种流体力学模拟的方法、装置及存储介质 - Google Patents

一种流体力学模拟的方法、装置及存储介质 Download PDF

Info

Publication number
CN111680456A
CN111680456A CN202010352414.6A CN202010352414A CN111680456A CN 111680456 A CN111680456 A CN 111680456A CN 202010352414 A CN202010352414 A CN 202010352414A CN 111680456 A CN111680456 A CN 111680456A
Authority
CN
China
Prior art keywords
sub
grid
flow field
distribution function
field model
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
CN202010352414.6A
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.)
Shenzhen Institute of Advanced Technology of CAS
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
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 Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN202010352414.6A priority Critical patent/CN111680456A/zh
Publication of CN111680456A publication Critical patent/CN111680456A/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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/25Design optimisation, verification or simulation using particle-based methods
    • 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

Landscapes

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

Abstract

本申请公开了一种流体力学模拟的方法、装置及存储介质,该方法包括:获取流场模型,并生成流场网格;获取基于流场模型而设置的初始宏观信息、边界条件信息和执行进程数量;对流场网格进行划分,以得到对应执行进程数量的多个子区域,并为每个进程分配对应的子区域;利用每个进程计算对应每个子区域中每个网格单元的粒子分布函数,并根据每个子区域中网格单元的粒子分布函数确定对应每个子区域中网格单元的宏观信息;根据子区域中网格单元的宏观信息计算流场的收敛值,并根据流场的收敛值判断流场模型是否满足收敛条件;将每个子区域中网格单元的宏观信息聚合并输出作为流场模型的模拟结果,可实现对大规模复杂流场的模拟计算。

Description

一种流体力学模拟的方法、装置及存储介质
技术领域
本申请涉及流体力学技术领域,特别是涉及一种流体力学模拟的方法、装置及存储介质。
背景技术
流体力学是人类社会从实践活动中逐渐形成的科学学科之一。随着计算机技术的出现和发展,数值计算方法已成为同理论分析、实验研究相并列的三大重要科学研究手段之一。计算流体力学复杂流场的数值模拟与国家发展、社会进步以及人类生活有着密切的关系。通过数值计算方法并结合高性能计算技术,可以对许多复杂流场问题进行数值模拟求解,在一定程度上节省物理实验开销,加快研究进度。
在现有技术中,为解决现有技术中宏观连续模型所存在的稳定性、收敛速度、并行效率等问题,以及微观分子模型中所存在的模拟程序较复杂,计算量大,对内存的要求高等问题,可以采用格子Boltzmann方法对较为复杂的流场问题进行数值模拟求解。具体地,格子Boltzmann方法多采用均匀笛卡尔网格,然而对于具有复杂边界的几何模型,所需要的格子数目往往是巨大的。由于均匀笛卡尔网格的缺陷,格子Boltzmann方法难以处理具有复杂几何边界的流体计算,故需要一种可以解决上述技术问题的技术方案。
发明内容
本申请主要解决的技术问题是提供一种可以实现对大规模复杂流场进行模拟计算的方法,具体提供了一种流体力学模拟的方法、装置及存储介质。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种流体力学模拟的方法,所述方法包括:
获取流场模型,并生成对应所述流场模型的非结构化的流场网格;
获取基于所述流场模型而设置的初始宏观信息、边界条件信息和执行进程数量;
采用预设划分算法对所述流场网格进行划分,以得到对应所述执行进程数量的多个子区域,并为每个所述进程分配对应的所述子区域;
利用每个所述进程分别根据所述初始宏观信息、所述边界条件信息计算对应每个所述子区域中所述网格单元的粒子分布函数,并根据每个所述子区域中所述网格单元的粒子分布函数确定对应每个所述子区域中所述网格单元的宏观信息;
根据所述子区域中所述网格单元的宏观信息计算所述流场的收敛值,并根据所述流场的所述收敛值判断所述流场模型是否满足收敛条件;
若是,则将每个所述子区域中所述网格单元对应的宏观信息聚合并输出作为所述流场模型的模拟结果。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种流体力学模拟装置,所述装置包括耦接的存储器和处理器,其中,
所述存储器包括本地储存,且存储有计算机程序;
所述处理器用于运行所述计算机程序,以执行如上所述的方法。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种存储介质,所述存储介质存储有能够被处理器运行的计算机程序,所述计算机程序用于实现如上所述的方法。
本申请的有益效果是:区别于现有技术的情况,本申请所提供的技术方案,通过对获取到的流场模型生成非结构化的流场网格,可以较好地适应于实际应用环境中复杂的流场信息,避免现有技术中采用均匀笛卡尔网格下网格尺寸必须保持一致的缺点,可以实现在流场信息变化大的流场位置采用高精度的网格,在流场信息变化平缓的的流场位置可以采用大尺寸较为稀疏的网格,进而实现使用较小规模的网格即可得到整个复杂流场信息,同时在保证模拟准确度的前提下也提高了对于复杂流场进行流体力学模拟的效率。
附图说明
图1是本申请一种流体力学模拟的方法一实施例中的流程示意图;
图2为本申请一种流体力学模拟的方法另一实施例中的流程示意图;
图3为本申请一种流体力学模拟的方法又一个实施例中的流程示意图;
图4为本申请一种流体力学模拟的方法又一实施例中的流程示意图;
图5为本申请一种流体力学模拟的方法再一实施例中的流程示意图;
图6为本申请一种流体力学模拟的方法再一实施例中的流程示意图;
图7为本申请一种流体力学模拟的方法一实施例中的应用场景示意图;
图8为本申请一种流体力学模拟的方法另一实施例中的应用场景示意图;
图9为本申请一种流体力学模拟的方法又一实施例中的应用场景示意图;
图10为本申请一种流体力学模拟装置一实施例中的结构示意图;
图11为本申请一种存储介质一实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在现有流体力学领域中,根据观察尺度的不同,描述流体主要有宏观连续模型、微观分子模型和介观动力学模型三种方法。传统计算流体力学的数值模拟基于宏观连续模型,将流体视为连续的,通过一组高度非线性的偏微分方程描述,但是基于宏观连续模型存在着稳定性、收敛速度、并行效率等问题。微观分子模型中,流体被视为由许多分子组成的系统,研究单个分子的动力学特性,然后应用统计方法得到宏观的流体信息,但是微观分子模型的模拟程序较复杂,计算量大,对内存的要求高,无法适应于大规模复杂的流场模拟应用场景。格子Boltzmann方法(介观动力学模型)不同于直接离散纳维叶-斯托克斯(Navier-Stokes)等宏观方程和分子动力学,它基于分子动理论,由Boltzmann方程演化而来,是介于流体的微观分子动力学模型和宏观连续模型之间的介观模型。它从介观的角度反映了流体流动的物理本质,将流体视为比分子大,但在宏观上无限小的一系列粒子。这些粒子按照一定物理规律在网格上进行演化计算,通过对反映粒子状态的分布函数进行统计平均求得宏观物理量。由于粒子在迁移过程中,格点上的粒子只是与格点最近的粒子进行信息交换,而碰撞过程中只与格点自身相关,所以格子Boltzmann方法非常适合并行计算。近年来,格子Boltzmann方法已发展成为一种流行的、有前景的数值方法,并在多相流、多孔介质、磁流体、燃烧、结晶等方面有着成功的应用和研究。但是现有的格子Boltzmann方法多采用均匀笛卡尔网格,然而对于具有复杂边界的几何模型,所需要的格子数目往往是巨大的。由于均匀笛卡尔网格的缺陷,格子Boltzmann方法难以处理具有复杂几何边界的流体计算,而本申请所提供的流体力学模拟的方法,则是在空间上采用有限体积方法离散、时间上采用龙格-库塔方案离散的格子Boltzmann方法的全并行高效算法,可以较好地解决现有技术中所存在的问题,具体请参见下文各个实施例中对应部分的阐述。
参阅图1,图1是本申请一种流体力学模拟的方法一实施例中的流程示意图。在当前实施例中,本申请所提供的方法包括:
S110:获取流场模型,并生成对应流场模型的非结构化的流场网格。
首先导入需要进行流体力学模拟的流场模型,流场模型是由用户根据实际的需要进行设置并导入的。在获取到流场模型之后,会利用设定的算法对流场模型进行处理,以获得对应流场模型的非结构化的流场网格。其中,所生成的对应流场模型不同位置的网格的尺寸是随机的,没有规律的。具体地,流场网格的生成规则遵循着,在流场信息变化大的地方生成的网格尺寸较小、网格密度较大,在流场信息变化较小的地方生成的网格尺寸较大,对应的所生成的网格密度较小。
S120:获取基于流场模型而设置的初始宏观信息、边界条件信息和执行进程数量。
在获取到流场模型之后,还会进一步获取基于流场模型而设置的初始宏观信息、边界条件信息和执行进程数量。具体地,在导入流场模型之后,提示用户根据流场模型模拟问题的需要,设置流场的初始宏观量信息、流场中各个边界的边界条件信息和并行执行的进程数。
其中,初始宏观信息至少包括:流场模型的初始密度、流场模型中的初始流体速度和流场模型的初始压力。流场中各个边界的边界条件信息包括:边界的宏观信息以及其他所需的相关信息,如流场的边界条件信息还可以包括边界的坐标等。在本申请所提供的技术方案中,会将基于流场模型而设置的初始宏观信息用作流场模型中各个网格单元的初始宏观信息。
并行执行的进程数是指用于并行处理流场模拟的逻辑程序的数量,在当前实施例中按照功能将用于处理流场模拟的主体逻辑程序定义为进程,多个进程中至少包括一个主进程和多个普通进程。其中,主进程会执行读取网格文件、将每个子区域中的网格单元对应的宏观信息聚合并输出作为流场模型的模拟结果,普通进程则主要是用于对与该普通进程对应的子区域进行流场模拟进而获得各个子区域中网格单元的宏观信息。
S130:采用预设划分算法对流场网格进行划分,以得到对应执行进程数量的多个子区域,并为每个进程分配对应的子区域。
采用预设划分算法对流场网格进行划分,以得到对应执行进程数量的多个子区域。在完成对流场网格进行划分之后,会进一步将划分所得的子区域对应分配给每个进程,每个进程会根据设定对其对应的子区域进行流体力学模拟,以得到各个子区域的流体力学的相关信息,也可以理解为使得每个进程根据初始宏观信息、边界条件信息计算得到对应子区域的粒子分布函数,进而最终基于子区域中各个网格单元的粒子分布函数确定各个网格单元的宏观信息。其中,由于流场模型是三维概念,在当前实施例中,划分所得的子区域至少包括三维概念的区域。其中,需要说明的是,在此并不限定子区域的形状和尺寸,子区域的尺寸和形状具体依据预设划分算法中所包括的划分准则确定。
进一步地,在一实施例中,利用多级k路图划分算法对流场网格进行划分,进而得到对应进程数量的子区域。可以理解的是,在其他实施例中,也可以利用其他的算法对流场网格进行划分,具体在此不一一举例。
S140:利用每个进程分别根据初始宏观信息、边界条件信息计算对应每个子区域中每个网格单元的粒子分布函数,并根据每个子区域中每个网格单元的粒子分布函数确定对应每个子区域中网格单元的宏观信息。
在完成流场网格的划分,以及为每个进程分配对应的子区域之后,利用每个进程分别根据初始宏观信息、边界条件信息计算对应每个子区域中每个网格单元的粒子分布函数。具体地,如上所述本申请所提供的技术方案中包括一个主进程和多个普通进程,在当前步骤中则是利用包括主进程和多个普通进程在内的每个进程分别根据初始宏观信息、边界条件信息分别计算得到与各个进程相对应的子区域中每个网格单元的粒子分布函数。
在计算求得各个子区域中网格单元的粒子分布函数之后,进一步根据每个子区域中每个网格单元所对应的粒子分布函数确定每个子区域中网格单元的宏观信息,即根据所求得的子区域中每个网格单元的粒子分布函数确定该子区域中对应网格单元的密度、流体速度和压力。
在其他实施例中,在计算求得各个子区域中网格单元的粒子分布函数之后,进一步根据粒子分布函数更新各个子区域中对应网格单元的宏观信息。
S150:根据子区域中网格单元的宏观信息计算流场的收敛值,并根据流场的收敛值判断流场模型是否满足收敛条件。
在求得每个子区域的宏观信息后,然后进一步利用每个进程根据子区域中网格单元的宏观信息分别计算各自所对应的子区域速度变化的和及速度大小的和。然后根据速度变化的和及速度大小的和,计算该子区域的速度相对变化量,并根据所得的各个子区域的速度相对变化量判断流场模型是否满足收敛条件。其中,在一实施例中也可以将速度相对变化量理解为收敛值。具体地,当子区域的速度相对变化量小于等于预设阈值时,则判断子区域满足收敛条件,当流场模型中的多数子区域满足收敛条件,则可以判断流场模型满足收敛条件。其中,预设阈值为一用于判断是否收敛的经验值。具体可以参见下文对应实施例中的阐述。
在判断得到流场模型满足收敛条件时,则会执行步骤S160,反之,若判断得到子区域的收敛值大于预设阈值时,则判断得到子区域不满足收敛条件,对应的,当流场模型中低于预设比例的子区域满足收敛条件时,则判断流场模型不满足收敛条件,此时则会利用每个进程重新执行上述步骤S140及之后的至少部分步骤。
S160:将每个子区域中网格单元的宏观信息聚合并输出作为流场模型的模拟结果。
若根据所得的各个子区域的收敛值判断得到流场模型满足收敛条件,则会将步骤S140中更新所得的每个子区域中网格单元对应的宏观信息聚合并输出作为流场模型的模拟结果。
本申请图1所对应的实施例中,通过生成对应所获取的流场模型的非结构化流场网格,并获取基于流场模型而设置的初始宏观信息、边界条件信息和执行进程数量后,采用预设的划分算法对流场网格进行划分,进而得到对应执行进程数量的子区域,并为每个进程分配对应的子区域,然后利用每个进程分别根据初始宏观信息、边界条件信息计算得到对应每个子区域中每个网格单元的粒子分布函数,然后分别根据所得的粒子分布函数确定对应子区域中网格单元的宏观信息。再利用更新后的各个子区域中网格单元的宏观信息计算得到子区域的收敛值,进而根据各个子区域的收敛值判断流场模型是否满足收敛条件,在判断得到流场模型满足收敛条件时,则可以将各个子区域中各个网格单元的宏观信息进行聚合后输出作为流场模型的模拟结果。
即相比现有技术,在本申请图1所对应的实施例中所提供的技术方案,对获取到的流场模型生成非结构化的流场网格,可以较好地适应于实际应用环境中复杂的流场信息,避免现有技术中采用均匀笛卡尔网格下网格尺寸必须保持一致的缺点,可以实现在流场信息变化大的流场位置采用高精度的网格,在流场信息变化平缓的的流场位置可以采用大尺寸较为稀疏的网格,进而实现使用较小规模的网格即可得到整个复杂流场信息,同时在保证模拟准确度的前提下也提高了对于复杂流场进行流体力学模拟的效率。
请参见图2,图2为本申请一种流体力学模拟的方法另一实施例中的流程示意图。在当前实施例中,本申请所提供的方法包括:
S201:获取流场模型,并生成对应流场模型的非结构化的流场网格。
首先需要说明的是,步骤S201与图1所对应的实施例中的步骤S110相同,具体内容可以参见步骤S110对应部分的阐述,具体在此不再详述。
进一步地,在当前实施例中,步骤S201获取流场模型,并生成对应流场模型的非结构化的流场网格之后,本申请所提供的方法进一步包括步骤S202。
S202:将生成的流场模型的非结构化的流场网格保存为网格文件。
在获取到流场模型并生成对应流场模型的非结构化的流场网格后,进一步将所生成的流场模型的非结构化的流场网格保存为网格文件,以备在完成对流场网格或流场模型划分后,由各个进程读取分配所得的子区域所对应的网格文件。网格文件中至少包括步骤S201中生成的非结构化流场网格以及对应各个流场网格的信息,流场网格是指整个流场模型对应的所有网格单元,每个子区域包括多个网格单元,具体地每个子区域所包括的网格单元的数量是由划分算法的划分规则确定,不同的子区域中所包括的网格单元的数量可以是不相同的,也可以是相同的,在此不做任何限定。需要说明的是,在当前实施例中,只要需要进行流体力学模拟的流场模型不改变,则对应的步骤S201至步骤S205则只会执行一次,当流场模型发生改变时,则对应的S201至步骤S205会重新执行。
S203:获取基于流场模型而设置的初始宏观信息、边界条件信息和执行进程数量。
其中,初始宏观信息为用户根据实际的需要设定的,初始宏观信息包括:流场模型的初始密度、流场模型中的初始流体速度和流场模型的初始压力。
S204:采用预设划分算法对流场网格进行划分,以得到对应执行进程数量的多个子区域,并为每个进程分配对应的子区域。
步骤S203至S204与图1所对应的实施例中的步骤S120和步骤S130相同,具体可以参见上文对应部分的阐述,在此不再赘述。
在当前实施例中,在步骤S204采用预设划分算法对流场网格进行划分,以得到对应执行进程数量的多个子区域,并为每个进程分配对应的子区域之后,本申请所提供的方法进一步包括步骤S205。
S205:利用主进程读取网格文件,并分别为普通进程分配各自对应的子区域所对应的子网格文件。
在完成对流场模型所对应的流场网格的划分,得到对应执行进程数量的多个子区域后,进一步由主进程读取网格文件,并分别为各个普通进程分配各个普通进程对应的子区域所对应的子网格文件,通过读取网格文件至少可以读取到各个网格单元的坐标信息。进一步地,在其他实施例中,还可以通过读取网格文件读取到各个网格单元的坐标信息以及网格单元所包含点的单元信息,其中网格单元所包含点的单元信息至少包括当前网格单元所包括的点序号和/或点所对应的坐标信息。其中,子网格文件为子区域在网格文件中所对应部分的网格文件,当流场网格划分得到8个子区域时,则对应的流场模型所对应的网格文件则会对应子区域划分得到8个子网格文件。如,当包括8个进程处理流体力学模拟方案时,主进程在读取到网格文件后,会为剩余的7个普通进程分配各自所对应子区域的子网格文件,如对于2号普通进程,则只为其分配2号普通进程所对应的子区域所在位置所对应的子网格文件,而不会分配其他子区域对应的子网格文件给2号普通进程。对应的,当主进程也对应处理一个子区域时,主进程也会为自身读取该子区域所对应的子网格文件。
进一步地,图1所对应的实施例中的步骤S140利用每个进程分别根据初始宏观信息、边界条件信息计算对应每个子区域中每个网格单元的粒子分布函数,进一步包括步骤S206至步骤S208。
S206:利用每个进程根据其对应的子区域所对应的子网格文件所包括的网格单元的坐标信息计算子区域中所包括的每个网格单元的属性信息。
在完成子区域的划分以及分配,并对应为各个进程读取对应的子区域所对应的子网格文件之后,会利用每个进程根据其各自处理的子区域所对应网格单元的坐标信息计算子区域中所包括的每个网格单元的属性信息。
其中,网格单元的坐标信息是通过上述步骤S205读取网格文件即可读取到。在当前实施例中,生成的网格文件中所包括的网格单元为一个四面体,对应的计算网格单元的属性信息至少包括确定网格单元四个顶点所在面以及所在网格单元、计算四面体四个面的质心、每个面所包括的端点坐标信息以及每个面的面积。同时确定网格单元的属性信息还会包括确定当前网格单元的体积、质心以及该网格单元所包括的面和点坐标信息。可以理解的是,在此并不限定网格单元的属性信息仅仅包括上述内容,在其他实施例中,可以根据实际的需求计算网格单元的其他属性信息,在此不一一列举。
需要说明的是,本申请所提供的技术方案中,在计算子区域中所包括的每个网格单元的属性信息之前或者是同时,本申请所提供的技术方案还会包括:在内存中分配用于信息传递应用程序接口并行接收和发送的缓冲区,以用于下述步骤中相邻的子区域中具备交界面的相邻网格单元之间的数据传递。
S207:分别根据每个网格单元的初始宏观信息计算每个网格单元对应的初始粒子分布函数。
在计算得到每个网格单元的属性信息之后,会进一步根据每个网格单元的初始宏观信息计算每个网格单元对应的初始粒子分布函数,以便根据每个网格单元的初始粒子分布函数更新当前时间段内的子区域中网格单元的粒子分布函数。其中,网格单元的初始宏观信息为基于流场模型而设置的初始宏观信息。需要说明的是,时间段是指的是当前的计算循环时间,即如果经过步骤S209确定流场模型不满足收敛条件时,会进一步循环重新执行步骤S208,对应的,时间段是指前后两次执行步骤S208之间的时间差,该时间差可以由用户根据实际需要进行设置,也可以是由程序自行根据经验值默认设定。
进一步地,上述步骤S207分别根据每个网格单元的初始宏观信息计算每个网格单元对应的初始粒子分布函数,进一步包括:根据每个网格单元的初始宏观信息,通过下述公式计算每个网格单元的当前时间段的平衡态分布函数。
具体地,公式为:
Figure BDA0002472317940000081
其中,
Figure BDA0002472317940000082
代表当前时间段网格单元中第α个离散速度方向的平衡态分布函数值,ρ代表网格单元的密度,u代表网格单元对应的流体速度,cs代表声速,eα代表格子模型中第α个方向的离散速度,eα为e的第α个列向量,其中,当前时间段为第一个时间段,ρ为流场模型的初始密度,u为流场模型中的初始流体速度,cs则为用户设定的一个定值。
其中,格子模型中方向数量为理论模型中推导而得,如一实施例中,可以根据理论模型中的推导设定一个网格单元中包括19个方向,对应的,一个网格单元有一个质心,则一个网格单元会有19个粒子分布函数值和19个平衡态分布函数值。
网格单元中的离散速度e具体如下所示:
Figure BDA0002472317940000091
在另一实施例中,其中,设定比例ωα是根据方向的序号进行设定的,具体设定比例如下所示:
Figure BDA0002472317940000092
在求取到每个网格单元的当前时间段的平衡态分布函数之后,进一步将每个网格单元的当前时间段的平衡态分布函数分别赋值为初始粒子分布函数。
S208:利用每个进程分别根据每个子区域内包括的网格单元所对应的初始粒子分布函数,采用龙格-库塔方法实时更新当前时间段子区域中网格单元的粒子分布函数。
在利用每个进程求取得到每个子区域内包括的网格单元所对应的初始粒子分布函数后,进一步利用每个进程分别根据每个子区域内包括的网格单元所对应的初始粒子分布函数,采用龙格-库塔方法实时更新当前时间段内子区域中网格单元的粒子分布函数。
S209:根据子区域中网格单元的宏观信息计算流场的收敛值,并根据流场的收敛值判断流场模型是否满足收敛条件。
在一实施例中,步骤S209也可以是利用各个进程分别根据各自对应的子区域中网格单元的宏观信息计算各个子区域的收敛值,并由主进程收集每个子区域对应的收敛值然后计算流场模型的收敛值,最终利用主进程根据流场模型的收敛值判断流场模型是否满足收敛条件。进一步地,是由各个进行根据对应子区域中网格单元的宏观信息计算子区域中的速度变化量的和以及速度大小的和,然后在由各个进程求取速度变化量的和与速度大小的和的比值,以得到子区域的速度相对变化量,即求得子区域的收敛值,再由子区域将各自所对应的收敛值反馈至主进程,以求得流程模型的收敛值,进而再利用主进程根据流场模型的收敛值判断流场模型是否满足收敛条件。在其他实施例中,在各个进程求取得到各自的收敛值后,进一步根据收敛值判断各自所对应的子区域是否满足收敛条件,然后将判断结果反馈至主进程,由主进程根据各个进程反馈的各个子区域的收敛判断结果进一步判断流场是否满足收敛条件。
在另一实施例中,步骤S209也可以是利用各个进程分别根据对应子区域中网格单元的宏观信息计算子区域中速度变化量的和以及速度大小的和,并将其发送给主进程,然后利用主进程计算速度变化量的和与速度大小的和的比值,以得到速度相对变化量,并根据速度相对变化量判断流场模型是否满足收敛条件。在当前实施例中,可将速度相对变化量理解为流场模型的收敛值。若收敛值小于预设阈值,则判断流场模型满足收敛条件,并执行步骤S210,反之则会重新循环执行步骤S208。
S210:将每个子区域对应的宏观信息聚合并输出作为流场模型的模拟结果。
需要说明的是,图2所对应的实施例中步骤S209和S210与图1中所示意的步骤S150和步骤S160相同,在此不再详述,具体可以参见图1所对应的实施例中的阐述。
在当前实施例中,本申请所提供的方法通过生成对应流场模型的三维非结构化网格,即实现通过有限体积方法得到在空间上离散的网格单元,然后在时间上采用龙格-库塔方法,从而得到包含有限体积网格单元区域的粒子分布函数,相比现有技术,本申请所提供的技术方案可以用于处理大规模复杂的流体力学实际应用问题。
请参见图3,图3为本申请一种流体力学模拟的方法又一个实施例中的流程示意图。在当前实施例中,着重对上述步骤S208做进一步阐述。具体地,本申请所提供的方法包括:
S301:分别计算每个子区域内具备交界面的相邻网格单元之间的对流通量。
其中,每个子区域内具备交界面的相邻网格单元之间的对流通量的计算公式如下:
Figure BDA0002472317940000101
其中,Aα,i代表网格单元i的对流通量,Vi代表网格单元i的体积,
Figure BDA0002472317940000102
其中,ε=1.0×10-5,k=1.0,ν为粘性系数,且粘性系数v是预设的固定值,Δx为具备交界面的网格单元i和网格单元j间质心距离的一半,也可以将Δx理解为网格单元i和网格单元j质心坐标差的一半,nij为两个网格单元交界面的法向量,lij为交界面的面积,
Figure BDA0002472317940000111
Figure BDA0002472317940000112
代表交界面左右两边网格单元的粒子分布函数,
Figure BDA0002472317940000113
Figure BDA0002472317940000114
的计算公式如下。
Figure BDA0002472317940000115
上述公式中,
Figure BDA0002472317940000116
Figure BDA0002472317940000117
分别代表网格单元i和网格单元j粒子分布函数的梯度,fα,i和fα,j是代表网格单元i和网格单元j的粒子分布函数,rL和rR分别代表从网格单元i和网格单元j指向两个网格单元交界面质心的向量。
S302:分别根据每个子区域中每个网格单元的平衡态函数和每个网格单元的粒子分布函数,计算每个子区域中每个网格单元对应的碰撞项。
具体地,基于下述公式分别根据每个子区域中的每个网格单元的平衡态函数和每个网格单元的粒子分布函数,求取每个子区域中每个网格单元对应的碰撞项Cα,i,公式如下:
Figure BDA0002472317940000118
其中,
Figure BDA0002472317940000119
为网格单元i在α方向上的平衡态分布函数,fα,i为网格单元i在α方向上的粒子分布函数或初始化粒子分布函数,τ为松弛时间,它的值由粘性系数ν确定,τ=3ν。
S303:根据对流通量和碰撞项,计算当前时间段内子区域中每个网格单元的粒子分布函数。
在求取得到对流通量和碰撞项之后,进一步根据所求得的对流通量和碰撞项计算当前时间段内子区域中每个网格单元的粒子分布函数。
进一步地,步骤S303包括:计算对流通量和碰撞项的和,并输出为第一比例K1,即K1=Aα,i+Cα,i
根据下述公式计算第二比例K2
Figure BDA00024723179400001110
其中,Aα,i为子区域内具备交界面的相邻网格单元之间的对流通量,Cα,i为子区域中网格单元对应的碰撞项。
在分别求取了第一比例K1和第二比例K2之后,再根据下述计算公式计算当前时间段内子区域中每个网格单元的粒子分布函数:
Figure BDA00024723179400001111
其中,
Figure BDA0002472317940000121
为子区域在t+Δt时间段的粒子分布函数,
Figure BDA0002472317940000122
为子区域在t时间段的粒子分布函数。
请参见图4,图4为本申请一种流体力学模拟的方法又一实施例中的流程示意图。在当前实施例中,着重展示的是上述步骤S140中的根据每个子区域中网格单元的粒子分布函数确定对应每个子区域中网格单元的宏观信息进一步包括的步骤。首先需要说明的是,在当前实施例中,宏观信息包括:子区域中网格单元的密度、子区域中网格单元的流体速度和子区域中网格单元的压力,在当前实施例中,本申请所提供的方法包括:
S401:对子区域中每个网格单元的粒子分布函数的值进行求和,并将求和的结果作为子区域中对应网格单元的密度。
如上所述,当在一个实施例中,每个网格单元中预设有19个方向,对应的,在执行步骤S401时是将每个网格单元中的19个方向上的粒子分布函数的值进行求和,并将对19个方向上的粒子分布函数的值的和输出作为该网格单元的密度。
具体地,求取网格单元密度ρ的公式如下:ρ=∑fα,其中,fα为网格单元中各个预设方向上的粒子分布函数的值。
S402:根据网格单元中设定方向的列向量、网格单元的粒子分布函数值和子区域中网格单元的密度计算子区域中网格单元的流体速度。
其中,网格单元中设定方向的列向量、网格单元的粒子分布函数值和子区域中网格单元的密度之间的等式关系如下述公式:即网格单元的密度与网格单元对应的流体速度的乘积等于网格单元中各个设定方向列向量与网格单元设定方向的粒子分布函数值的乘积的和,即ρu=∑eαfα,进而可以根据上述等式的关系可以得到网格单元流体速度u,速度u的计算公式如下
Figure BDA0002472317940000123
S403:计算子区域中网格单元的流体密度和声速的平方值的积,作为对应网格单元的压力。
即网格单元的压力值等于该网格单元的密度与声速cs的平方值的积,即
Figure BDA0002472317940000124
其中,需要说明的是,在当前实施例中,网格单元的密度是上述步骤S401中求取所得的密度。
请参见图5,图5为本申请一种流体力学模拟的方法再一实施例中的流程示意图。在当前实施例中,上述步骤S150根据子区域中网格单元的宏观信息计算流场的收敛值,并根据流场的收敛值判断流场模型是否满足收敛条件,进一步包括:
S501:利用每个进程根据各自对应的子区域中每个网格单元的流体速度以及网格单元的三维方向上的速度分量,计算子区域对应的收敛值,并将收敛值发送至主进程。
首先需要说明的是,进程包括主进程和普通进程,在当前实施例中,主进程和普通进程在判断流场模型是否满足收敛条件里分别执行不同的步骤。具体可以参见图5所对应实施例中的阐述。
在判断流场模型是否满足收敛条件时,首先要利用各个进程根据各自对应的子区域中每个网格单元的流体速度u,以及对应网格单元的三维方向上的速度分量,分别求得各个子区域对应的速度变化量以及速度大小的和,然后由主进程收集并计算速度的相对变化量。由主进程根据速度的相对变化量确定流场模型是否满足收敛条件。
S502:利用主进程计算流场模型的收敛值,并判断流场模型的收敛值是否小于预设阈值。
在利用每个进程(这里的每个进程包括普通进程和主进程)分别计算求得各个子区域速度变化量以及速度大小的和,并将速度变化量以及速度大小的和发送至主进程后,进一步利用主进程计算求得速度变化量与速度大小的和的比值,并输出为速度相对变化量,然后由主进程判断速度相对变化量是否小于预设阈值,并由主进程根据判断结果确定流场模型是否满足收敛条件。其中,预设阈值是预设的用于判断流场模型是否满足收敛的经验值,具体可以根据实际的需要或根据模拟需要进行设置,在此不做任何限定。在判断得到根据速度相对变化量小于预设阈值时,则判断得到流场模型满足收敛条件,此时会执行下述步骤S603,反之则判断流场模型不满足收敛条件。
其中,流场模型的速度相对变化量的计算以及是否满足收敛的判断公式如下:
Figure BDA0002472317940000131
其中,un,vn和wn是子区域中每个网格单元的流体速度u在t时刻在三维方向上的分量,ζ为用于判断是否收敛的阈值。
S503:判断得到流场模型满足收敛条件。
若主进程判断流场模型中速度相对变化量小于预设阈值,则主进程会进一步判断得到流场模型满足收敛条件。进一步地,主进程会将每个子区域对应的宏观信息聚合并输出作为流场模型的模拟结果。
可以理解的是,在其他实施例中,本申请所提供的方法中,上述步骤根据子区域中网格单元的宏观信息计算子区域中网格单元对应的粒子分布函数的收敛值,并根据每个子区域对应的收敛值判断流场模型是否满足收敛条件,进一步包括下述流程:利用每个进程根据各自对应的子区域中每个网格单元的流体速度以及网格单元的三维方向上的速度分量,计算各个子区域的收敛值,并由各个进程分别根据各个子区域的收敛值判断各个子区域的收敛值是否小于预设阈值;再利用各个进程向主进程反馈子区域是否满足收敛条件的判断结果,然后由主进程根据各个进程反馈的判断结果,进一步判断流场模型是否满足收敛条件。其中,计算收敛值即是计算速度相对变化量,速度相对变化量可以根据图5所对应的实施例中的计算公式进行计算。
进一步地,主进程可以根据所收到的其他各个进程反馈的子区域是否满足收敛条件的判断结果,进一步判断流场模型是否满足收敛条件。具体地,主进程可以通过判断满足收敛条件的子区域比例是否大于或等于预设比例,来判断流场模型是否满足收敛条件。
在一实施例中,预设比例可以为百分之百,即只有当判断得到流场模型中所有的子区域的速度变化量小于预设阈值时,主进程方会判断流场模型满足收敛条件。
在另一实施例中,当流场模型中所包括的子区域数量较多时,如可以根据实际需要设置预设比例为百分之九十五,那么对应的,主进程只有在判断得到流场模型中有大于或等于百分之九十五的子区域的收敛值小于预设阈值时,方会判断流场模型满足收敛条件。
请参见图6,图6为本申请一种流体力学模拟的方法再一实施例中的流程示意图。在当前实施例中,本申请所提供的方法包括:
S601:获取流场模型,并生成对应流场模型的非结构化的流场网格。
S602:将生成的流场模型的非结构化的流场网格保存为网格文件。
S603:获取基于流场模型而设置的初始宏观信息、边界条件信息和执行进程数量。
S604:采用预设划分算法对流场网格进行划分,以得到对应执行进程数量的多个子区域,并为每个进程分配对应的子区域。
S605:利用主进程读取网格文件,并分别为普通进程分配各自对应的子区域所对应的子网格文件。
其中,需要说明的是,在当前实施例中,步骤S601至步骤S605与上述图2所对应的实施例中的步骤S201至步骤S205相同,具体可以参见上文对应部分的阐述,在此不做任何赘述。在当前实施例中,采用预设划分算法对流场网格进行划分得到多个子区域之后,会进一步执行下述步骤S606。
S606:利用每个进程生成对应子区域的预设单元。
其中,预设单元为用于处理子区域中边界条件的预设单元。其中,预设单元的对应子区域中边界所包括的网格单元生成,即预设单元的数量对应子区域中处于边界的网格单元的数量。在为每个进程分配对应的子区域之后,并由主进程为各个普通进程分配各自对应的子区域所对应的子网格文件后,本申请所提供的方法还会利用每个进程生成对应子区域的预设单元。其中,在一些实施例中,将预设单元定义为ghost单元。如,当某一个子区域中的边界上存在8个网格单元,则该子区域对应的进程会对应8个网格单元生成预设单元,其中该进程所生成的预设单元分别与8个处于边界上的网格单元相对应,用于处理子区域边界条件。
S607:分别根据每个网格单元的初始宏观信息计算每个网格单元对应的初始粒子分布函数。
S608:利用每个进程根据其对应的子区域所对应的子网格文件所包括的网格单元的坐标信息、单元信息和初始宏观信息计算子区域中所包括的每个网格单元的属性信息。步骤S607至步骤S608可以对应参见上文图2中步骤S207和步骤S206的阐述,在此不再详述。
S609:利用每个进程分别将其所对应的子区域中的外层网格单元的粒子分布函数传递给所述相邻子区域并接收所述相邻子区域的发送的最外层网格单元的粒子分布函数,以用于确定相邻子区域处网格单元的粒子分布函数。
即看将步骤S609理解为利用每个进程分别将其所对应的子区域中的外层单元粒子分布函数放置在发送缓冲区,以传递给相邻的子区域对应的进程,并利用接收缓冲区接收相邻子区域对应的进程发送来的粒子分布函数,然后将接收缓冲区中的数据放置在相应的网格单元处,以用于确定相邻子区域之间的对流通量,进而使得相邻子区域的进程确定相邻子区域处网格单元的粒子分布函数。
需要说明的是,在当前实施例中,当下述步骤S612判断得到流场模型不满足收敛条件时,则会再次重新执行步骤S609及步骤S609之后的步骤。对应的,在当前实施例中,实现在每次开始新一轮迭代步计算前,需要将每个进程处理的子区域最外层所有网格单元的粒子分布函传递给相邻子区域,从而使得相邻子区域对应的进程可以根据所得到的相邻子区域的最外层网格单元的粒子分布函数值,进而可以计算得到该子区域对应的粒子分布函数。
S610:利用平衡态外推方法计算预设单元的粒子分布函数。
在利用每个进程生成对应子区域的预设单元之后,进一步根据边界条件,为预设单元设置预设单元对应的宏观信息,并利用平衡态外推方法计算预设单元的粒子分布函数。具体地,首先需要计算求得预设单元对应的网格单元的平衡态分布函数,然后通过近似的算法求得预设单元的粒子分布函数。具体公式如下:
Figure BDA0002472317940000151
上述式中,fα,i'
Figure BDA0002472317940000152
分别代表预设单元i′的粒子分布函数和平衡态分布函数,fα,i
Figure BDA0002472317940000153
Figure BDA0002472317940000154
分别代表预设单元i′所对应的网格单元i的粒子分布函数、平衡态分布函数和非平衡态分布函数。
进一步地,在首次循环执行本申请所提供的技术方案时,在步骤S607之后本申请所提供的方法还包括:在内存中分配用于通讯协议并行接收和发送的缓冲区,以用于具备相邻子区域交界面处相邻网格单元之间的数据传递,以便执行下述步骤S608。在当前实施例中,只是在内存中分配一次用于通讯协议并行接收和发送的缓冲区,即步骤在内存中分配用于通讯协议并行接收和发送的缓冲区,以用于具备相邻子区域交界面处相邻网格单元之间的数据传递不参与循环。
S611:利用每个进程分别根据每个子区域内包括的网格单元所对应的初始粒子分布函数,采用龙格-库塔方法实时更新当前时间段子区域中每个网格单元的粒子分布函数和宏观信息。
S612:利用每个进程根据子区域中网格单元的宏观信息计算子区域中速度变化量的和以及速度大小的和,并将其发送给主进程,由主进程计算速度相对变化量,并根据速度相对变化量判断流场模型是否满足收敛条件。
S613:将每个子区域对应的宏观信息聚合并输出作为流场模型的模拟结果。上述步骤S609至步骤S613与图2中的步骤S206至步骤S210相同,具体可以参见上文对应部分的阐述,在此不再详述。在当前实施例中,可以通过采用预设划分算法对流场网格进行划分,进而保证了大规模复杂流场网格划分的并行效率,同时再由每个进程生成各自负责的子区域部分预设单元,方便边界条件的处理,同时也实现缩短了对于整个流场模型进行流体力学模拟所需的时间。
请同时参见图7至图9,图7为本申请一种流体力学模拟的方法一实施例中的应用场景示意图;图8为本申请一种流体力学模拟的方法另一实施例中的应用场景示意图;图9为本申请一种流体力学模拟的方法又一实施例中的应用场景示意图。在一实施例中,当需要对以圆球O绕流的流场模型进行流体力学模拟时,首先是将流体模型A导入网格生成软件或程序逻辑中,以生成对应流场模型A的网格并将所生成的网格保存为网格文件。同时获取基于流场模型设置的网格的初始宏观信息、边界条件信息和执行进程数量,其中边界条件至少包括网格的入口、出口、壁面、圆球面等。同时可以设置流场网格(流场模型)的初始流场信息为ρ=1.0,u=(0.1 0 0),(其中,ρ是流场模型的宏观上的初始密度,u流场模型对应的初始宏观量速度),同时由用户根据实际的需要设置并行执行的进程数。
然后利用预设划分算法并行划分流场网格,以得到对应执行进程数量的多个子区域,再由主进程读取网格文件为各个进程分配对应的子区域所对应的子网格文件,各个进程对各自对应的子区域进行并行模拟计算得到各个子区域的粒子分布函数以及宏观信息,再计算求得粒子分布函数的速度相对变化量,最后根据速度相对变化量判断流场模型是否满足收敛条件,当判断得到满足收敛条件后,停止执行上述计算并将各个子区域的宏观信息聚合输出作为流场模型的模拟结果。通过对上述技术方案的性能进行测试得到,本申请所提供的技术方案在提高运行速度的前提下也可以较好地保证计算结果的准确性,在对本申请所提供的技术方案和现有技术中的流体力学模拟的方案在不同雷诺数的进行测试比较得到,本申请所提供的技术方案在减少计算量的情况下同时可以较好地保证计算结果的准确性。
请参见图10,图10为本申请一种流体力学模拟装置一实施例中的结构示意图。在当前实施例中,本申请所提供的流体力学模拟装置1000包括耦接的处理器1001和存储器1002。其中,流体力学模拟装置1000可以执行图1至图9及其对应的任意一个实施例中所述的流体力学模拟的方法。
其中,存储器1002包括本地储存(图未示),且存储有计算机程序,计算机程序被执行时可以实现图1至图9及其所对应的任意一个实施例中所述的方法。
处理器1001与存储器1002耦接,处理器1001用于运行计算机程序,以执行如上图1至图9及其对应的任意一个实施例中所述的流体力学模拟的方法。
参见图11,图11为本申请一种存储介质一实施例结构示意图。该存储介质1100存储有能够被处理器运行的计算机程序1101,该计算机程序1101用于实现如上图1至图9及其对应的任意一个实施例中所描述的流体力学模拟的方法。具体地,上述存储介质1100可以是存储器、个人计算机、服务器、网络设备,或者U盘等其中的一种,具体在此不做任何限定。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (14)

1.一种流体力学模拟的方法,其特征在于,所述方法包括:
获取流场模型,并生成对应所述流场模型的非结构化的流场网格;
获取基于所述流场模型而设置的初始宏观信息、边界条件信息和执行进程数量;
采用预设划分算法对所述流场网格进行划分,以得到对应所述执行进程数量的多个子区域,并为每个所述进程分配对应的所述子区域;
利用每个所述进程分别根据所述初始宏观信息、所述边界条件信息计算对应每个所述子区域中每个所述网格单元的粒子分布函数,并根据每个所述子区域中所述网格单元的粒子分布函数确定对应每个所述子区域中所述网格单元的宏观信息;
根据所述子区域中所述网格单元的宏观信息计算所述流场的收敛值,并根据所述流场的所述收敛值判断所述流场模型是否满足收敛条件;
若是,则将每个所述子区域中所述网格单元的宏观信息聚合并输出作为所述流场模型的模拟结果。
2.根据权利要求1所述的流体力学模拟的方法,其特征在于,
所述预设划分算法为并行多级k路图划分算法,所述进程包括主进程和普通进程;
所述获取流场模型,并生成对应所述流场模型的非结构化的流场网格之后,所述方法进一步包括:
将生成的所述流场模型的非结构化的流场网格保存为网格文件;
所述采用预设划分算法对所述流场网格进行划分,以得到对应所述执行进程数量的多个子区域,并为每个所述进程分配对应的所述子区域之后,所述方法进一步包括:
利用所述主进程读取所述网格文件,并分别为所述普通进程分配各自对应的子区域所对应的子网格文件,所述网格文件中包括对应所述进程数量的子网格文件,所述子网格文件包括多个网格单元。
3.根据权利要求2所述的流体力学模拟的方法,其特征在于,
所述利用每个所述进程分别根据所述初始宏观信息、所述边界条件信息计算对应每个所述子区域中所述每个网格单元的粒子分布函数,进一步包括:
利用每个所述进程根据其对应的子区域所对应的所述子网格文件中所包括网格单元的坐标信息计算所述子区域中所包括的每个网格单元的属性信息;
分别根据每个所述网格单元的初始宏观信息计算每个所述网格单元对应的初始粒子分布函数;
利用每个所述进程分别根据每个所述子区域内包括的所述网格单元所对应的初始粒子分布函数,采用龙格-库塔方法实时更新当前时间段所述子区域中所述网格单元的粒子分布函数。
4.根据权利要求3所述的流体力学模拟的方法,其特征在于,
所述初始宏观信息包括:所述流场模型的初始密度、所述流场模型中的初始流体速度和所述流场模型的初始压力;
所述分别根据每个所述网格单元的初始宏观信息计算每个所述网格单元对应的初始粒子分布函数,进一步包括:
根据每个所述网格单元的初始宏观信息,通过下述公式计算每个所述网格单元的当前时间段的平衡态分布函数:
Figure FDA0002472317930000021
将所述每个网格单元的当前时间段的平衡态分布函数分别赋值为所述初始粒子分布函数;
其中,
Figure FDA0002472317930000022
代表所述当前时间段所述网格单元中第α个离散速度方向的平衡态分布函数值,ρ代表所述网格单元的密度,u代表所述网格单元对应的流体速度,cs代表声速,e代表所述网格单元中第α个方向的离散速度,eα为e的第α个列向量,其中,当所述当前时间段为第一个时间段,所述ρ为所述流场模型的初始密度,所述u为所述流场模型中的初始流体速度。
5.根据权利要求3所述的流体力学模拟的方法,其特征在于,
所述利用每个所述进程分别根据每个所述子区域内包括的网格单元所对应的初始粒子分布函数,采用龙格-库塔方法分别更新当前时间段所述子区域中所述网格单元的粒子分布函数,进一步包括:
分别计算每个所述子区域内具备交界面的相邻所述网格单元之间的对流通量;
分别根据每个所述子区域中每个所述网格单元的平衡态函数和每个所述网格单元的粒子分布函数,计算每个所述子区域中每个所述网格单元对应的碰撞项;
根据所述对流通量和所述碰撞项,计算所述当前时间段内所述子区域中每个所述网格单元的粒子分布函数。
6.根据权利要求5所述的流体力学模拟的方法,其特征在于,
所述根据所述对流通量和所述碰撞项,计算所述当前时间段内所述子区域中每个所述网格单元的粒子分布函数,进一步包括:
计算所述对流通量和所述碰撞项的和,并输出为第一比例K1
根据下述公式计算第二比例K2
Figure FDA0002472317930000023
其中,所述Aα,i为所述子区域内具备交界面的相邻所述网格单元之间的对流通量,所述Cα,i为所述子区域中所述网格单元对应的碰撞项;
根据下述计算公式计算所述当前时间段内所述子区域中每个所述网格单元的粒子分布函数:
Figure FDA0002472317930000031
其中,所述
Figure FDA0002472317930000032
为所述子区域中所述网格单元在t+Δt时间段的粒子分布函数,所述
Figure FDA0002472317930000033
为所述子区域中所述网格单元在t时间段的粒子分布函数。
7.根据权利要求1所述的流体力学模拟的方法,其特征在于,
所述宏观信息包括:所述子区域中网格单元的密度、所述子区域中网格单元的流体速度和所述子区域中网格单元的压力,所述根据每个所述子区域中所述网格单元的粒子分布函数确定对应每个所述子区域中所述网格单元的宏观信息,进一步包括:
对所述子区域中每个网格单元的中多个预设方向的粒子分布函数的值进行求和,并将求和的结果作为所述网格单元的密度;
根据所述网格单元中所述设定方向的列向量、所述网格单元的粒子分布函数值和所述子区域中所述网格单元的密度计算所述子区域中所述网格单元的流体速度;
计算所述子区域中所述网格单元的流体密度和声速的平方值的积,作为所述网格单元的压力。
8.根据权利要求7所述的流体力学模拟的方法,其特征在于,
所述进程包括主进程和普通进程;
所述根据所述子区域中所述网格单元的宏观信息计算所述流场的收敛值,并根据所述流场的所述收敛值判断所述流场模型是否满足收敛条件,进一步包括:
利用每个所述进程根据各自对应的所述子区域中每个所述网格单元的流体速度以及所述网格单元的三维方向上的速度分量,计算所述子区域对应的收敛值,并将收敛值发送至所述主进程;
利用所述主进程计算所述流场模型的收敛值,并判断所述流场模型的收敛值是否小于预设阈值;
若是,则判断所述流场模型满足所述收敛条件。
9.根据权利要求7所述的流体力学模拟的方法,其特征在于,所述进程包括主进程和普通进程;
所述根据所述子区域中所述网格单元的宏观信息计算所述流场的收敛值,并根据所述流程的所述收敛值判断所述流场模型是否满足收敛条件,进一步包括:
利用每个所述进程根据各自对应的所述子区域中每个所述网格单元的流体速度以及所述网格单元的三维方向上的速度分量,计算所述子区域对应的收敛值,并根据所述收敛值判断所述子区域是否小于满足收敛条件;
利用每个所述进程向所述主进程反馈所述子区域是否满足收敛条件的判断结果;
利用所述主进程根据各个所述进程反馈的所述判断结果,判断所述流场模型是否满足所述收敛条件;
若利用主进程判断得到所述流场中有超过预设比例的子区域满足所述收敛条件,则判断所述流场模型满足所述收敛条件。
10.根据权利要求1所述的流体力学模拟的方法,其特征在于,所述方法还包括:
利用至少部分所述进程生成对应所述流场模型边界所包括的网格单元的预设单元,所述预设单元为用于处理所述流场模型中边界条件的预设单元。
11.根据权利要求10所述的流体力学模拟的方法,其特征在于,所述方法还包括:
利用平衡态外推方法计算所述预设单元的粒子分布函数,其中,计算公式如下:
Figure FDA0002472317930000041
其中,fα,i’
Figure FDA0002472317930000046
分别代表所述预设单元i’的粒子分布函数和平衡态分布函数,fα,i
Figure FDA0002472317930000043
Figure FDA0002472317930000044
分别代表第i个网格单元的粒子分布函数、平衡态分布函数和非平衡态分布函数,所述预设单元i为用于处理所述第i个网格单元边界条件的单元。
12.根据权利要求1所述的流体力学模拟的方法,其特征在于,所述方法还包括:在内存中分配用于通讯协议并行接收和发送的缓冲区,以用于相邻的子区域中具备交界面的相邻网格单元之间的数据传递。
13.一种流体力学模拟装置,其特征在于,所述装置包括耦接的存储器和处理器,其中,
所述存储器包括本地储存,且存储有计算机程序;
所述处理器用于运行所述计算机程序,以执行权利要求1至12任一项所述的方法。
14.一种存储介质,其特征在于,所述存储介质存储有能够被处理器运行的计算机程序,所述计算机程序用于实现权利要求1至12任一项所述的方法。
CN202010352414.6A 2020-04-28 2020-04-28 一种流体力学模拟的方法、装置及存储介质 Pending CN111680456A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010352414.6A CN111680456A (zh) 2020-04-28 2020-04-28 一种流体力学模拟的方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010352414.6A CN111680456A (zh) 2020-04-28 2020-04-28 一种流体力学模拟的方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN111680456A true CN111680456A (zh) 2020-09-18

Family

ID=72452341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010352414.6A Pending CN111680456A (zh) 2020-04-28 2020-04-28 一种流体力学模拟的方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN111680456A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112613243A (zh) * 2020-12-16 2021-04-06 中国科学院深圳先进技术研究院 一种流体力学模拟的方法、装置及计算机可读存储介质
CN112949112A (zh) * 2021-01-29 2021-06-11 中国石油大学(华东) 一种转子-滑动轴承系统润滑流域动网格并行计算方法
CN112965947A (zh) * 2021-03-10 2021-06-15 中国空气动力研究与发展中心计算空气动力研究所 多块结构网格数据深度压缩存储格式
CN113378445A (zh) * 2021-05-10 2021-09-10 中国科学院过程工程研究所 一种基于离散模拟的气液多相系统计算方法及系统
CN113850032A (zh) * 2021-12-02 2021-12-28 中国空气动力研究与发展中心计算空气动力研究所 一种数值模拟计算中的负载均衡方法
CN116502370A (zh) * 2023-06-25 2023-07-28 中国空气动力研究与发展中心计算空气动力研究所 一种流体参数模拟方法、系统、电子设备及存储介质
CN116755636A (zh) * 2023-08-16 2023-09-15 中国空气动力研究与发展中心计算空气动力研究所 一种网格文件的并行读入方法、装置、设备及存储介质
WO2024007919A1 (zh) * 2022-07-06 2024-01-11 本源量子计算科技(合肥)股份有限公司 基于lbm的量子流动模拟方法、装置、介质及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945295A (zh) * 2012-10-15 2013-02-27 浪潮(北京)电子信息产业有限公司 一种格子玻尔兹曼方法的并行加速方法及系统
CN107515987A (zh) * 2017-08-25 2017-12-26 中国地质大学(北京) 基于多松弛格子玻尔兹曼模型的地下水流动模拟加速方法
CN108959720A (zh) * 2018-06-08 2018-12-07 浙江捷尚人工智能研究发展有限公司 一种计算流体力学实时模拟方法、电子设备、存储介质及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945295A (zh) * 2012-10-15 2013-02-27 浪潮(北京)电子信息产业有限公司 一种格子玻尔兹曼方法的并行加速方法及系统
CN107515987A (zh) * 2017-08-25 2017-12-26 中国地质大学(北京) 基于多松弛格子玻尔兹曼模型的地下水流动模拟加速方法
CN108959720A (zh) * 2018-06-08 2018-12-07 浙江捷尚人工智能研究发展有限公司 一种计算流体力学实时模拟方法、电子设备、存储介质及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
徐磊: "格子Boltzmann方法及其并行算法研究", 《中国博士学位论文全文数据库基础科学辑》, pages 27 *
李斌;姚路;焦明月;周遵凯;: "基于OpenMP的流化床颗粒堆积过程三维并行数值模拟", 热力发电, no. 01, pages 42 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112613243A (zh) * 2020-12-16 2021-04-06 中国科学院深圳先进技术研究院 一种流体力学模拟的方法、装置及计算机可读存储介质
CN112613243B (zh) * 2020-12-16 2023-10-20 中国科学院深圳先进技术研究院 一种流体力学模拟的方法、装置及计算机可读存储介质
CN112949112A (zh) * 2021-01-29 2021-06-11 中国石油大学(华东) 一种转子-滑动轴承系统润滑流域动网格并行计算方法
CN112965947B (zh) * 2021-03-10 2022-04-01 中国空气动力研究与发展中心计算空气动力研究所 多块结构网格数据深度压缩存储格式
CN112965947A (zh) * 2021-03-10 2021-06-15 中国空气动力研究与发展中心计算空气动力研究所 多块结构网格数据深度压缩存储格式
CN113378445A (zh) * 2021-05-10 2021-09-10 中国科学院过程工程研究所 一种基于离散模拟的气液多相系统计算方法及系统
CN113378445B (zh) * 2021-05-10 2024-02-02 中国科学院过程工程研究所 一种基于离散模拟的气液多相系统计算方法及系统
CN113850032A (zh) * 2021-12-02 2021-12-28 中国空气动力研究与发展中心计算空气动力研究所 一种数值模拟计算中的负载均衡方法
WO2024007919A1 (zh) * 2022-07-06 2024-01-11 本源量子计算科技(合肥)股份有限公司 基于lbm的量子流动模拟方法、装置、介质及设备
CN116502370A (zh) * 2023-06-25 2023-07-28 中国空气动力研究与发展中心计算空气动力研究所 一种流体参数模拟方法、系统、电子设备及存储介质
CN116502370B (zh) * 2023-06-25 2023-09-12 中国空气动力研究与发展中心计算空气动力研究所 一种流体参数模拟方法、系统、电子设备及存储介质
CN116755636A (zh) * 2023-08-16 2023-09-15 中国空气动力研究与发展中心计算空气动力研究所 一种网格文件的并行读入方法、装置、设备及存储介质
CN116755636B (zh) * 2023-08-16 2023-10-27 中国空气动力研究与发展中心计算空气动力研究所 一种网格文件的并行读入方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN111680456A (zh) 一种流体力学模拟的方法、装置及存储介质
CN112613243B (zh) 一种流体力学模拟的方法、装置及计算机可读存储介质
Chow et al. A natural extension of the conventional finite volume method into polygonal unstructured meshes for CFD application
Gao et al. Particle simulations of planetary probe flows employing automated mesh refinement
JP5255714B2 (ja) 三次元の流体シミュレーション方法
Wu et al. Parallel three-dimensional DSMC method using mesh refinement and variable time-step scheme
CN112380793B (zh) 基于gpu的湍流燃烧数值模拟并行加速实现方法
CN114065567A (zh) 一种燃料电池电堆公共歧管结构优化方法和装置
Liu et al. Three-dimensional high-order least square-based finite difference-finite volume method on unstructured grids
CN112507600A (zh) 一种移动粒子半隐式法的对称边界条件的构建方法
CN103207927B (zh) 模拟产品的结构性能的方法和系统
Hutridurga et al. On the Maxwell–Stefan diffusion limit for a mixture of monatomic gases
EP3179390A1 (en) Method and apparatus for modeling movement of air bubble based on fluid particles
Zhou et al. Tools to support mesh adaptation on massively parallel computers
Shamseddine et al. A novel spatio-temporally adaptive parallel three-dimensional DSMC solver for unsteady rarefied micro/nano gas flows
Feng et al. Cellular topology optimization on differentiable Voronoi diagrams
Yu et al. A robust Delaunay-AFT based parallel method for the generation of large-scale fully constrained meshes
CN113449450A (zh) 一种基于颗粒尺度计算流体力学模拟的方法
Xu et al. Efficient monolithic immersed boundary projection method for incompressible flows with heat transfer
Zhai et al. Fluid simulation with adaptive staggered power particles on gpus
Collins et al. Three-dimensional reconstruction of statistically optimal unit cells of multimodal particulate composites
Weaver et al. Fluid Simulation by the Smoothed Particle Hydrodynamics Method: A Survey.
Gao et al. A three-level Cartesian geometry-based implementation of the DSMC method
Xu et al. A scalable parallel unstructured finite volume lattice Boltzmann method for three‐dimensional incompressible flow simulations
Lenz et al. An explicit gas kinetic scheme algorithm on non-uniform Cartesian meshes for GPGPU architectures

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