加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

显式算法与隐式算法的区别

(2012-05-03 16:46:35)
标签:

杂谈

分类: 学习中哦
显式算法和隐式算法区别主要如下:
1、显式算法基于动力学方程,因此无需迭代;而静态隐式算法基于虚功原理,一般需要迭代计算
2、显式算法
  最大优点是有较好的稳定性。
  动态显式算法采用动力学方程的一些差分格式(如广泛使用的中心差分法、线性加速度法、Newmark法和wilson法等),不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,时间步长只要取的足够小,一般不存在收敛性问题。因此需要的内存也比隐式算法要少。并且数值计算过程可以很容易地进行并行计算,程序编制也相对简单。但显式算法要求质量矩阵为对角矩阵,而且只有在单元级计算尽可能少时速度优势才能发挥, 因而往往采用减缩积分方法,容易激发沙漏模式,影响应力和应变的计算精度。
  静态显式法基于率形式的平衡方程组与Euler向前差分法,不需要迭代求解。由于平衡方程式仅在率形式上得到满足,所以得出的结果会慢慢偏离正确值。为了减少相关误差,必须每步使用很小的增量。
3、隐式算法 
  隐式算法中,在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型的线性方程组,这以过程需要占用相当数量的计算资源、磁盘空间和内存。该算法中的增量步可以比较大,至少可以比显式算法大得多,但是实际运算中上要受到迭代次数及非线性程度的限制,需要取一个合理值。
4、求解时间
  使用显式方法,计算成本消耗与单元数量成正比,并且大致与最小单元的尺寸成反比
  应用隐式方法,经验表明对于许多问题的计算成本大致与自由度数目的平方成正比
  因此如果网格是相对均匀的,随着模型尺寸的增长,显式方法表明比隐式方法更加节省计算成本 


隐式( Implicit )对于给定变量,单元内的未知值用邻近单元的已知和未知值计算得出。因此,每一个未知值会在不止一个方程中出现,这些方程必须同时解来给出未知量。

显式( Explicit )对于给定变量,每一个单元内的未知量用只包含已知量的关系式计算得到。因此未知量只在一个方程中出现,而且每一个单元内的未知量的方程只需解一次就可以给出未知量的值。

 

 

显式格式的时间步选择选择比较关键。显式格式都用来捕捉移动波,该格式比较精确,而且节约计算时间。

但是下列情况不能用显式格式:1,不能用于segregated or coupled implicit solver.而只能用于coupled explicit solver .2,不能用于不可压速流动。不可压速流动必须在每个时间步长里积分收敛。

 

优点:比较精确(无累计误差)

缺点:时间步长要求较严格,收敛比较慢,计算量较大。

 

全隐式

算法稳健且无条件稳定,无论多大时间步长,都不会出现解的振荡。但是,优于该积分方案在时间域上只具有一阶截差精度,因此需要使用小的时间步长,以保证获得较高精度的解。(fluent采用)

 

优点:比较容易收敛,无条件稳定,计算量较小

缺点:有累积误差

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有