简单三维面元法的实现

很多物理现象或者工程方法,二维的时候,我们经常能够想到很多巧妙方法来处理。而一旦我们把问题转向三维之后,往往就发现原来的方法失效了,甚至是错误的。二维中行之有效,全面封闭所有可能性的奇思妙想,面对三维之后,处处都是漏洞。这些漏洞单靠简单的升维,或者东拼西补,竟完全堵不完。


记得《时间简史》里面提到的一个想法,这个想法是尝试解释为啥生物是三维的存在,而不是二维的存在。霍金的想法是这样的,说一个生物通常要具备一个贯穿通道,用来吸收能量,排泄废物。如果这个生物是三维,比如一个球形,加了一个贯穿通道后,还是一个整体。如果是二维,加了贯穿后,这就变成了两个部分,再不是一个整体。

简单三维面元法的实现的图1


不得不说,大科学家就是大科学家,多有趣的想法。这也间接反映了二维和三维的差别可能远超乎我们的想象,这之间的界限甚至可以决定生死。


二维到三维,难度可能是指数级的增加。比如二维本构,刚度矩阵9个参数,到三维就是36个参数。我们之前解释的Delaunay网格生成方法,二维的时候,考虑一个圆的位置关系,勉强可以定义清楚。三维之后,上下左右,前前后后的球,这个时候的位置关系变得及其复杂,也因此虽然Delaunay生成非结构网格的思路非常清晰,但是要彻底实现,难度极大。


本次聊的三维面元法,甚至是后续的三维结冰算法,要做的就是这样一个升维的工作。


1 三维面元法理论


仍旧参考徐华舫版《空气动力学基础》。思路如下:


(1)面网格离散。考虑四边形网格,以每个单元中心点作为控制点。计算并存储好每个单元的局部坐标系。

简单三维面元法的实现的图2


(2) 面元强度计算。对每个单元(i)进行循环,考虑第j个单元对它的扰动:

a. 考虑在第j个单元局部坐标系下,第i个单元的法向向量;

b. 考虑在第j个单元局部坐标系下,第j个单元的坐标;

c. 循环计算第j个单元四个边对第j个控制点的扰动;

d. 形成扰动矩阵K(I,J)。

e. 求解面元。


(3) 流场计算。针对给定的点,循环计算每个单元对其的扰动:

a. 考虑给定点在第j个单元下的局部坐标;

b. 循环每个单元四个边对给定点的扰动;

c. 将局部坐标系下的扰动转换到总体坐标系下。


2 一些注意事项


单看上面的思路好像和二维区别不大。实际上,首先每个单元的局部坐标系的处理方法就很不一样。


另外循环计算每个面元时,循环的方向是要特别注意的,搞不好就反了。


最后是程序细节的问题,比如对分母可能出现的为0情况的处理,对反tan函数,可能出现的无限的处理。对判断一个值是否为0是,是否考虑容差的处理等等。任何一个细节,都会导致出来的结果有问题。


3 一些结果的展示



简单三维面元法的实现的图3简单三维面元法的实现的图4


简单三维面元法的实现的图5

局部坐标系的显示

简单三维面元法的实现的图6

简单三维面元法的实现的图7

简单三维面元法的实现的图8

流场的显示


4 程序调试的一点思考

写了这么多程序,我的感觉,一个程序能不能成,关键是调试方法的好坏。

找到合适的算例,找到合适的判据,根据判据来定位问题,然后各个击破。

这次调试这个三维面元法,我先用了平直机翼,然后后掠翼,再用球。我的判据主要是面元强度的分布,这个要感谢前面的二维面元法,正是现有了二维面元法,能够快速得到二维面元分布值,然后才能这么快的帮我定位出各种程序bug。


做仿真找我们!

欢迎大家关注公众号:320科技工作室


MATLAB面元法
2 0

简单三维面元法的实现的评论0条

    暂无评论
    简单三维面元法的实现的相关内容
    今天是雨天,雨天可以读书,可以观影。就说说这个读书。距离Spring-ICE程序初稿出来快一年了,我在现场刚好干完一票大活。高强度活动了几天的身体后,动极思静,由来已久的搞三维结冰算法的想法再次冒头。每次决定搞一个大程序前,其实要思想斗争很久,一个类似结冰这样的程序,往往意味着长达一两年的长期精力投入,意味着大量的业余时间的报销,还意味着我得尽可能减少兼职工作。决定干就在这两天,两个诱因。一个是有
    Spring-ICE系列前述两篇文章:1、飞机结冰的那些事2、Spring-ICE结冰算法述评-(1)水滴轨迹计算今天要聊的内容,既常规又不常规。说其常规,是因为水滴轨迹的计算是所有结冰计算的基础算法,不可或缺,是必备技能。说其非常规是因为,尽管目前文献对这个计算过程描述的已经足够详细,但是还有很多的技术细节,非实际操作而不可揣摩,正是这些具体的技术细节决定着计算的准确性、效率,甚至是整个结冰算法
    结构设计CAE分析的几个概念 计算机辅助工程,简称CAE,对于经验丰富的CAE分析工程师或学者而言,结合功能强大的CAE程序,大多数结构的数值模拟分析基本上可以做到仿真的地步。现代大型CAE分析程序,如ABAQUS,ADINA,ANSYS,MARC等,无论在荷载条件的输入、边界条件的设置以及非线性算法的准确性上基本已经做到精确模拟的程度,甚至连很多参数性试验都已经可以通过计算机模拟来代替。&nbs
    一、数值计算概述 现代科学技术问题通常有三种研究方法:理论推导、科学实验和科学计算。科学技术可以帮助科学家揭示用物质实验手段尚不能表现的科学奥秘和科学规律,同时,它也是工程科学家的研究成果——理论、方法和科学数据的归总,成为推动工程和社会进步的最新生产力。数值计算方法则是科学计算核心。 数值计算技术诞生于上个世纪五十年代初,Bruce, G. H.和Peaceman, D. W
    1 Spring3D应该长啥样 我在之前一篇文章中提到过,要启动三维结冰程序的研发,这是20年6月份的事情。 结冰程序,有三个关键的技术:流场计算、水滴收集系数计算、冰形计算。而在三维结冰这个方面,一般能完成前两个,就已经达到了相当高的程度,并具备了很强的实用性。 在研发之前,一个非常重要的问题就是要确定,这个软件应该长啥样?这个问题倒不是说界面炫不炫,而是整个软件的设计理念是什么?也就是所谓的概
    硕士/复合材料工程师
    影响力
    粉丝
    内容
    获赞
    收藏