CN106251401A - 一种六面体二十节点单元网格的生成系统及方法 - Google Patents

一种六面体二十节点单元网格的生成系统及方法 Download PDF

Info

Publication number
CN106251401A
CN106251401A CN201610531752.XA CN201610531752A CN106251401A CN 106251401 A CN106251401 A CN 106251401A CN 201610531752 A CN201610531752 A CN 201610531752A CN 106251401 A CN106251401 A CN 106251401A
Authority
CN
China
Prior art keywords
node
hexahedron
unit
node unit
grid
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
CN201610531752.XA
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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201610531752.XA priority Critical patent/CN106251401A/zh
Publication of CN106251401A publication Critical patent/CN106251401A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种六面体二十节点单元网格的生成系统及方法,该系统包括六面体八节点单元数据采集模块、六面体二十节点单元节点数据生成模块、六面体二十节点单元单元信息生成模块和网格数据输出模块四个模块;该方法包括六面体八节点单元数据采集模块读取六面体八节点单元的网格数据,六面体二十节点单元节点数据生成模块通过六面体八节点单元的网格数据在每条边上插点得到单元的额外十二个节点,六面体二十节点单元信息生成模块通过整理生成的额外节点编号信息并将其统一归并在六面体二十节点单元数据数组中,网格数据输出模块输出生成的与原有六面体八节点单元配套的六面体二十节点单元网格数据。本发明为流场有限元模拟算法提供配套的速度和压力网格。

Description

