有限元 fem 与 有限差分 fdm 在处理Dirichlet 自然边界时的比较
来源:互联网 发布:华硕护眼模式软件 编辑:程序博客网 时间:2024/04/29 08:37
why it cares?
2D Laplacian equation, soved by FEM & FDM
u,xx + u,yy = 0
有限元方法:
任意一个节点必属于某个单元,不管该节点处于边界还是内部区域。所以边界节点和内部节点,从运算格式上讲,是同等考虑的。但,考虑Dirichlet边界条件,边界节点的位移已知。有限元采用 “划行划列”,将已知的自由度从总体矩阵中剔除。保留所有未知自由度,求解。
ps, 对于大型矩阵,“从总体刚度矩阵中剔除行列”,导致矩阵resize并不实用。更好的解决是对已知自由度对应的刚度值乘以非常大的罚系数,来大大降低非主元的影响。
有限差分方法:
比如采取5点格式,那么内部节点都执行了这个格式的计算,而边界节点并不构成5点格式,没有做这个格式计算。所以,从运算格式上讲,内部节点与边界节点是不等同的。会发现,差分格式得到的刚度矩阵各个方向上自由度个数比系统离散在各个方向上布置的节点个数少2。
那么,边界上已知的位移信息是如何传入内部区域的呢?
方法一: 将边界自由度加入刚度矩阵,那么矩阵各个方向上自由度个数等于节点个数,很好,跟有限元(没有剔除行列之前的)总体矩阵纬度一致。矩阵不会因此变奇异,因为只在矩阵对角线增加了正数(1)。
会发现这个样子,就是有限元处理Dirichlet边界条件的罚系数方法。不过,好像没有谁喜欢把低纬度的矩阵扩充到高纬度,如果有更简单的方法。
方法二: 修改使用了边界自由度信息的节点的右端项,即将该边界自由度信息乘以相应的权值后,放到右端去。这样矩阵的形状不变。
这个样子,跟有限元“划行划列”的思想一致了。
总结: 对问题采用相同的离散(相同节点数),有限元方法产生的矩阵纬度与总节点数相同(采用罚系数);而有限差分方法生成的矩阵,只包括内部节点。 而且这个矩阵仍然是对角占有的正定阵,故解的唯一性有保证。
实际中,计算pde数值解的另一个问题:存储 与 节点编号。 d纬(每个纬度采用n个自由度)的带状刚度矩阵存储 : n^2 * bandwidth。 bandwidth changes from O(const) to O(n^2), that's a big difference.
e.g. the extremely worst case with n = 100; K storage needs 100 million double bit. that's fuck~
Maybe later ~
- 有限元 fem 与 有限差分 fdm 在处理Dirichlet 自然边界时的比较
- 有限差分,有限元,有限体积等等离散方法的区别介绍
- 离散方法(二)——有限差分方法(FDM)
- FEM, FVM,FDM
- 有限差分
- 边界元与有限元方法相比较的优缺点
- fdm之一维弹性波的右边无反射边界处理
- Matlab安装有限元FEM工具箱
- 有限元法,有限差分法和有限体积法的区别
- 有限差分法、一阶向前差分、一阶向后差分
- Introduction to FEM based CFD algorithms ( 基于有限元的CFD算法)
- 二维动态有限差分程序
- 基于MPI的二维VTI介质二阶拟声波方程有限差分地震正演模拟
- 基于MPI的三维各向同性一阶声波方程有限差分地震正演模拟
- 遗传算法与差分进化算法总结比较
- struct自然边界上的内存对齐
- 差分与微分的联系
- 计算不可压缩流体 -- 差分/有限体积离散格式
- 当企业遭遇互联网媒体
- COM组件开发
- 第十一周项目当年第几天
- OpenSSL 有关密钥的那些事儿(HOWTO keys)
- openwrt内核补丁生成方法
- 有限元 fem 与 有限差分 fdm 在处理Dirichlet 自然边界时的比较
- sublime text2安装Package Control方法
- Windows 下 使用Apache的ab工具进行压力测试
- window7,windows8下如何读取PCI的配置寄存器
- PostgreSQL数据库学习手册之libpq - C 库--介绍
- 随笔之批评红黑联盟
- CUDA编程指南阅读笔记
- 单例模式之 懒汉模式普通版
- 安卓点击软键盘的回车即提交数据并隐藏软键盘