边界条件的加载,往往都是在单元矩阵装配完毕以后进行的,往往是variable或是gradiant of variable的值被限定住了,如果pde存在3阶grediant,那么还会存在laplace operator of veriable的边界条件。具体编程的实现我能完全总结出来,先欠着回头再写,以免误人子弟。
1 f. F: }5 D% G# m* e0 ~
帖子是想到什么写什么,难免凌乱没有章法,也有不少遗漏之处,想到了再回来补 CH4_常用固体单元 by caoer
$ N! V4 K! X; y* U: y7 s/ f, D9 @\
记得自己刚学ansys的时候就被自带的100多个单元模型搞的晕头转向,到底应该选择什么样的单元?这些单元有什么不同?这些问题一直困扰着我,其实把每一种单元都搞透是一件不太可能的事情,但有件事情可以做得就是对于几个大类的单元有个底层数值方法上的了解,这对于单元的选择与开发是至关重要的。这里仅以3d单元作为例子。
; L% \\6 s. o) X
有限元方法中以单个单元为基础,所有的单元都有相同的属性,这些单元组成了整个domain,可以说了解了单元也就了解了整个模型,现代有限元软件都将pde整合在了单元信息里面,还句话说,Pde所推导出的弱解形式中非边界条件term都体现在了单元中。
4.1 固体单元, 变量:位移u1,u2,u3
+ d3 W; I: X* n' W工程力学中最常用的单元,常用于连续介质的力学计算,一般分为small deformation 和 finite deformation 两个区域,记得ansys里面有个大变形开关,一打开后计算变得惨不忍睹,所以选择small还是finite要看具体的问题,常见工程材料一般都是small deformation,此外对于不同的材料,如超弹,粘弹,弹塑材料都有不同的数学模型,这里选择的时候一定要慎重,不要想当然,最好要看看手册和理论,计算方法上常用的有
displacement,mixed,enhanced strain方法,displacement是最原始的,收敛效果不好,可以用于解决一般基础问题,推荐后面两种来解非常规材料。此外,对于同样的pde模型,单个单元节点越多计算越精确,单元数目相同情况下,八面体单元比6面体单元精度高。
4.2 热单元,变量:温度T.
是相对简单的一种单元,pde本身也很简单,就是换热方程,节点自由度就是T,由于温度T没有方向性,所以T只有1维量,计算量小。另外heat flux = gradient of T, 重点参看一下Fourier heat conduction equation.
4.3 壳单元,变量:u1 , u2 , u3 , θ1 , θ2 , θ3
有些具有曲面外壳的材料,其一个方向的变形要远远小于其他方向的,如人的骨头表面,就是一层非常硬的皮质骨,所以生物力学的人都用shell单元作表面单元.也有一种大变形的壳单元,只含有5个变量,少一个θ或是u,但是有可能在计算的时候不收敛,所以在使用不同的shell单元时,一定要多看看说明,遇到不收敛的情况也不用慌张,多从手册分析解决问题。
4.4 框架单元,变量:u1,u2,u3,θ1,θ2,θ3
' X; i\常用于结构计算,如弯曲,剪切变形。也就是材料力学里面各种梁的计算,这里pde方程是关于u的4阶grediant,解的方法是将二阶gradiant of u 看作是Moment,3阶看作是shear stress,这类单元通常是2节点单元,一头一尾相互连接。
索单元和板单元就不赘述了,可以参看相关资料,与框架单元大同小异。索单元甚至更简单,和热单元类似。还有一些薄膜单元点单元什么的应用很少,就不多说了。
( ]8 Z7 V9 e$ Q/ ~& Q# {! S) O* x' x c2 z
看到simwe上很多人开口闭口二次开发,其实所谓二次开发很大程度上都集中于新单元的开发,如果你有新的pde,要想计算实现它,就必须写出新的单元代码,从而实现计算。其他方面的二次开发无外乎一些后处理或是mesh上面的新功能,而这些商用有限元基本成熟,所以再提二次开发之前,先想想现有的单元库里面有没有我需要的单元,如果没有再二次开发它,而这个过程是漫长而检苦的。 CH5_有限元的求解器 by caoer
& l4 i' b4 _ d1 H. N' J最后的问题都围绕求解Ax=b这个方程组了,也就是要求解它,那么高效的求解器是必要的。其实很多商业有限元的使用者都忽略求解器的选择,实际上求解器直接决定了求解的正确与否,选择正确有效的求解器也是所有分析人员必须了解的问题。有人抱怨有限元计算太费时,或是老报错,很有可能选择了不正确的求解器,这里仅对主流一些求解起作一些介绍。毕竟solver成千上万,很多人也喜欢编写自己的求解器来解决特定的问题,这样他们认为更加有效率且误差小。本节主要介绍线代求解器和时间求解器,线代求解器又分为直接求解和迭代求解器。
5.1 常用直接求解器(从中仿科技ppt中拷贝) – 易于使用,鲁棒性,占用内存大
B6 B- _2 U/ J2 j, B2 # t% w: U; l2 u; ^6 m) A; C
0 b\
– UMFPACK, SPOOLES, TAUCS, PARDISO等
' e* s6 l3 [4 H. q1 m
– 适于处理小规模问题,高度非线性和多物理场问题 ? UMFPACK
1 U) y) h! F, p0 X6 v& ?
– 对一般的非对称矩阵是鲁棒和高效的 – 要么计算成功,要么运算内存不足 ? SPOOLES
– 利用对称矩阵 – 内存使用比UMFPACK有效,但计算速度较慢 ? PARDISO
– 利用对称矩阵 – 和UMFPACK类似,但使用内存比SPOOLES少 – 共享内存式并行处理 – 在矩阵分解过程中不需要选主元从而节省内存,这导致不精确的因子 – 由于支持并行的折中处理,不是100%的鲁棒性
? TAUCS – 非常适合于对称,正定矩阵
8 s, e9 U\
3 g) E) j8 D8 d c
5.2 常用迭代求解器(从中仿科技ppt中拷贝)
– GMRES, FGMRES, Conjugate Gradient, BiCGSTAB等 – 占用内存少,更多的选择,调整比较困难 – 应用于特定的物理场,如,EM,CFD等 – 需要预处理器,网格框架,平滑器等
? GMRES – 在前面所有搜索方向上最小化残差,直到重新开始 – 如何调整重新求解前迭代步数(默认为50) ? 更节省内存 --- 减小 ? 得到较好的鲁棒性 --- 增加
/ D( V& i- ~; [1 x
9 V8 O4 `, s- Z% S! u. A
? FGMRES
5 C+ N\
– GMRES的一个灵活的变种 – 能有效地处理更多类的预处理器 – 比GMRES开销2倍多的内存
? Conjugate Gradient – 对称正定问题 – 在计算时比GMRES更快、内存使用效率更高
6 p) T% m- V9 b, L\
3 F- b1 t1 ^- I: Q( Y+ V# d
# s* T* K+ u9 V, x1 z: F6 Q2 x: I; \\
5.3 常用时间求解器
对于无时间求导的PDE也就是稳态问题,时间求解器有 quasi-static method 和 Midpoint static Method。一阶时间求导的PDE,如thermal or diffusion equation, 有Backward Euler implicit method, backward difference formular methed (BDF),和Generalized midpoint method, 其中BDF方法收敛快精度好,推荐使用。二阶时间求导的PDE方法很多,比较代表性的是NEWMark method和HHT alpha method。当然也可以编写自己定义的求解器,好的求解器痕量标准就是准确度高速度快。
这里只是简单提及了常用的求解器,具体的理论和方法在网上和教材上都有,就不赘述了。想要说的是求解器是数学背景人非常关心的问题,而放到的工程应用领域却被极大的忽视了,方便了使用者,但这也许是商用有限元黑盒子带来的弊端。这里直接引用了中仿科技关于comsol solver的介绍,介绍的很全面我不用费力大字了,偷个懒。上面有很多求解器都是开源免费的,如果自己编写程序,可以直接从网上下载并使用。 CH6_有限元的未来 by caoer
基本上有限元数值方法的最核心内容已经差不多说完了,对应不同的问题人们题出了很多很好的方法,但这些方法都是基于我之前所述的理论基础之上的。接下来谈谈我对有限元将来发展趋势的看法,或许能和打算或正在从事fem的朋友有些共鸣。
6.1 并行计算
- k D) r3 A z; \\, F1 G: D k' g: B\
随着多核cpu进入个人电脑市场,并行软件已经是大势所趋,那么并行fem软件作为大型
科学计算软件,并行趋势极为明朗,各大fem公司分分研制推出并行版,但是并行版的计算准确性与效率还需要经受考验,由于并行机制的设定,每个cpu返回的计算结果不同步,会导致误差。而且目前个人电脑上并行计算的效率并不能提高很多,有2倍就已经很不错了。所以并行fem仍需经历考验,但一定是大势所趋。
, _! i$ v9 }! U: [ K/ K
6.2 多尺度模型计算
高性能显微设备的诞生,人们对于微观尺度的物质越发感兴趣,fem能否描述微观世界呢?纳米级材料,微流场,原子的diffusion,dislocation等等,量子力学由于考虑的电子的作用,使得计算量过于庞大,分子动力学方法虽然已获得了一定成功,但是终归不如fem来的有效和方便。描述不同尺度下的材料,俨然以成为众多学者们研究的主要方向,在坚凯围棋的第6版有限元书中增加了此方面内容,也有不少学者结合md和mc的方法,来建立多尺度仿真系统,都有一些进展。
8 |\
动网格,边界元,无网格等等都是fem的发展或联系方向,本人不是很了解,不赘述,欢迎补充指正。
CONCLUDSION_我能为fem做什么 by caoer
0 ?7 Y1 H+ V3 G/ ^8 [
在simwe泡久了,很多朋友发贴子就问,fem能仿真xx吗?确实,我们都很好奇fem能做什么,有牛人说给我个棒子我能撬动地球,也有大师说给我一台电脑可以仿真整个世界。但曾经何时我们能为fem做些什么呢,有fem的大牛们创造了理论,编写了代码,也有simwe的前辈们建立了这个坛子,编纂了光盘,作为我自己既不是大师也不是天才少年,只是在fem摸爬滚打了几年的老兵,泡泡simwe坛子,回回帖子,如果本文的某字某句能对您有所帮助,我也就因此感到无比的欣慰了,我想这就是我能为fem做得绵薄之事,从而促成了此文。
0 M$ D& i0 q% s1 e7 a; g\
祝愿所有学习fem的朋友们,都快乐的生活着。
相关推荐: