基于刚度矩阵的流体仿真方法及装置制造方法及图纸

技术编号:39718330 阅读:9 留言:0更新日期:2023-12-17 23:25
本发明专利技术公开了一种基于刚度矩阵的流体仿真方法及装置

【技术实现步骤摘要】
基于刚度矩阵的流体仿真方法及装置


[0001]本专利技术涉及数字建模领域,具体而言,涉及一种基于刚度矩阵的流体仿真方法及装置


技术介绍

[0002]相关技术中,有限元方法是一种数值分析方法,用于求解复杂物理和工程问题中的偏微分方程,通过将问题域离散化为许多小的

简单的子域,即
"
有限元
"
,用于求解复杂结构的物理问题

它在工程学和科学领域中得到广泛应用,尤其是在结构力学

流体力学

热传导和电磁场等领域

其中,刚度矩阵计算是有限元方法计算程序中的关键部分,而单元刚度矩阵计算过程中,通常会选取多个积分点处,进行矩阵的元素计算;而这一矩阵元素的计算过程,涉及多个不同维度的张量缩并运算,由于张量的阶数最大可以是4阶,这一运算开销大

[0003]相关技术中在单元刚度矩阵计算过程中,采用稠密张量表示和计算单位刚度矩阵,导致计算量大,进而导致模型仿真的速度慢,效率低

[0004]针对相关技术中存在的上述问题,目前尚未发现有效的解决方案


技术实现思路

[0005]本专利技术实施例提供了一种基于刚度矩阵的流体仿真方法及装置

[0006]根据本申请实施例的一个方面,提供了一种基于刚度矩阵的流体仿真方法,包括:确定目标流体在问题域上的有限元方程,其中,所述问题域包括多个有限元,每个有限元对应所述问题域的一个离散化子域,每个离散化子域对应一个单位刚度矩阵;配置静态化的坐标
COO
格式的稀疏张量类模板,其中,所述稀疏张量类模板的模板参数包括张量维数和非零元的位置;根据所述有限元方程和所述稀疏张量类模板计算单位刚度矩阵;采用所述单位刚度矩阵在处理器中装填生成所述问题域的总刚度矩阵;采用所述总刚度矩阵模拟计算所述目标流体在几何形状中的流动特征参数

[0007]进一步,配置静态化的
COO
格式的稀疏张量类模板包括:配置正数类型的第一参数包;将所述第一参数包中的一个第一参数选择为张量维数
d
,并将所述第一参数的所在位置之后的每
d
个数配置为一个非零元的位置,得到静态化的
COO
格式的第一稀疏张量类模板

[0008]进一步,配置静态化的
COO
格式的稀疏张量类模板包括:配置正数类型的第二参数包;将所述第二参数包中的一个第二参数选择为张量维数
d
,并在所述第二参数的所在位置之后配置常量表达式
std::array<int, d>
,采用所述常量表达式配置每个非零元的位置,得到静态化的
COO
格式的第二稀疏张量类模板

[0009]进一步,根据所述有限元方程和所述稀疏张量类模板计算单位刚度矩阵包括:采用有限元方程的基函数和网格参数推导得到单元刚度矩阵元素方程和缩并维度;对所述稀疏张量类模板中的非零元进行运算,生成静态化的稀疏张量集合
;
基于所述缩并维度对所述稀疏张量集合执行张量缩并运算,得到缩并后的中间结果;采用所述中间结果计算单元
刚度矩阵元素,得到单位刚度矩阵

[0010]进一步,对所述稀疏张量类模板中的非零元进行运算,生成静态化的稀疏张量集合,包括:判断所述稀疏张量类模板中的非零元是否有解析表达式;若所述稀疏张量类模板中的非零元有解析表达式,利用静态
for
循环遍历所述稀疏张量类模板中的每个非零元,并依次执行预设运算操作,生成静态化的稀疏张量集合;若所述稀疏张量类模板中的非零元没有解析表达式,显式写出所述稀疏张量类模板中的每个非零元,并依次执行预设运算操作,生成静态化的稀疏张量集合

[0011]进一步,基于所述缩并维度对所述稀疏张量集合执行张量缩并运算,得到缩并后的中间结果,包括:判断所述缩并维度是否为标量;若所述缩并维度是否为标量为标量,采用
C++
语法中的折叠表达式对所述稀疏张量集合各个非零元的值乘以相应的数后求和,得到中间结果

[0012]进一步,采用所述中间结果计算单元刚度矩阵元素,得到单位刚度矩阵,包括:确定以下中间结果:
、、、
,其中,是形状为
Field*Field
的稀疏张量,为形状
Field * Dim * Field
的稀疏张量,是形状为
Dim * Field * Field
的稀疏张量,为形状
Dim * Field * Dim * Field
的稀疏张量,
Dim
为所述问题域的维数,
Field
为所述有限元方程的数量;采用所述中间结果配置以下单元刚度矩阵元素方程:,得到单位刚度矩阵;其中,