一种六面体二十节点单元网格的生成系统及方法
技术领域:
本发明涉及一种六面体二十节点单元网格的生成系统及方法,用于为流场有限元模拟提供压力网格和高一阶的速度网格。
背景技术:
流场模拟技术在目前工程计算领域的应用越来越广泛,其中有限元法是流场模拟的主要计算方法之一。目前流体力学有限元模拟主要采用原始变量格式(速度压力法)来进行求解,Taylor和Hood在一篇报告中最早指出,如果速度场和压力场用同阶次网格进行计算,虽然可以得到较精确的速度解,但是压力解会产生较大的误差。因而本方法针对此问题,在现有网格生成软件生成的单一网格的基础上,可以插值生成高一阶的速度网格,从而达到更高准确度的流场求解的目标。该方法较之使用判断中点坐标是否已经存在于速度网格节点中来进行节点插入的方法,计算速度提高极多。在1603552个单元,2037292个节点的六边形八节点网格基础上完成六面体二十节点单元网格计算仅需要不超过1分钟时间,而同样的算例使用后者进行计算需要数小时时间。
发明内容:
本发明的目的在于针对现有网格划分软件只能输出单一一套网格,难以满足流场有限元计算需要的不足,提供了一种六面体二十节点单元网格的生成系统及方法,避免两套网格之间出现节点编号对应错位和编号不连续的问题,并且通过该方法可以获得很高的计算速度。
为达到上述目的,本发明采用如下的技术方案予以实现:
一种六面体二十节点单元网格的生成方法,包括以下步骤:
六面体八节点单元数据采集模块从已有的.k格式文件中得到六面体八节点单元的节点和单元信息,六面体二十节点单元节点数据生成模块通过六面体八节点单元的节点和单元信息在每条边上插点得到单元的额外12个节点,六面体二十节点单元信息生成模块通过整理生成的额外节点编号信息并将其统一归并在六面体二十节点单元数据数组中,网格数据输出模块输出生成的与原有六面体八节点单元配套的六面体二十节点单元网格数据。
本发明进一步的改进在于:六面体八节点单元数据采集模块创建节点类实例链表nodes和八节点六面体单元数组eleQuad_8,根据.k格式文件,读入节点编号坐标信息,单元PID和单元节点编号,part信息,初始化节点数组nodes的节点编号和坐标数据,初始化八节点单元数组eleQuad_8的PID和节点编号数组数据。
本发明进一步的改进在于:六面体二十节点单元节点数据生成模块在节点类中增加一个记录单元边中点和端点的链表pairPoints,链表中每个元素包括两个整形变量,分别存储当节点的中点编号和对应的另外一个端点编号,增加一个记录节点端点的数组endPoints,数组长度为2。
本发明进一步的改进在于:将六面体二十节点单元中节点编号数组的前八个节点初始化为对应的六面体八节点单元的编号,遍历所有单元,针对每一个单元,分别完成以下步骤:
1)六面体二十节点单元节点数据生成模块中,获得该单元一条边,得到边的两个端点,第一个端点编号nodeId1,第二个端点编号为nodeId2;
2)六面体二十节点单元节点数据生成模块中,遍历nodeId1的pairPoints链表,如果其pairPoints链表中存在另一个端点编号号为nodeId2,则执行步骤3);否则,执行步骤4);
3)六面体二十节点单元单元信息生成模块中,取得pairPoints链表中与nodeId2对应的中点编号,并将其设置为六面体二十节点单元当前边对应的节点编号数组中,六面体单元的12条边的中点依次对应六面体二十节点单元的节点编号数组的后12个节点,返回执行步骤1),开始处理下一条边;
4)六面体二十节点单元节点数据生成模块中,取得nodes链表的长度size,以(size+1)为节点编号,以节点编号为nodeId1和节点编号为nodeId2的两个节点计算其中点得到的x,y,z坐标为坐标构造节点类实例midPoint,之后执行步骤5);
5)六面体二十节点单元节点数据生成模块中,将midPoint设置为六面体二十节点单元当前边对应的节点编号数组中,六面体单元的12条边的中点一次对应六面体二十节点单元的节点编号的后12个节点,之后执行步骤6);
6)六面体二十节点单元节点数据生成模块中,在nodes链表末尾添加新节点midPoint,同时nodes链表的大小增加1,返回执行步骤1),开始处理下一条边。
本发明进一步的改进在于:网格数据输出模块给出了对应的六面体八节点单元网格和生成的六面体二十节点单元网格,直接调用模块方法getNodeV()、getNodeP()、getEleQuad_8()和getEleQuad_20()得到其两套配套的网格数据。
一种六面体二十节点单元网格的生成系统,包括
六面体八节点单元数据采集模块,用于从已有的.k格式文件中得到六面体八节点单元的节点和单元信息;
六面体二十节点单元节点数据生成模块,用于通过六面体八节点单元的节点和单元信息在每条边上插点得到单元的额外12个节点;
六面体二十节点单元单元信息生成模块,用于通过通过整理生成的额外节点编号信息并将其统一归并在六面体二十节点单元数据数组中;
网格数据输出模块四个模块,用于输出生成的与原有六面体八节点单元配套的六面体二十节点单元网格数据。
与现有技术相比,本发明具有如下的优点:
本发明提供了有效解决了现有网格划分方法只能得到单一一套六面体八节点单元网格的不足,有利于有限元流场模拟计算过程中使用速度压力双网格系统进行求解,从而达到更高的计算精度。现有的流场模拟方法基本都采用有限体积算法进行计算,例如CFX、Fluent等,其网格采用交叉网格存储,为之生成网格的ANSYS ICEM网格划分方法得到的六面体网格都是六面体八节点单元网格,且无法生成六面体二十节点单元。
本发明相较与直接匹配二十节点单元中节点坐标判断节点冗余的算法速度大大提高而内存耗用几乎不变。直接匹配二十节点单元中节点坐标判断节点冗余的算法在网格中节点数量增大时,计算时间消耗急剧增加,例如在网格节点数为125时,两种算法计算时间基本一样,但对于一套1069904个节点的六面体八节点单元网格来讲,在同一台电脑上,生成六面体二十节点单元时直接匹配二十节点单元中节点坐标判断节点冗余的算法耗时长达4个多小时,而本发明算法耗时只需不超过20秒。
附图说明:
图1算法流程图;
图2六面体八节点单元示意图;
图3六面体二十节点单元示意图;
图4针肋网格模型示意图。
具体实施方式:
以下结合附图对本发明做出进一步的说明。
本发明一种六面体二十节点单元网格的生成方法,该方法是根据已有的六面体八节点单元网格(参见图2)生成与之配套的六面体二十节点单元网格(参见图3),同时避免两套网格之间出现编号对应错位和节点编号不连续问题。
本发明一种六面体二十节点单元网格的生成方法,其包括:六面体八节点单元数据采集模块从已有的.k格式文件中得到六面体八节点单元的节点和单元信息,六面体二十节点单元节点数据生成模块通过六面体八节点单元的节点和单元信息在每条边上插点得到单元的额外12个节点,六面体二十节点单元信息生成模块通过整理生成的额外节点编号信息并将其统一归并在六面体二十节点单元数据数组中,网格数据输出模块输出生成的与原有六面体八节点单元配套的六面体二十节点单元网格数据;
上述六面体二十节点单元网格的具体生成方式如下:
创建节点类实例链表nodes和八节点六面体单元数组eleQuad_8,根据.k格式文件,读入节点编号坐标信息,单元PID和单元节点编号,part信息,初始化节点数组nodes的节点编号和坐标数据,初始化八节点单元数组eleQuad_8的PID和节点编号数组数据;
在节点类中增加一个记录单元边中点和端点的链表pairPoints,链表中每个元素包括两个整形变量,分别存储当节点的中点编号和对应的另外一个端点编号,增加一个记录节点端点的数组endPoints,数组长度为2;
将六面体二十节点单元中节点编号数组的前八个节点初始化为对应的六面体八节点单元的编号,遍历所有单元,针对每一个单元,完成以下步骤:
1)按顺序获得该单元一条边,得到边的两个端点,第一个端点编号nodeId1第二个端点编号为nodeId2;
2)遍历nodeId1的pairPoints链表,如果其pairPoints链表中存在另一个端点编号号为nodeId2,则执行步骤3;否则,执行步骤4;
3)取得pairPoints链表中与nodeId2对应的中点编号,并将其设置为六面体二十节点单元当前边对应的节点编号数组中,六面体单元的12条边的中点依次对应六面体二十节点单元的节点编号数组的后12个节点,返回执行步骤1,开始处理下一条边;
4)取得nodes链表的长度size,以(size+1)为节点编号,以节点编号为nodeId1和节点编号为nodeId2的两个节点计算其中点得到的x,y,z坐标为坐标构造节点类实例midPoint,之后执行步骤5;
5)将midPoint设置为六面体二十节点单元当前边对应的节点编号数组中,六面体单元的12条边的中点一次对应六面体二十节点单元的节点编号的后12个节点,之后执行步骤6;
6)在nodes链表末尾添加新节点midPoint,同时nodes链表的大小增加1,返回执行步骤1,开始处理下一条边;
等到所有单元处理完成之后,可以通过网格数据输出模块对获得生成的网格数据。网格数据输出模块给出了对应的六面体八节点单元网格和生成的六面体二十节点单元网格,可以直接调用模块方法getNodeV()、getNodeP()、getEleQuad_8()和getEleQuad_20()得到其两套配套的网格数据。
应用实例:
图4所示为一个针肋模型的网格示意图,图中显示的是面网格及网格上的edge,在Ansys ICEM生成的.k格式文件,它是一种LS-DYNA软件采用的网格文件,其类容也包括计算需要的其他设置信息,该文件由六面体八节点单元数据采集模块读入系统中之后,转格式输出tecplot格式网格文件ele8.dat,输出文件主要分3部分,第一部分是文件头,第二部分是节点坐标,第三部分是组成每个单元的节点列表。其中节点数为1069904,单元数为1031940。其网格部分数据如下:
TITLE="grd from E:\researsh\compare\pinFin\pinFin1.k"
VARIABLES="X","Y","Z"
ZONE NODES=1069904,ELEMENTS=1031940,DATAPACKING=POINT,ZONETYPE=FEBRICK
#node
0.0 0.0 0.0
0.0011484483 0.0 0.0
0.0 9.9999929E-5 0.0
0.0011484636 9.9884642E-5 0.0
……
#element
1 2 4 3 5 6 8 7
5 6 8 7 9 10 12 11
9 10 12 11 13 14 16 15
13 14 16 15 17 18 20 19
……
经过本系统及方法计算处理之后,得到的对应的二十节点单元的网格数据,其节点数为4238224,单元数保持不变为1031940,第二部分节点坐标多了3168320行数据,从第三部分数据可以看到每个单元的节点数为20个。部分数据如下:
TITLE="Element_20Node"
VARIABLES="X","Y","Z"
ZONE NODES=4238224,ELEMENTS=1031940,DATAPACKING=POINT,ZONETYPE=FEBRICK
#node
0.0 0.0 0.0
0.0011484483 0.0 0.0
0.0 9.9999929E-5 0.0
0.0011484636 9.9884642E-5 0.0
……
#element
1 2 4 3 5 6 8 7 1069905 1069906 1069907 1069908 1069909 10699101069911 1069912 1069913 1069914 1069915 1069916
5 6 8 7 9 10 12 11 1069913 1069914 1069915 1069916 1069917 10699181069919 1069920 1069921 1069922 1069923 1069924
9 10 12 11 13 14 16 15 1069921 1069922 1069923 1069924 10699251069926 1069927 1069928 1069929 1069930 1069931 1069932
13 14 16 15 17 18 20 19 1069929 1069930 1069931 1069932 10699331069934 1069935 1069936 1069937 1069938 1069939 1069940
……
从以上步骤可以看出,当使用该方法进行六面体二十节点单元网格生成时,需要给出原始的网格划分软件得到的.k格式文件,该格式文件可以由Ansys ICEM软件生成,具体生成需要将网格输出设置为ls-dyna求解器即可得到。该发明方法便可从中读取需要的信息并自动生成高一阶的网格,对应到有限元流场模拟计算中即是一套压力网格和高一阶的速度网格。

