- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
柱面坐标下基于OpenGL非均匀FDTD网格生成
柱面坐标下基于OpenGL非均匀FDTD网格生成
摘要:详细介绍了一种在柱面坐标系下非均匀FDTD(finite difference time domain,时域有限差分)网格的生成算法,并且利用OpenGL技术对其一维、二维、三维网格图形进行实现。一般地,使用传统方法进行三维图像的生成与消隐比较复杂,而采用OpenGL可以非常方便地对以上问题实现快速生成以及高效消隐。
关键词:非均匀FDTD网格;柱面坐标;网格图形;消隐
中图分类号:TP391文献标志码:A
文章编号:1001-3695(2008)05-1593-03
FDTD方法是一种为麦克斯韦方程提供数值求解的有效方法。它的优点在于能够有效地模拟电磁场的特征,使求解的问题简化、减少了计算的数据量、降低了计算误差、大大提高了计算效率、加快了收敛速度。但在实际应用中,首先要对计算区域进行离散化,为FDTD提供网格坐标。如果该网格坐标过于稠密,将会增加系统计算的开销,效率低下;如果该网格坐标过于稀疏,将会影响求解的精度。FDTD的计算是否精确和有效很大程度取决于生成的网格坐标和每个网格点上的介质参数。所以,用户拥有一个性能良好的网格生成系统,是非常重要和有帮助的。??
一个实用的网格生成系统应该是这样的,用户任意提供一个包含原始数据、用户要求的输入文件,网格生成系统可以快速、准确地在绘制出相应的1D、2D、3D图形,并同时生成相应的介质数据文件和网格坐标文件。这些输出文件可以作为FDTD程序的输入数据,而产生的网格是用户可视、可调的。一个可靠、高效的网格坐标生成算法在网格生成系统中就尤为重要。??
1生成网格的基本原则??
前面已经提到,如果网格坐标过于稠密或稀疏,都会带来相应的问题。为了解决这一问题,通常采用非均匀(non-uniform)FDTD法,即在电磁场强度变化大、结构比较复杂的地方,采用高密度的网格来描述;而在电磁场强度变化小,结构简单的地方使用相对密度比较稀疏的网格来描述。根据电磁学理论,一般在两种不同的介质交界处,电磁场强度变化大,则需要生成稠密的网格,而在同一种介质中心处,电磁场强度变化小,生成比较稀疏的网格即可。另外,需要注意在ρ、θ、z方向上的任何一个计算域或相邻的计算域中,任意两个相邻的网格尺寸的变化必须很小,整个计算域内的网格尺寸是按照一个给定的比率进行变化。也就是说,计算域内的网格尺寸是渐渐的、平滑的变化,否则,将会导致FDTD在计算上的严重失误。??
2生成网格的算法??
2.1划分区间??
一般地,用户提供的是每个物体在计算域中的几何坐标和介质参数。如果直接使用该坐标进行计算,分别在其上生成网格,则很可能会出现重叠区。如某个物体的ρ方向的区间是[0,2],而另一个物体的ρ方向的区间是[1,3],则此时会出现重叠区间[1,2]。如果仍然在原来给定的两个区间里各自生成网格,显然不能满足电磁学上的需要,而且还会出现网格重叠或毫无规律的网格分布。为此,必须对所有物体的每个方向上的区间进行重新划分。划分的原则是将所有的区间之间重叠的部分,提取出来作为一个单独的区间来考虑。??
在实际的一个柱面坐标系统下,需要分别地对ρ、θ和z方向上的网格区间进行划分。此处,仅以ρ方向来描述网格区间的划分过程,步骤如下:??
a)初始化一维数组G,用来保存区间划分以后的数据,初始化整型变量n=0保存数组G的长度。??
b)读入一个未处理物体的ρ方向上的区间,将左端点值与数组G中的元素G(0)到G(n)进行比较。若左端点值已经存在于其中,略过;否则,将左端点值插入数组G中的适当位置,保持其中元素的从小到大的有序性,并置n=n+1。以同样的方法处理右端点值。??
c)如果所有的物体均已处理,结束;否则,转b)。??
经过处理以后,则得到划分以后的n个区间,即[G(0),??G(1)],[G(1),G(2)],…,[G(n-1),G(n)]。??
2.2产生网格坐标??
经过前面的区间划分,将原来物体的几何区间重新划分,产生一组新的区间,这些区间之间不再有重叠现象,因而可以分别对这些子区间进行网格坐标生成。由于划分以后每个子区间的两端总是与不同的子区间或不同的物体相连接,在这些边界处需要用较稠密的网格,而在子区间的中间部分可以用比较稀疏的网格。也就是说,无论是哪个区间里的网格尺寸都是由靠近边界处的最小,然后渐大,到中间位置时达到最大,然后又渐小,到另一端点边界处达到最小。??
3网格生成??
在以前的研发中,一般均使用微软API(application programming interface)函数
原创力文档


文档评论(0)