发明名称 面向时域有限差分电磁计算的载体网格划分方法
摘要 本发明涉及一种面向时域有限差分电磁计算的载体网格划分方法,用离散电尺寸精度和载体表面逼近精度共同控制网格大小,所划分的网格模型与载体模型几何逼近程度高(特别是低频即大波长的情况下),以此网格模型进行时域有限差分电磁计算,计算结果较为准确;为划分网格模型提供了表面逼近精度控制参数,避免了现有的直接剖分方法网格划分精度控制的盲目性,使网格划分计算量得到有效掌控;当需要对网格加密时,只需对最底层黑结点作八叉树递归剖分即可,网格加密容易实现。
申请公布号 CN103310069B 申请公布日期 2015.09.23
申请号 CN201310258067.0 申请日期 2013.06.25
申请人 西安电子科技大学 发明人 许社教;邱扬;田锦;许海宾;杜美玲;张建国
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 西安吉盛专利代理有限责任公司 61108 代理人 张培勋
主权项 面向时域有限差分电磁计算的载体网格划分方法,其特征是:包括如下步骤:步骤101:将数据模型中的天线数据、三角形面元数据和四边形面元数据分别读入天线数据链表Ant_list,三角形面元数据链表Tria_list,四边形面元数据链表Quad_list中,并将三角形面元和四边形面元的所有顶点和边的数据信息分别存放在Vertex和Side链表中;步骤102:计算天线数gw_num,三角形面元数tria_num和四边形面元数quad_num,将Vertex链表中重复的顶点去除,将Side链表中重复的边去除,去除重复的顶点数据存放在链表Vertexno中,去除重复的边数据存放在链表Sideno中,并将不重复顶点个数记为vertexno_num,不重复边条数记为sideno_num;步骤103:通过遍历链表Ant_list、Tria_list、Quad_list计算载体天线模型在三维坐标系下的x、y、z坐标方向的各自最大值和最小值,以构造载体的逼近参考体,其中,z坐标方向的最大值取包含天线底端点个数最多的平面的z坐标值进行计算;逼近参考体的边界坐标记为che_xmax、che_xmin、che_ymax、che_ymin、che_zmax、che_zmin;步骤104:遍历链表Ant_list、Tria_list、Quad_list,计算出载体天线模型在三维坐标系下的x、y、z坐标方向的最大值和最小值,以构造整个模型的包围盒,包围盒的边界坐标记为x_max,x_min,y_max,y_min,z_max,z_min;进一步计算出载体天线模型在x、y、z坐标方向的跨度值,即x_range、y_range、z_range,其中x_range=x_max‑x_min,y_range=y_max‑y_min,z_range=z_max‑z_min;步骤105:以包围盒的体中心点为中心,以x_range、y_range、z_range中最大值为边长d,建立第一个立方体结点,即八叉树的根结点,建立黑结点链表node_black和灰结点链表node_gray,保存根结点至灰结点链表node_gray;步骤106:根据电磁波在媒质中的波长λ和包围盒边长d计算八叉树的理论递归深度值max_deep=int((1+lg(d)‑lg(λ))/lg2),其中,max_deep的计算满足网格单元边长不超过0.1λ的约束关系;步骤107:剖分链表node_gray和node_black中存储的网格结点,将结点按三个方向的中垂面分割成八个体积相等的子结点,其中node_gray链表中的结点划分后,转至步骤108,node_black链表中的结点划分后,转至步骤113;步骤108:判断子结点与载体面元是否相交,如果相交,转至步骤112,如果不相交,转至步骤109;步骤109:判断子结点体中心点及八个顶点是否在载体之内,如果全部在载体内,转至步骤110,如果全部不在载体内,转至步骤111;步骤110:结点为黑结点,转至步骤113;步骤111:结点为白结点,转至步骤114;步骤112:结点为灰结点,转至步骤115;步骤113:子黑结点保存在node_black_re,转至步骤116;步骤114:白结点直接去除;步骤115:子灰结点保存在node_gray_re,转至步骤117;步骤116:清空链表node_black,将node_black_re链表中的结点数据赋给node_black链表,清空链表node_black_re,转至步骤118;步骤117:清空链表node_gray,将node_gray_re链表中的结点数据赋给node_gray链表,清空链表node_gray_re,转至步骤118;步骤118:查看结点剖分是否已达到理论递归深度,如果结点剖分已达到理论递归深度,剖分停止,转至步骤119,否则,转至步骤107,继续剖分;步骤119:从已达到理论递归深度的灰结点链表node_gray和黑结点链表node_black中,通过遍历链表中的结点数据,计算全部结点在x、y、z方向的最大值与最小值,即xmax、xmin、ymax、ymin、zmax、zmin,由此构成一个结点体包围盒;步骤120:计算结点体包围盒与逼近参考体对应的六个面的逼近距离,即xmax‑che_xmax、che_xmin‑xmin、ymax‑che_ymax、che_ymin‑ymin、zmax‑che_zmax、che_zmin‑zmin;步骤121:计算平均逼近距离aver=[(xmax‑che_xmax)+(che_xmin‑xmin)+(ymax‑che_ymax)+(che_ymin‑ymin)+(zmax‑che_zmax)+(che_zmin‑zmin)]/6;步骤122:比较平均逼近距离aver与表面逼近精度ε的大小,如果aver≤ε,结点剖分最终结束,转至步骤123;否则,转至步骤107,继续剖分结点;步骤123:将链表node_gray里的结点视为黑结点,然后合并链表node_black、node_gray中的结点信息,并保存到node_last_list链表中,该链表中的结点即为最终的网格划分模型;所示的步骤109中空间点是否在载体内的判断方法,包括以下步骤:步骤201:读取检测点坐标数据;步骤202:将载体顶点与检测点比较,找出顶点数最少的一侧,以检测点为端点且沿该侧坐标轴方向做射线;步骤203:确定过检测点且垂直于射线的平面;步骤204:判断载体所有顶点是否在平面射线方向的反方向一侧,若在,转步骤210,否则转步骤205;步骤205:平面将载体分为两侧部分,保留射线方向的一侧;步骤206:将平面与载体的边相交的交点按其连接关系形成若干个截切多边形,这些截切多边形与载体相应保留部分构成若干个多面体;步骤207:计算过检测点的射线穿过多面体的个数;步骤208:判断个数是否为奇数,个数为奇数时,转至步骤209,否则转至步骤210;步骤209:检测点在载体内部;步骤210:检测点不在载体内。
地址 710071 陕西省西安市太白南路2号西安电子科技大学