Claims (6)

1.一种六面体二十节点单元网格的生成方法,其特征在于,包括以下步骤:
六面体八节点单元数据采集模块从已有的.k格式文件中得到六面体八节点单元的节点和单元信息,六面体二十节点单元节点数据生成模块通过六面体八节点单元的节点和单元信息在每条边上插点得到单元的额外12个节点,六面体二十节点单元信息生成模块通过整理生成的额外节点编号信息并将其统一归并在六面体二十节点单元数据数组中,网格数据输出模块输出生成的与原有六面体八节点单元配套的六面体二十节点单元网格数据。
2.根据权利要求1所述的一种六面体二十节点单元网格的生成方法,其特征在于:六面体八节点单元数据采集模块创建节点类实例链表nodes和八节点六面体单元数组eleQuad_8,根据.k格式文件,读入节点编号坐标信息,单元PID和单元节点编号,part信息,初始化节点数组nodes的节点编号和坐标数据,初始化八节点单元数组eleQuad_8的PID和节点编号数组数据。
3.根据权利要求2所述的一种六面体二十节点单元网格的生成方法,其特征在于:六面体二十节点单元节点数据生成模块在节点类中增加一个记录单元边中点和端点的链表pairPoints,链表中每个元素包括两个整形变量,分别存储当节点的中点编号和对应的另外一个端点编号,增加一个记录节点端点的数组endPoints,数组长度为2。
4.根据权利要求3所述的一种六面体二十节点单元网格的生成方法,其特征在于:将六面体二十节点单元中节点编号数组的前八个节点初始化为对应的六面体八节点单元的编号,遍历所有单元,针对每一个单元,分别完成以下步骤:
1)六面体二十节点单元节点数据生成模块中,获得该单元一条边,得到边的两个端点,第一个端点编号nodeId1,第二个端点编号为nodeId2;
2)六面体二十节点单元节点数据生成模块中,遍历nodeId1的pairPoints链表,如果其pairPoints链表中存在另一个端点编号号为nodeId2,则执行步骤3);否则,执行步骤4);
3)六面体二十节点单元单元信息生成模块中,取得pairPoints链表中与nodeId2对应的中点编号,并将其设置为六面体二十节点单元当前边对应的节点编号数组中,六面体单元的12条边的中点依次对应六面体二十节点单元的节点编号数组的后12个节点,返回执行步骤1),开始处理下一条边;
4)六面体二十节点单元节点数据生成模块中,取得nodes链表的长度size,以(size+1)为节点编号,以节点编号为nodeId1和节点编号为nodeId2的两个节点计算其中点得到的x,y,z坐标为坐标构造节点类实例midPoint,之后执行步骤5);
5)六面体二十节点单元节点数据生成模块中,将midPoint设置为六面体二十节点单元当前边对应的节点编号数组中,六面体单元的12条边的中点一次对应六面体二十节点单元的节点编号的后12个节点,之后执行步骤6);
6)六面体二十节点单元节点数据生成模块中,在nodes链表末尾添加新节点midPoint,同时nodes链表的大小增加1,返回执行步骤1),开始处理下一条边。
5.根据权利要求1所述的一种六面体二十节点单元网格的生成方法,其特征在于:网格数据输出模块给出了对应的六面体八节点单元网格和生成的六面体二十节点单元网格,直接调用模块方法getNodeV()、getNodeP()、getEleQuad_8()和getEleQuad_20()得到其两套配套的网格数据。
6.一种六面体二十节点单元网格的生成系统,其特征在于,包括
六面体八节点单元数据采集模块,用于从已有的.k格式文件中得到六面体八节点单元的节点和单元信息;
六面体二十节点单元节点数据生成模块,用于通过六面体八节点单元的节点和单元信息在每条边上插点得到单元的额外12个节点;
六面体二十节点单元单元信息生成模块,用于通过通过整理生成的额外节点编号信息并将其统一归并在六面体二十节点单元数据数组中;
网格数据输出模块四个模块,用于输出生成的与原有六面体八节点单元配套的六面体二十节点单元网格数据。
CN201610531752.XA 2016-07-06 2016-07-06 一种六面体二十节点单元网格的生成系统及方法 Pending CN106251401A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610531752.XA CN106251401A (zh) 2016-07-06 2016-07-06 一种六面体二十节点单元网格的生成系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610531752.XA CN106251401A (zh) 2016-07-06 2016-07-06 一种六面体二十节点单元网格的生成系统及方法

