ydliu_zn 发表于 2006-11-23 14:24

显式算法和隐式算法

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

切线刚度与单元级是什么意思?还有以上的其它几点?欢迎大家踊跃讨论

northwest 发表于 2006-11-23 17:20

切线刚度是广义力对广义位移的导数,对应应力应变曲线的切线。大家可以看看ABAQUS Theory Manual 中关于standand的一段话:
The finite element models generated in ABAQUS are usually nonlinear and can involve from a few to thousands of variables. In terms of these variables the equilibrium equations obtained by discretizing the virtual work equation can be written symbolically as



whereis the force component conjugate to thevariable in the problem andis the value of thevariable. The basic problem is to solve Equation 2.2.1–1 for thethroughout the history of interest.

Many of the problems to which ABAQUS will be applied are history-dependent, so the solution must be developed by a series of “small” increments. Two issues arise: how the discrete equilibrium statement Equation 2.2.1–1 is to be solved at each increment, and how the increment size is chosen.

ABAQUS/Standard generally uses Newton's method as a numerical technique for solving the nonlinear equilibrium equations. The motivation for this choice is primarily the convergence rate obtained by using Newton's method compared to the convergence rates exhibited by alternate methods (usually modified Newton or quasi-Newton methods) for the types of nonlinear problems most often studied with ABAQUS. The basic formalism of Newton's method is as follows. Assume that, after an iteration i, an approximation , to the solution has been obtained. Letbe the difference between this solution and the exact solution to the discrete equilibrium equation Equation 2.2.1–1. This means that

[ 本帖最后由 northwest 于 2006-11-23 18:49 编辑 ]

wschaoren 发表于 2006-11-23 18:40

根据我的经验,好象显式算法的精度不如隐式的啊,是不是啊?

xiangbeiyan 发表于 2006-11-23 19:47

1、呵呵,关于切线刚度,northwest讲的很正确建议褒奖!
2、关于“而静态隐式算法基于虚功原理,一般需要迭代计算”:
       我们都知道,隐式有限元法最终都要化为:*{&}={F}的形式,即,刚度矩阵乘以位移矢量等于节点力矢量的形式,从中求得位移矢量,从而再得到其它各个量。而该方程的得到在数学上就从基本的力学微分方程和边界条件出发,结合虚位移原理,通过泛函求极值得到的。
      虚位移原理可以表述如下:如果物体在外力作用下处于平衡状态,那么在虚位移发生时,物体的虚应变能等于外力所做的虚功。从而通过虚功方程将弹性力学全部微分方程等价。
      当然,关于这一点一般的有限元的书上都会有,大家有兴趣可以翻一翻,这里只能稍微提一下,几句话也将不清楚的。
3、关于“单元级”:
      实在不好意思,昨天匆匆忙忙,把字打错了,其中的“级”应该是“及”
4、关于欧拉向前差分法:
       我们知道,在一般的差分格式中,本步的力学状态(如位移、速度、加速度等)不仅与前一步的力学状态有关,还与本步的力学状态有关系,至于有怎样的关系,是通过表示该步与前一步力学状态相关量的系数进行调节的,使用有限元软件计算的时候就可以通过条件这些系数选择合适的方法。而欧拉向前差分的法则从前一步的力学状态直接得到本步的力学状态,因此通过边界条件和初始条件,就可以得到每一步的力学状态,之所以被称为显式,也正是这个原因。也可以认为,除了欧拉向前差分法外,其它的差分格式都是隐式的方法,需要求解如上面2中所说的线性方程组。
      关于欧拉向前差分法跟详细的情况建议大家参考专业书籍,看一下公式的表述,还是比较清晰的。呵呵,这里敲公式不大方便,抱歉了!

    一点浅见,未必正确,仅仅抛砖引玉,欢迎大家指正!同时也希望大家踊跃讨论,互相交流!

ydliu_zn 发表于 2006-11-23 21:24

谢谢xiangbeiyan和northwest,对于第四条,我想问的是:什么是率形式的平衡方程组?
个人认为,对于精度问题,两种算法各有优势,不能说谁就比谁要好。单从理论上来说,动态显示做的近似要比动态隐式少,所以精度要高点;但显示与静态隐式相比,孰好孰坏很难说清。而且在计算时还有其它的问题,比如问题的类型更适应于哪种计算等等,或多或少有影响到精度了.......

ydliu_zn 发表于 2006-11-23 21:44

隐式算法的迭代图如下,此是静态的,所以求位移。动态时,先求的是加速度。

wjjerry 发表于 2006-11-27 10:19

我现在学的还不是很明白。
先学习下先。

likuiming 发表于 2006-11-27 15:31

我想“率形式的平衡方程组” 应该就是指的微分形式的平衡方程

三叶剑 发表于 2009-9-9 15:04

显式算法基于动力学方程,因此无需迭代;而静态隐式算法基于虚功原理,一般需要迭代计算
如两种都可以得到结果,用哪种算法呢?

wyy219 发表于 2009-10-18 18:12

这还要看是什么样的问题了

jhunhoon 发表于 2014-6-28 11:42

{:{10}:}努力学习中!望大家多出宝贵资料共同成长!

kyletao 发表于 2014-9-1 12:31

下载下来,学习一下
页: [1]
查看完整版本: 显式算法和隐式算法