CN105279320B - 一种生成fdtd网格的方法 - Google Patents
一种生成fdtd网格的方法 Download PDFInfo
- Publication number
- CN105279320B CN105279320B CN201510649401.4A CN201510649401A CN105279320B CN 105279320 B CN105279320 B CN 105279320B CN 201510649401 A CN201510649401 A CN 201510649401A CN 105279320 B CN105279320 B CN 105279320B
- Authority
- CN
- China
- Prior art keywords
- fdtd
- grids
- point
- dimensional
- data
- 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.)
- Expired - Fee Related
Links
Abstract
本发明公开了一种生成FDTD网格的方法。基于商用软件Hypermesh生成三角面元的模型,再对之进行处理生成FDTD网格。实现空间步长的自由选取,生成不同规格的FDTD网格,同时解决了多种介质材料复杂模型的问题。最后通过CAD检测生成的FDTD网格,检验建模结果的正确性。本发明能够解决复杂目标模型的FDTD建模问题,以及多种材料FDTD建模问题。
Description
技术领域
本发明属于电磁场数值计算领域,具体涉及一种FDTD三维建模技术。
背景技术
近年来随着商用建模软件的迅速发展,使得复杂模型的建模变得十分便利。但是用FDTD方法研究物体的电磁散射特性时,必须按照FDTD要求进行网格化离散,即将FDTD计算区域以六面体元胞(长方体)为单元进行剖分,并确定每个单元的介质参数。
随着FDTD方法的广泛采用,算法的不断进步,对能够进行复杂模型FDTD计算的需求越加强烈。普通的建模根据模型的解析式,只能生成简单的模型,无法解决复杂模型的问题。因此非常有必要设计一种能够解决多部件复杂模型的FDTD网格生成技术。
发明内容
本发明的目的在于提供一种生成FDTD网格的方法,解决复杂模型及多种材料FDTD建模问题。
为了解决以上技术问题,本发明设计建立一种复杂三角面元模型生成FDTD网格技术。基于商用软件Hypermesh生成三角面元的模型,再对之进行处理生成三维FDTD网格。实现空间步长的自由选取,生成不同规格的FDTD网格,同时解决了多种介质材料复杂模型的问题:
一种生成FDTD网格的方法,其特征在于包括以下步骤:
步骤一,使用Hypermesh建模工具建模得Hypermesh模型,对Hypermesh模型进行剖分,剖分成三角面元模型,保存三角面元模型得stl格式三角面元模型数据;
步骤二,按stl格式三角面元模型数据的格式逐行处理stl格式三角面元模型数据,自动分析和提取stl格式三角面元模型数据中三维点坐标数据以及部件起始行数据并加以保存;
步骤三,根据三维点坐标数据以及部件起始行数据,分别建立各部件FDTD网格后再合成最终模型FDTD网格。
所述步骤一具体包括以下过程:
过程1.1.1,使用UG、CAD或Hypermesh商用建模软件建模,再导入到Hypermesh中进行剖分;
过程1.1.2,选择edge deviation进行剖分,根据模型尺寸选择最大最小三角面元尺寸,运行程序后会根据模型的复杂程度自动选择合适的尺寸来剖分,最后导出stl格式三角面元模型数据。
所述步骤二具体包括以下过程:
过程1.2.1,读取stl格式三角面元模型数据的总行数;
过程1.2.2,判断stl格式三角面元模型数据中三维点坐标所在的行数及三维点坐标数据所在位置;
过程1.2.3,用Fortran语言读取三维点坐标数据所在行成字符串;
过程1.2.4,将上步骤所述的字符按照三维点坐标数据所在的字符位置转化成数据格式;
过程1.2.5,存储三维点坐标数据到文件中;
过程1.2.6,判断多种部件所在的起始行数;
过程1.2.7,根据三维点坐标数据所有点三维方向上最大最小值判断Hypermesh模型尺寸,基于用户对三维FDTD网格大小的需求选取合适的空间步长。
所述步骤三具体包括以下过程:
过程1.3.1,根据部件起始行数据处理三维点坐标数据,读取三维点坐标数据,创建3*3的矩阵代表一个三角面元片,创建一个循环按照每三行读取一个三角面元数据,存储在临时3*3的矩阵中;
过程1.3.2,根据三维点坐标数据生成三维FDTD网格,对每个3*3的三角面元所对应的矩阵,把三个点放在FDTD网格中,所需要计算的是根据步长的取整计算,即把三角面元的三个点放在三维FDTD网格的格点上,如果网格很粗,或者说所取的步长很大的情况下,三角形的三个点都在一个网格内,就对这个网格赋值该部件的号码,如果三角面元跨越了多个FDTD网格,那么针对每个3*3的三角面元所对应的矩阵,得到根据步长取整的三个量化点,扩大成一个长方体,就可以包含覆盖不到的所有网格点,再对这些FDTD网格点赋值部件号;
过程1.3.3,对部件内部补充实点,进行补点的处理时,每个部件只是一个空壳,内部没有点,采用的方法是针对每个空点,看它X正向反向,Y正向反向,Z正向反向有没有点存在,一共六个方向的延伸,如果每个方向都存在点,那么这个点是在体内部的,是存在的,具体的做法是,根据三维FDTD网格数据,依据它的格点存储方式,读出YZ坐标与该点相同的所有点,得到一组数据,并放在临时的数组中,得到了X正向反向上的点。同理Y和Z方向也按照相同的方法得到另外两组数组,在这三个数组里以该点为中心分别做往外六个方向的三维空间延伸,如果碰到实点,做标记。如果六个方向都标记到,则可以判定该点也是实点,并对该点赋值所在部件号;
过程1.3.4,如模型存在多个部件则重复对每个部件进行上述过程1.3.1、1.3.2、1.3.3,部件1的部件号为1,部件二的部件号为2,依次类推;
过程1.3.5,对比部件大小,将各部件合成最终的三维FDTD网格,具体方法是:补点后计算该部件有多少个FDTD网格点,得到部件的大小,针对多部件重合的点,比较部件大小,取较小部件保证模型的精确度,再把各个部件整合到FDTD网格中。
本发明能够识别复杂模型开槽的情况,并对之进行处理。所述采用文件方式存储读取所有的数据和文件。一旦数据超过数组的极限,计算机内存限制,就会溢出,就不能对复杂的模型进行三角面元处理。采用文件之间的读写,速度慢,但能满足对大数据处理的需求。
本发明具有有益效果。本发明是通过Hypermesh商用建模软件,把模型剖分成三角面元,再转化成FDTD网格。本发明具有灵活建模,识别多重材料部件,识别开槽空腔的优点。
附图说明
图1为三角面元在一个三维FDTD网格内情形;
图2为三角面元在多个三维FDTD网格内情形;
图3为stl数据格式;
图4为Hypermesh中球剖分成的三角面元图;
图5为Hypermesh中正方体剖分成的三角面元图;
图6为球三维FDTD网格通过CAD可视化检测;
图7为正方体三维FDTD网格通过CAD可视化检测;
图8为球和正方体RCS及其MIE级数解对比;
图9为复杂模型的Hypermesh剖分成的三角面元图;
图10为复杂模型三维FDTD网格通过CAD可视化检测;
具体实施方式
下面结合附图对本发明的技术方案做进一步详细说明。
如图1所示,表示三角面元在一个FDTD网格中,在建模中,三角面元尺寸通常都很小,而FDTD网格尺寸所取比较大,因此图中的情形代表了大多三角面元和FDTD网格的关系。在图中,该FDTD网格赋值为三角面元所在部件的号码。
如图2所示,在图中一个三角面元在两个FDTD网格中,这两个FDTD网格赋值为三角面元所在部件的号码。
如图3所示,stl格式三角面元模型数据是每7行代表了一个三角面元,三个点坐标均以vertex开始,读取所在行成字符串,再根据数据所在的位置转换为数据格式存在三维点坐标数据中。同时每个部件以‘solid name’,‘endsolid’开始和结束,并记录部件起始行数据。
如图4所示,在Hypermesh中剖分球模型的三角面元图,球半径为1m。
如图5所示,在Hypermesh中剖分正方体模型的三角面元图,正方体边长为2.5cm。
如图6所示,采用本文所述方法,对图4所示的球建模,生成三维FDTD网格,通过CAD检测正确性。
如图7所示,采用本文所述方法,对图5所示的正方体建模,生成三维FDTD网格,通过CAD检测正确性。
如图8所示,通过FDTD计算图5图6模型,选取的材料都是金属,生成雷达散射截面RCS,并与MIE级数对比,检测正确性。
如图9所示,复杂开槽模型的Hypermesh三角面元图,圆环为部件1,十字架为部件2。
如图10所示,复杂开槽模型的三维FDTD网格图,通过CAD可视化检测。
Claims (3)
1.一种生成FDTD网格的方法,其特征在于包括以下步骤:
步骤一,使用Hypermesh建模工具建模得Hypermesh模型,对Hypermesh模型进行剖分,剖分成三角面元模型,保存三角面元模型得stl格式三角面元模型数据;具体包括以下过程:
过程1.1.1,使用UG、CAD或Hypermesh商用建模软件建模,再导入到Hypermesh中进行剖分;
过程1.1.2,选择edge deviation 进行剖分,根据模型尺寸选择最大最小三角面元尺寸,运行程序后会根据模型的复杂程度自动选择合适的尺寸来剖分,最后导出stl格式三角面元模型数据;
步骤二,按stl格式三角面元模型数据的格式逐行处理stl格式三角面元模型数据,自动分析和提取stl格式三角面元模型数据中三维点坐标数据以及部件起始行数据并加以保存;具体包括以下过程:
过程1.2.1,读取stl格式三角面元模型数据的总行数;
过程1.2.2,判断stl格式三角面元模型数据中三维点坐标所在的行数及三维点坐标数据所在位置;
过程1.2.3,用Fortran语言读取三维点坐标数据所在行成字符串;
过程1.2.4,将上步骤所述的字符按照三维点坐标数据所在的字符位置转化成数据格式;
过程1.2.5,存储三维点坐标数据到文件中;
过程1.2.6,判断多种部件所在的起始行数;
过程1.2.7,根据三维点坐标数据所有点三维方向上最大最小值判断Hypermesh模型尺寸,基于用户对三维FDTD网格大小的需求选取合适的空间步长;
步骤三,根据三维点坐标数据以及部件起始行数据,分别建立各部件FDTD网格后再合成最终模型FDTD网格;具体包括以下过程:
过程1.3.1,根据部件起始行数据处理三维点坐标数据,读取三维点坐标数据,创建3*3的矩阵代表一个三角面元片,创建一个循环按照每三行读取一个三角面元数据,存储在临时3*3的矩阵中;
过程1.3.2,根据三维点坐标数据生成三维FDTD网格,对每个3*3的三角面元所对应的矩阵,把三个点放在FDTD网格中,所需要计算的是根据步长的取整计算,即把三角面元的三个点放在三维FDTD网格的格点上,如果网格很粗,或者说所取的步长很大的情况下,三角形的三个点都在一个网格内,就对这个网格赋值该部件的号码,如果三角面元跨越了多个FDTD网格,那么针对每个3*3的三角面元所对应的矩阵,得到根据步长取整的三个量化点,扩大成一个长方体,就可以包含覆盖不到的所有网格点,再对这些FDTD网格点赋值部件号;
过程1.3.3,对部件内部补充实点,进行补点的处理时,每个部件只是一个空壳,内部没有点,采用的方法是针对每个空点,看它X正向反向,Y正向反向,Z正向反向有没有点存在,一共六个方向的延伸,如果每个方向都存在点,那么这个点是在体内部的,是存在的,具体的做法是,根据三维FDTD网格数据,依据它的格点存储方式,读出YZ坐标与该点相同的所有点,得到一组数据,并放在临时的数组中,得到了X正向反向上的点;
同理Y和Z方向也按照相同的方法得到另外两组数组,在这三个数组里以该点为中心分别做往外六个方向的三维空间延伸,如果碰到实点,做标记;
如果六个方向都标记到,则可以判定该点也是实点,并对该点赋值所在部件号;
过程1.3.4,如模型存在多个部件则重复对每个部件进行上述过程1.3.1、1.3.2、1.3.3,部件1的部件号为1,部件二的部件号为2,依次类推;
过程1.3.5,对比部件大小,将各部件合成最终的三维FDTD网格,具体方法是:补点后计算该部件有多少个FDTD网格点,得到部件的大小,针对多部件重合的点,比较部件大小,取较小部件保证模型的精确度,再把各个部件整合到FDTD网格中。
2.根据权利要求1所述的一种生成FDTD网格的方法,其特征在于根据所有点三维方向上最大最小值选取用户自定的空间步长生成FDTD网格。
3.根据权利要求1所述的一种生成FDTD网格的方法,其特征在于能够识别复杂模型开槽的情况,并对之进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510649401.4A CN105279320B (zh) | 2015-10-09 | 2015-10-09 | 一种生成fdtd网格的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510649401.4A CN105279320B (zh) | 2015-10-09 | 2015-10-09 | 一种生成fdtd网格的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105279320A CN105279320A (zh) | 2016-01-27 |
CN105279320B true CN105279320B (zh) | 2018-05-22 |
Family
ID=55148330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510649401.4A Expired - Fee Related CN105279320B (zh) | 2015-10-09 | 2015-10-09 | 一种生成fdtd网格的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105279320B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105869213B (zh) * | 2016-03-25 | 2018-11-20 | 江苏大学 | 一种多阶fdtd网格建模方法 |
CN114580249B (zh) * | 2022-05-05 | 2022-09-13 | 广州中望龙腾软件股份有限公司 | 一种多环路的fdtd电磁场仿真分析方法、系统、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101982837A (zh) * | 2010-09-19 | 2011-03-02 | 北京航空航天大学 | 一种基于有限元分析后处理结果的快速三维可视化方法 |
CN103914879A (zh) * | 2013-01-08 | 2014-07-09 | 无锡南理工科技发展有限公司 | 一种在抛物线方程中由三角面元数据生成立方网格数据的方法 |
CN104317772A (zh) * | 2014-10-22 | 2015-01-28 | 中国科学院合肥物质科学研究院 | 一种基于空间网格分割的蒙特卡罗粒子输运快速几何处理方法 |
CN104809258A (zh) * | 2014-01-23 | 2015-07-29 | 南京理工大学 | 电磁散射仿真建模中面片法向量自适应修改方法 |
-
2015
- 2015-10-09 CN CN201510649401.4A patent/CN105279320B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101982837A (zh) * | 2010-09-19 | 2011-03-02 | 北京航空航天大学 | 一种基于有限元分析后处理结果的快速三维可视化方法 |
CN103914879A (zh) * | 2013-01-08 | 2014-07-09 | 无锡南理工科技发展有限公司 | 一种在抛物线方程中由三角面元数据生成立方网格数据的方法 |
CN104809258A (zh) * | 2014-01-23 | 2015-07-29 | 南京理工大学 | 电磁散射仿真建模中面片法向量自适应修改方法 |
CN104317772A (zh) * | 2014-10-22 | 2015-01-28 | 中国科学院合肥物质科学研究院 | 一种基于空间网格分割的蒙特卡罗粒子输运快速几何处理方法 |
Non-Patent Citations (3)
Title |
---|
一种基于面元模型的FDTD自动网格产生技术;普鑫;《计算机应用》;20061231;第26卷;第119-120、131页 * |
基于目标三角面元模型生成FDTD共形网格的方法;胡晓娟等;《强激光与粒子束》;20070831;第19卷(第8期);第1333-1337页 * |
柱面坐标下基于OpenGL的非均匀FDTD网格的生成;周国祥等;《计算机应用研究》;20080531;第25卷(第5期);第1593-1595页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105279320A (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104933757B (zh) | 一种基于款式描述符的三维服装建模方法 | |
US8831913B2 (en) | Method of design optimisation | |
CN102521878B (zh) | 可编程三维人体建模和人体测量系统和方法 | |
Gélard et al. | Model-based segmentation of 3D point clouds for phenotyping sunflower plants | |
CN106133628A (zh) | 用于确定加工凹槽形状的刀具的路径的方法和系统 | |
CN110033519A (zh) | 基于隐式函数的三维建模方法、装置、系统及存储介质 | |
CN109584357A (zh) | 基于多轮廓线的三维建模方法、装置、系统及存储介质 | |
US20160138914A1 (en) | System and method for analyzing data | |
CN106844620B (zh) | 一种基于视图的特征匹配三维模型检索方法 | |
CN106227957A (zh) | 等效裂缝建模的方法 | |
CN103135446B (zh) | 一种多轴数控机床刀具运动轨迹验证装置 | |
CN103236043A (zh) | 一种植物器官点云修复方法 | |
CN105279320B (zh) | 一种生成fdtd网格的方法 | |
Zhang et al. | A surface based approach to recognition of geometric features for quality freeform surface machining | |
CN108287974A (zh) | 面向土地利用变化元胞自动机模拟精度的耦合评价方法 | |
CN105045958A (zh) | 基于bp神经网络的gps高程拟合的实现系统及方法 | |
Shin et al. | Data enhancement for sharing of ship design models | |
CN110246205A (zh) | 一种平面工件自动排版方法 | |
EP1452984A1 (en) | Method for converting 3-dimensional shape data into cell inner data and conversion program | |
CN110363833A (zh) | 一种基于局部稀疏表示的完全人体运动参数化表示方法 | |
CN105513051B (zh) | 一种点云数据处理方法和设备 | |
CN105869213B (zh) | 一种多阶fdtd网格建模方法 | |
CN109872386A (zh) | 一种基于stl模型精确体素化的产品物性建模方法 | |
CN106803266A (zh) | 一种船体复杂外板点云肋骨线提取方法及装置 | |
CN111383341A (zh) | 从原始网格生成结构化的3d模型 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180522 Termination date: 20181009 |
|
CF01 | Termination of patent right due to non-payment of annual fee |