Publications (1)

Publication Number Publication Date
CN106251401A true CN106251401A (zh) 2016-12-21

Family

ID=57613689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610531752.XA Pending CN106251401A (zh) 2016-07-06 2016-07-06 一种六面体二十节点单元网格的生成系统及方法

Country Status (1)

Country Link
CN (1) CN106251401A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109584369A (zh) * 2018-10-24 2019-04-05 中国石油天然气股份有限公司 实际地层全六面体网格生成方法及装置
CN110705029A (zh) * 2019-09-05 2020-01-17 西安交通大学 一种基于迁移学习的振荡扑翼能量采集系统流场预测方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109584369A (zh) * 2018-10-24 2019-04-05 中国石油天然气股份有限公司 实际地层全六面体网格生成方法及装置
CN109584369B (zh) * 2018-10-24 2021-09-28 中国石油天然气股份有限公司 实际地层全六面体网格生成方法及装置
CN110705029A (zh) * 2019-09-05 2020-01-17 西安交通大学 一种基于迁移学习的振荡扑翼能量采集系统流场预测方法

Similar Documents

Publication Publication Date Title
CN103135446B (zh) 一种多轴数控机床刀具运动轨迹验证装置
CN111489447B (zh) 一种适用于格子Boltzmann方法的直角网格自适应建模方法
CN107145651B (zh) 基于inp文件的abaqus三维无限元边界快速建模方法
CN113468763A (zh) 一种模拟燃料组件水力特性试验的设计仿真方法及系统
CN113052955A (zh) 一种点云补全方法、系统及应用
CN112380650A (zh) 工作装置结构件设计方法
CN106251401A (zh) 一种六面体二十节点单元网格的生成系统及方法
Fujisawa et al. Parallel computing of high‐speed compressible flows using a node‐based finite‐element method
CN114676522A (zh) 融合gan和迁移学习的气动形状优化设计方法及系统及设备
US10943037B2 (en) Generating a CAD model from a finite element mesh
CN109684723A (zh) 一种二维结构内部声学性能分析方法
Wu et al. Implicit fitting and smoothing using radial basis functions with partition of unity
CN103077554B (zh) 基于节单位的作物交互式设计方法和系统
CN109313819A (zh) 线路模型实现方法、装置和计算机可读存储介质
CN112685936B (zh) 一种用于贝壳珍珠母微结构有限元分析的建模方法
CN115130340A (zh) 基于分数布朗运动的管道建模方法
CN114398711A (zh) 一种混凝土重力坝cae集成分析方法、装置和电子设备
Dawes Managing the geometry is limiting the ability of CFD to manage the flow
CN117252993B (zh) 特征点提取算法的验证方法、装置、电子设备及存储介质
Marchant et al. Adaptivity techniques for compressible inviscid flows
CN113569419B (zh) 一种液体火箭发动机三维总装模型快速生成系统及方法
Carrigan et al. Meshing considerations for automotive shape design optimization
CN111694911B (zh) 一种在指定范围内生成随机分布点的方法、设备和系统
Zhu et al. NURBS Modeling and Curve Interpolation Optimization of 3D Graphics
KR100662996B1 (ko) 액체기계의 열유체 해석 및 열응력 해석 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161221