一种多阶fdtd网格建模方法

文档序号:10513174阅读:602来源:国知局
一种多阶fdtd网格建模方法
【专利摘要】本发明公开了一种多阶FDTD网格建模方法,基于商用软件Hypermesh生成三角面元的模型,再对之处理生成多阶精度FDTD网格。实现空间步长的自由选取,生成多阶精度的FDTD网格,同时解决了多种介质材料复杂模型的问题。最后通过CAD检测生成的FDTD网格,检验建模结果的正确性。本发明能够解决复杂目标模型的FDTD建模问题,多种材料FDTD建模问题,以及细化特殊部件特征等问题。
【专利说明】
一种多阶FDTD网格建模方法
技术领域
[0001]本发明属于电磁场数值计算领域,具体涉及一种三维建模技术。
【背景技术】
[0002]近年来随着商用建模软件的迅速发展,使得复杂模型的建模变得十分便利。但是用FDTD方法研究物体的电磁散射特性时,必须按照roTD要求进行网格化离散,即将roTD计算区域以六面体元胞(长方体)为单元进行剖分,并确定每个单元的介质参数。
[0003]随着roTD方法的广泛采用,算法的不断进步,对能够进行复杂模型FDTD计算的需求越加强烈。普通的建模根据模型的解析式,只能生成简单的模型,无法解决复杂模型的问题。因此非常有必要设计一种能够解决多部件复杂模型的FDTD网格生成技术。
[0004]本发明在专利“一种生成roTD网格的方法”上改进,有着能够生成多阶FDTD网格,特殊部件采用更细小的I7DTD网格突出其物理特征,优化多部件交接处细节特征,等诸多创新点。

【发明内容】