表示数值积分,
K
为网格单元,为基函数,
i、j
分别为网格单元
K
内的行和列

[0013]根据本申请实施例的另一个方面,还提供了一种基于刚度矩阵的流体仿真装置,包括:确定模块,用于确定目标流体在问题域上的有限元方程,其中,所述问题域包括多个有限元,每个有限元对应所述问题域的一个离散化子域,每个离散化子域对应一个单位刚度矩阵;配置模块,用于配置静态化的坐标
COO
格式的稀疏张量类模板,其中,所述稀疏张量类模板的模板参数包括张量维数和非零元的位置;计算模块,用于根据所述有限元方程和所述稀疏张量类模板计算单位刚度矩阵;生成模块,用于采用所述单位刚度矩阵在处理器中装填生成所述问题域的总刚度矩阵;模拟模块,用于采用所述总刚度矩阵模拟计算所述目标流体在几何形状中的流动特征参数

[0014]进一步,所述配置模块包括:第一配置单元,用于配置正数类型的第一参数包;第一选择单元,用于将所述第一参数包中的一个第一参数选择为张量维数
d
,并将所述第一参数的所在位置之后的每
d
个数配置为一个非零元的位置,得到静态化的
COO
格式的第一稀疏张量类模板

[0015]进一步,所述配置模块包括:第二配置单元,用于配置正数类型的第二参数包;第二选择单元,用于将所述第二参数包中的一个第二参数选择为张量维数
d
,并在所述第二参数的所在位置之后配置常量表达式
std::array<int, d>
,采用所述常量表达式配置每个非零元的位置,得到静态化的
COO
格式的第二稀疏张量类模板

[0016]进一步,所述计算模块包括:求解单元,用于采用有限元方程的基函数和网格参数推导得到单元刚度矩阵元素方程和缩并维度;运算本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于刚度矩阵的流体仿真方法,其特征在于,包括:确定目标流体在问题域上的有限元方程,其中,所述问题域包括多个有限元,每个有限元对应所述问题域的一个离散化子域,每个离散化子域对应一个单位刚度矩阵;配置静态化的坐标
COO
格式的稀疏张量类模板,其中,所述稀疏张量类模板的模板参数包括张量维数和非零元的位置;根据所述有限元方程和所述稀疏张量类模板计算单位刚度矩阵;采用所述单位刚度矩阵在处理器中装填生成所述问题域的总刚度矩阵;采用所述总刚度矩阵模拟计算所述目标流体在几何形状中的流动特征参数
。2.
根据权利要求1所述的方法,其特征在于,配置静态化的
COO
格式的稀疏张量类模板包括:配置正数类型的第一参数包;将所述第一参数包中的一个第一参数选择为张量维数
d
,并将所述第一参数的所在位置之后的每
d
个数配置为一个非零元的位置,得到静态化的
COO
格式的第一稀疏张量类模板
。3.
根据权利要求1所述的方法,其特征在于,配置静态化的
COO
格式的稀疏张量类模板包括:配置正数类型的第二参数包;将所述第二参数包中的一个第二参数选择为张量维数
d
,并在所述第二参数的所在位置之后配置常量表达式
std::array<int, d>
,采用所述常量表达式配置每个非零元的位置,得到静态化的
COO
格式的第二稀疏张量类模板
。4.
根据权利要求1所述的方法,其特征在于,根据所述有限元方程和所述稀疏张量类模板计算单位刚度矩阵包括:采用有限元方程的基函数和网格参数推导得到单元刚度矩阵元素方程和缩并维度;对所述稀疏张量类模板中的非零元进行运算,生成静态化的稀疏张量集合
;
基于所述缩并维度对所述稀疏张量集合执行张量缩并运算,得到缩并后的中间结果;采用所述中间结果计算单元刚度矩阵元素,得到单位刚度矩阵
。5.
根据权利要求4所述的方法,其特征在于,对所述稀疏张量类模板中的非零元进行运算,生成静态化的稀疏张量集合,包括:判断所述稀疏张量类模板中的非零元是否有解析表达式;若所述稀疏张量类模板中的非零元有解析表达式,利用静态
for
循环遍历所述稀疏张量类模板中的每个非零元,并依次执行预设运算操作,生成静态化的稀疏张量集合;若所述稀疏张量类模板中的非零元没有解析表达式,显式写出所述稀疏张量类模板中的每个非零元,并依次执行预设运算操作,生成静态化的稀疏张...

【专利技术属性】
技术研发人员:杨超罗昊马铖迪李军
申请(专利权)人:北京大学长沙计算与数字经济研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1