[0005]本发明的目的在于提供一种多阶roTD网格建模方法,以解决复杂模型及多种材料FDTD建模问题。
[0006]为了解决以上技术问题,本发明设计建立一种复杂三角面元模型生成roTD网格技术。基于商用软件Hypermesh生成三角面元的模型,再对之进行处理生成三维roTD网格。实现空间步长的自由选取,生成不同规格的H)TD网格,同时解决了多种介质材料复杂模型的问题:
[0007]一种多阶roTD网格建模方法,其特征在于包括以下步骤:
[0008]步骤一,使用Hypermesh建模工具建模得Hypermesh模型,对Hypermesh模型进行剖分,剖分成三角面元模型,保存三角面元模型得stl格式三角面元模型数据;
[0009]步骤二,处理stl格式三角面元模型数据,保存stl格式三角面元模型数据中三维点坐标数据以及部件起始行数据;
[0010]步骤三,根据三维点坐标数据以及部件起始行数据,建立该部件roTD网格;
[0011]步骤四,组合多部件,生成最终roTD模型。
[0012]所述步骤一具体为:使用UG,CAD和Hypermesh商用建模软件建模,再导入到Hypermesh中进行剖分;选择edge deviat1n进行剖分,根据实际模型尺寸选择最大最小三角面元尺寸,运行程序后根据模型的复杂程度自动选择合适的尺寸进行剖分,最后导出stl格式三角面元模型数据。
[0013]所述步骤二具体包括以下过程:
[0014]过程3.1,读取stl格式三角面元模型数据的总行数;
[00?5]过程3.2,判断stl格式三角面元模型数据中三维点坐标所在的行数及三维点坐标数据所在位置;
[0016]过程3.3,用Fortran语言读取三维点坐标所在行成字符串;
[0017]过程3.4,将过程3.3中所述的字符按照三维点坐标数据所在的字符位置转化成数据格式;
[0018]过程3.5,存储三维点坐标数据到文件中;
[0019]过程3.6,判断多种部件所在的起始行数;
[0020]过程3.7,根据三维点坐标数据所有点三维方向上最大最小值判断Hypermesh模型尺寸,基于用户对三维FDTD网格大小的需求选取合适的空间步长。
[0021 ]所述步骤三建模过程将分为普通网格部件建模和细网格部件建模,具体包括以下过程:
[0022]过程4.1,根据部件起始行数据处理三维点坐标数据,读取三维点坐标数据,创建3*3的矩阵代表一个三角面元片,创建一个循环按照每三行读取一个三角面元数据,存储在临时3*3的矩阵中;
[0023]过程4.2,根据三维点坐标数据生成三维H)TD网格,若部件判断为普通部件,则对其进行普通网格部件建模;对每个3*3的三角面元所对应的矩阵,把三个点放在FDTD网格中,所需要计算的是根据步长的取整计算,即把三角面元的三个点放在三维H)TD网格的格点上;如果网格很粗或所取的步长很大的情况下,三角形的三个点都在一个网格内,就对这个网格赋值该部件的号码;如果三角面元跨越了多个H)TD网格,则针对每个3*3的三角面元所对应的矩阵得到根据步长取整的三个量化点,扩大成一个长方体,即可包含覆盖不到的所有网格点,再对这些I7DTD网格点赋值部件号;若部件判断为特殊部件,则对其进行细网格部件建模;将普通网格分割成8个细网格,对每个3*3的三角面元所对应的矩阵,把三个点放在FDTD网格中,所需要计算的是根据步长的取半整计算,即在二分之一网格点处判定网格实点;记录细网格部件信息方法是:部件号+网格类型+八个细网格信息,普通网格只记录部件号;
[0024]过程4.3,对部件内部补充实点,进行补点的处理时,每个部件只是一个空壳,内部没有点,采用的方法是针对每个空点,看它X正向反向,Y正向反向,Z正向反向有没有点存在,一共六个方向的延伸,如果每个方向都存在点,那么这个点是在体内部的,是存在的;具体的做法为:根据三维roTD网格数据,依据它的格点存储方式,读出YZ坐标与该点相同的所有点,得到一组数据,并放在临时的数组中,得到了 X正向反向上的点;同理Y和z方向也按照相同的方法得到另外两组数组;在这三个数组里以该点为中心分别做循环往外延伸,如果碰到实点,做标记;如果六个方向都标记到,则可以判定该点也是实点,并对该点赋值所在部件号;
[0025]过程4.4,若stl格式三角面元模型存在多个部件则重复对每个部件进行上述过程4.1、4.2、4.3;部件I的部件号为I,部件二的部件号为2,依次类推。
[0026]所述步骤四具体包括以下过程:
[0027]将各部件整合成最终的三维H)TD网格,具体方法是:补点后计算该部件有多少个FDTD网格点,得到部件的大小;针对多部件,每个部件处理后都对应一个H)TD网格文件,整合多个部件首先要生成空的模型大小FDTD网格,让部件文件依次写入,写入每个实点过程需对其进行条件约束,具体约束条件如下:若最终FDTD网格文件中的点为空点,则可写入;若最终roTD网格文件中的点为普通roTD网格点,现要写入新部件普通roTD网格点,需要比较部件大小,取小部件写入;若最终FDTD网格文件中的点为普通FDTD网格点,现要写入细FDTD网格点,则该点处于部件交界处,写入细roTD网格点,并读取该点细roTD网格点信息,若细roTD网格点有空点,则赋值为原先点的部件号,并写入;若最终roTD网格文件中的点为细FDTD网格点,现要写入细roTD网格点,则该点处于部件交界处,比较部件大小,取小部件写入,并读取该点细roTD网格点信息,若细roTD网格点有空点,则赋值为原先点的部件号,并写入;所有部件处理后,即得到最终的FDTD网格模型文件。
[0028]过程3.7根据所有点三维方向上最大最小值选取用户自定的空间步长生成任意大小的FDTD网格。
[0029]步骤三能够识别复杂模型开槽的情况,能够根据部件类型选择普通FDTD网格或细FDTD网格生成模型,优化部件交界处的处理。
[0030]本发明能够识别复杂模型开槽的情况,并对之进行处理。所述采用文件方式存储读取所有的数据和文件。一旦数据超过数组的极限,计算机内存限制,就会溢出,就不能对复杂的模型进行三角面元处理。采用文件之间的读写,速度慢,但能满足对大数据处理的需求。
[0031]本发明具有有益效果。本发明是通过Hypermesh商用建模软件,把模型剖分成三角面元,再转化成FDTD网格,能灵活建模,识别多种材料部件,优化部件交接处的处理,突出特殊部件物理特征,识别开槽空腔等优点。
【附图说明】
[0032]图1为三角面元在一个三维roTD网格内情形;
[0033]图2为三角面元在多个三维H)TD网格内情形;
[0034]图3为stl数据格式;
[0035]图4为Hypermesh中球剖分成的三角面元图;
[0036]图5为Hypermesh中正方体剖分成的三角面元图;
[0037]图6为球三维H)TD网格通过CAD可视化检测;
[0038]图7为正方体三维H)TD网格通过CAD可视化检测;
[0039]图8为球壳多阶H)TD网格通过CAD可视化检测;
[0040]图9为复杂模型三维H)TD网格通过CAD可视化检测。
【具体实施方式】
[0041 ]下面结合附图对本发明的技术方案做进一步详细说明。
[0042]如图1所示,表示三角面元在一个H)TD网格中,在建模中,三角面元尺寸通常都很小,而roTD网格尺寸所取比较大,因此图中的情形代表了大多三角面元和roTD网格的关系。在图中,该FDTD网格赋值为三角面元所在部件的号码。
[0043]如图2所示,在图中一个三角面元在两个roTD网格中,这两个FDTD网格赋值为三角面元所在部件的号码。
[0044]如图3所示,stl格式三角面元模型数据是每7行代表了一个三角面元,三个点坐标均以vertex开始,读取所在行成字符串,再根据数据所在的位置转换为数据格式存在三维点坐标数据中。同时每个部件以‘solid name’,‘endsolid’开始和结束,并记录部件起始行数据。
[0045]如图4所示,在Hypermesh中剖分球模型的三角面元图,球半径为lm。
[0046]如图5所示,在Hypermesh中剖分正方体模型的三角面元图,正方体边长为2.5cm。
[0047 ]如图6所示,采用本文所述方法,对图4所示的球建模,生成三维!7DTD网格,通过CAD检测正确性。
[0048]如图7所示,采用本文所述方法,对图5所示的正方体建模,生成三维FDTD网格,通过CAD检测正确性。
[0049]如图8所示,球壳部件使用细H)TD网格建模,内部空腔使用普通FDTD网格建模,细化特殊部件球壳特征,图为其横截面图。
[0050]如图9所示,复杂开槽模型的三维roTD网格图,通过CAD可视化检测。
【主权项】
1.一种多阶FDTD网格建模方法,其特征在于包括以下步骤: 步骤一,使用Hypermesh建模工具建模得Hypermesh模型,对Hypermesh模型进行剖分,剖分成三角面元模型,保存三角面元模型得stl格式三角面元模型数据; 步骤二,处理stl格式三角面元模型数据,保存stl格式三角面元模型数据中三维点坐标数据以及部件起始行数据; 步骤三,根据三维点坐标数据以及部件起始行数据,建立该部件FDTD网格; 步骤四,组合多部件,生成最终FDTD模型。2.根据权利要求1所述的一种多阶H)TD网格建模方法,其特征在于所述步骤一具体为:使用UG,CAD和Hypermesh商用建模软件建模,再导入到Hypermesh中进行剖分;选择edgedeviat1n进行剖分,根据实际模型尺寸选择最大最小三角面元尺寸,运行程序后根据模型的复杂程度自动选择合适的尺寸进行剖分,最后导出stl格式三角面元模型数据。3.根据权利要求1所述的一种多阶H)TD网格建模方法,其特征在于所述步骤二具体包括以下过程: 过程3.1,读取stl格式三角面元模型数据的总行数; 过程3.2,判断stl格式三角面元模型数据中三维点坐标所在的行数及三维点坐标数据所在位置; 过程3.3,用Fortran语言读取三维点坐标所在行成字符串; 过程3.4,将过程3.3中所述的字符按照三维点坐标数据所在的字符位置转化成数据格式; 过程3.5,存储三维点坐标数据到文件中; 过程3.6,判断多种部件所在的起始行数; 过程3.7,根据三维点坐标数据所有点三维方向上最大最小值判断Hypermesh模型尺寸,基于用户对三维FDTD网格大小的需求选取合适的空间步长。4.根据权利要求1所述的一种多阶H)TD网格建模方法,其特征在于所述步骤三建模过程将分为普通网格部件建模和细网格部件建模,具体包括以下过程: 过程4.1,根据部件起始行数据处理三维点坐标数据,读取三维点坐标数据,创建3*3的矩阵代表一个三角面元片,创建一个循环按照每三行读取一个三角面元数据,存储在临时.3*3的矩阵中; 过程4.2,根据三维点坐标数据生成三维H)TD网格,若部件判断为普通部件,则对其进行普通网格部件建模;对每个3*3的三角面元所对应的矩阵,把三个点放在H)TD网格中,所需要计算的是根据步长的取整计算,即把三角面元的三个点放在三维FDTD网格的格点上;如果网格很粗或所取的步长很大的情况下,三角形的三个点都在一个网格内,就对这个网格赋值该部件的号码;如果三角面元跨越了多个FDTD网格,则针对每个3*3的三角面元所对应的矩阵得到根据步长取整的三个量化点,扩大成一个长方体,即可包含覆盖不到的所有网格点,再对这些I7DTD网格点赋值部件号;若部件判断为特殊部件,则对其进行细网格部件建模;将普通网格分割成8个细网格,对每个3*3的三角面元所对应的矩阵,把三个点放在H)TD网格中,所需要计算的是根据步长的取半整计算,即在二分之一网格点处判定网格实点;记录细网格部件信息方法是:部件号+网格类型+八个细网格信息,普通网格只记录部件号; 过程4.3,对部件内部补充实点,进行补点的处理时,每个部件只是一个空壳,内部没有点,采用的方法是针对每个空点,看它X正向反向,YE向反向7正向反向有没有点存在,一共六个方向的延伸,如果每个方向都存在点,那么这个点是在体内部的,是存在的;具体的做法为:根据三维roTD网格数据,依据它的格点存储方式,读出Yz坐标与该点相同的所有点,得到一组数据,并放在临时的数组中,得到了 X正向反向上的点;同理Y和z方向也按照相同的方法得到另外两组数组;在这三个数组里以该点为中心分别做循环往外延伸,如果碰到实点,做标记;如果六个方向都标记到,则可以判定该点也是实点,并对该点赋值所在部件号; 过程4.4,若stI格式三角面元模型存在多个部件则重复对每个部件进行上述过程4.1、.4.2、4.3;部件I的部件号为I,部件二的部件号为2,依次类推。5.根据权利要求1所述的一种多阶H)TD网格建模方法,其特征在于所述步骤四具体包括以下过程: 将各部件整合成最终的三维roTD网格,具体方法是:补点后计算该部件有多少个roTD网格点,得到部件的大小;针对多部件,每个部件处理后都对应一个roTD网格文件,整合多个部件首先要生成空的模型大小roTD网格,让部件文件依次写入,写入每个实点过程需对其进行条件约束,具体约束条件如下:若最终roTD网格文件中的点为空点,则可写入;若最终FDTD网格文件中的点为普通roTD网格点,现要写入新部件普通FDTD网格点,需要比较部件大小,取小部件写入;若最终roTD网格文件中的点为普通roTD网格点,现要写入细FDTD网格点,则该点处于部件交界处,写入细FDTD网格点,并读取该点细FDTD网格点信息,若细ro T D网格点有空点,则赋值为原先点的部件号,并写入;若最终F D T D网格文件中的点为细roTD网格点,现要写入细roTD网格点,则该点处于部件交界处,比较部件大小,取小部件写入,并读取该点细FDTD网格点信息,若细roTD网格点有空点,则赋值为原先点的部件号,并写入;所有部件处理后,即得到最终的FDTD网格模型文件。6.根据权利要求1所述的一种多阶roTD网格建模方法,其特征在于过程3.7根据所有点三维方向上最大最小值选取用户自定的空间步长生成任意大小的FDTD网格。
【文档编号】G06T17/30GK105869213SQ201610179450
【公开日】2016年8月17日
【申请日】2016年3月25日
【发明人】杨利霞, 丁元赫, 周祥
【申请人】江苏大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1