找回密码
 注册
Simdroid-非首页
查看: 6118|回复: 38

[基础理论] 【显式隐式讨论】隐式积分与显式积分【推荐楼层:1-30楼】

[复制链接]
发表于 2008-7-14 16:25:11 | 显示全部楼层 |阅读模式 来自 江苏南京
最近在研究隐式和显式算法,关于隐式和显式的概念,它们的区别,它们的应用范围及优缺点,一直不是很明白,所以想请教下大家,欢迎大家能够积极回复。


感谢各位的精彩回复,现在对这两种算法做一个简单的学习小结。并支持继续讨论。
隐式算法和显式算法是两个比较范的概念,无论是静力学问题,还是动力学问题,都可以应用这两种方法。隐式方法包括Newton-Raphson method,Tangetial stiffness method,radial return method等等;显式算法包括central difference method等。
隐式算法能提供更有力的整体逼近,达到收敛需反复的迭代,因而代价比价大;显式方法不需要迭代,因而代价较小。


隐式算法适于结构的稳态响应等问题;显式算法适于冲击、爆炸等问题。
隐式算法稳定性是无条件的,以K求逆为代价换得了比显式算法可以采用大得多的时间步长;显式算法是条件稳定,其积分的结果依赖时间步的大小,步长变大往往会造成结果不收敛,所以要注意时间步的大小,还要保证计算结果与真实结论的偏差要小。



对于ABAQUS而言,用户经常要开发用户子程序(UMAT),当材料响应进入非线性,应力更新算法既可采用隐式和也可采用显式。隐式积分方法需要Jacobian(包括切线刚度矩阵与载荷刚度矩阵),因为Jacobian并不影响结果的准确性,却影响收敛的速度,由于这个原因,近似的Jacobian经常被采用,进一步原因是因为塑性模型本身的复杂性,材料的Jacobian不能导出解析解,因此数值近似的方法往往被采用。





更多精彩言论,请参考:
http://forum.simwe.com/thread-842432-1-1.html
http://forum.simwe.com/viewthrea ... p%3Bfilter%3Ddigest

评分

1

查看全部评分

发表于 2008-10-6 17:00:00 | 显示全部楼层 来自 LAN
Simdroid开发平台
显式和隐式的区别很多人都讲了,我就提一下计算效率的问题,隐式需要解线性方程组,而对于显式,当我们使用集中质量矩阵时,不需要求解线性方程组,所以对于大规模问题,虽然显式的时间步长较小,但显式会比隐式更有效率。

评分

1

查看全部评分

回复 0 不支持 1

使用道具 举报

发表于 2008-7-15 00:36:39 | 显示全部楼层 来自 美国
对于显式和隐式两个时间积分过程,平衡是以外力 、单元内力 和节点加速度 的形式定义的:为了确定单元内力,两种算法都求解节点加速度,区别在于计算节点加速度的方式。隐式用直接法求解一系列的线性方程组。 而显式算法采用集中质量的方法使质量矩阵对角化,这样不需经过迭代即可求解相互独立的多个方程。并且采用中心差分法对时间进行离散化,即假定加速度为常数以求得速度的变化,用这个速度的变化值加上前一个时间段中点的速度来确定当前时间段的中点速度: 速度沿时间积分的结果加上此时间段开始时的位移,确定了时间段结束时的位移。 这样,在时间段开始时,提供了满足动力学平衡条件的加速度。知道了加速度,通过对时间的“显式”求解,可以进一步求出速度和位移。所谓的“显式”是指时间段结束时的形态仅取决于此时间段开始时的位移、速度和加速度。为了得到精确的结果,时间增量段必须分得足够小以保证加速度在时间段中近似为常数,一般的分析需要成千上万个时间段。但由于不必同时求解联立方程,每一个增量计算成本较低,大部分的计算机资源消耗在计算确定作用在节点上的单元内力。

[ 本帖最后由 yaooay 于 2008-7-15 00:40 编辑 ]

评分

1

查看全部评分

回复 1 不支持 0

使用道具 举报

发表于 2008-7-14 16:50:23 | 显示全部楼层 来自 辽宁沈阳
我也不是太清楚,但是为了支持您的工作,尝试一下吧,还有抢占沙发
隐式与显示最重要的区别在于是否对于整体刚度矩阵求逆,而这一过程也就决定了两者对于模型的要求,由于隐式算法要求逆,所以计算时要求整体刚度阵不能奇异,而显示就没有这一问题啦。而对于动力学问题来将,从数学上看它属于微分方程中初边值问题,如果采用显示求解,很容易发生总纲奇异的问题,所以很多时候求解动力学问题都采用explicit来做。但是explicit也有自身的问题,由于要对于时间积分,如果时间积分步长取得太长,计算结果很有可能是不精确的,但是太短了,还会使得计算时间大幅度增加,并且动力学问题中还存在应力波效应影响,所以使得显示问题更为复杂,但是abaqus中提供了最小单元尺寸限制时间步长的方法,还是可以很好地解决这问题。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-7-14 17:13:30 | 显示全部楼层 来自 辽宁沈阳
另外我想强调一点,就是很多人认为standard就是用来做静态问题的,这个想法不正确。strandard是个通用求解器,它可以做几乎所有的计算。而静态之所以选用standard来做的原因,就是可以避开应力波,或者是时间积分的问题。个人感觉,standard应该是采用implicit来计算的,否则它不会对于单元整体刚度要求的那么强烈。
另外在abaqus中,implicit与explicit好像分别采用的是newmark积分法与中心差分法。
同时我还想在强调一点,就是一些时域问题需要转化到频域问题来求解,比如说岩层蠕变问题,这个时候需要将时域方程进行laplace变换,转化到频域来求解,而这一问题只能在standard下来计算了。渗流问题也属于这样的问题

[ 本帖最后由 敦诚 于 2008-7-14 18:14 编辑 ]

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-7-14 17:19:26 | 显示全部楼层 来自 德国
隐式解法是一个迭代过程, 即从0状态到1状态不能直接求出, 最简单的例子是非线弹性模型,  而显式解法则没有迭代过程, 它是使用0状态的参数直接求出1状态的值, 当步长小的时候, 隐式解法与显式的精度差不多, 但隐式计算代价要高, 步长大的时候, 隐式精度高.

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-7-14 18:11:33 | 显示全部楼层 来自 安徽合肥
说反了?
显式的时间积分用的是中心差分格式
隐式的递推格式好像是以Newmark方法为基础的,这个不确定
我再补充点,很多人认为explicit就是用来做瞬态问题的,这个想法也不正确。explicit也是个通用求解器,它也可以做几乎所有的计算。
不仅是高速动力学问题
对于复杂接触问题,屈曲问题,高度非线性的准静态问题,材料退化和失效问题
explicit也具有很大的优势
原帖由 敦诚 于 2008-7-14 17:13 发表
另外我想强调一点,就是很多人认为standard就是用来做静态问题的,这个想法不正确。strandard是个通用求解器,它可以做几乎所有的计算。而静态之所以选用standard来做的原因,就是可以避开应力波,或者是时间积分的问 ...

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-7-14 18:31:59 | 显示全部楼层 来自 安徽合肥
原帖由 wild_field 于 2008-7-14 16:25 发表
我们在研究问题时,首先会碰到概念问题,概念理解得不对,就会发生根本性错误。最近在研究隐式和显式算法,关于隐式和显式的概念,它们的区别,它们的应用范围及优缺点,一直不是很明白,所以想请教下大家,欢迎大家 ...

从从字面上来理解的话
显式方法(explicit)在方程求解过程中只涉及到历史的n和n-1步的信息,而当前的第n +1步的信息(比如空间上的其他点)不会涉及到
而隐式方法(implicit)在求解当前点(第n +1步)时,会涉及到其他已知点的第n+1步信息,所以需要迭代.

两者之间的区别等,庄茁的<<ABAQUS非线性有限元分析与实例>>里做了详细的讨论,您可以看看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-7-14 18:48:16 | 显示全部楼层 来自 安徽合肥
原帖由 敦诚 于 2008-7-14 17:13 发表
另外我想强调一点,就是很多人认为standard就是用来做静态问题的,这个想法不正确。strandard是个通用求解器,它可以做几乎所有的计算。而静态之所以选用standard来做的原因,就是可以避开应力波,或者是时间积分的问 ...

我觉得很多是基于计算时间的考虑吧,个人观点仅供参考
隐式方法经验表明对于许多问题的计算成本大致与自由度数的平方成正比
显式方法计算成本与单元数目成正比,并大致与最小单元的尺寸成反比
随着模型尺寸的增长,显式方法该比隐式方法更节约计算成本
但是由于显式方法的条件稳定性和隐式方法的无条件稳定,小规模模型的(准)静态问题求解,隐式方法的计算成本大大低于显式方法的计算成本
我觉得这导致了目前(起码是本版)使用隐式方法做计算的人大大多于用显式的

随着有限元技术的发展和更广泛的应用,计算机水平的进一步发展,人们在有限元分析中应用更大规模的模型,我觉得显式方法有着光明的未来

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-7-14 22:40:24 | 显示全部楼层 来自 陕西西安
那么ABAQUS中的“静力隐式”和“动力显式”的区别在哪里呢?
问了一个博士,他也没说清
说什么隐式是r=f什么的
显式是牛二律的应用即f=ma

又说静力更精确
比如Deform就是静显而Dynaform是动显

听得我云里雾里
希望有高手能解答一下
不胜感激

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-7-15 07:47:11 | 显示全部楼层 来自 英国
implicit analysis : Backward Euler analysis

explicit analysis: Forward Euler analysis

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-7-15 17:25:25 | 显示全部楼层 来自 浙江杭州
隐式和显式的根本区别在于:计算位移时,隐式算法需要通过对刚度矩阵求逆;显式算法无需对刚度矩阵求逆(比如中心差分法)。

隐式和显式都可以用于分析动力和静力的问题,总体来说隐式算法比显式算法准确。
显式算法原理最初是从动力问题得到的。F=ma+cv+ku
所以对于准静态问题,显式算法需要得当的设置结果才会比较准确,而且对于回弹的分析显式算法也不准确。

隐式算法虽然比较精确,一般小型计算还是敬意采用隐式算法,但是对于大型的工程问题,收敛会比较慢,甚至是不收敛,这时候可以考虑用显式。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-10-6 22:34:38 | 显示全部楼层 来自 上海
呵呵 个人觉得显式计算是因为求解变量能够显式表达的 所以叫显式 隐式意思当然就相反啦 所以隐式要迭代 对于大型问题可能显式还是要快一些 ABAQUS显式单元库没有隐式大 隐式的精度是可以保证的 但隐式的收敛性是最让人头痛的事情 但显式的计算精度与计算成本的平衡也让人很烦恼啊 个人觉得显式是隐式收敛不了的时候的终极武器 呵呵 夸张了

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-10-7 09:08:07 | 显示全部楼层 来自 上海
隐式和显式的根本区别在于隐式算法需要通过对刚度矩阵求逆;显式算法无需对刚度矩阵求逆(比如中心差分法)。个人觉得除了冲击、爆炸等叫少数问题外隐式比显示来的好。尽管隐式由于迭代耗时较多,但是概念更加直接些

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-10-7 10:33:49 | 显示全部楼层 来自 日本
我冒昧的谈谈我的理解,
我认为对刚度矩阵求逆算不上显式/隐式的根本区别,
拿最常见的静力求解过程来说
隐式法分为两个步骤,
求解器根据力f和刚度阵K隐式迭代求解位移u和应变e;
每个积分点的本构计算中根据应变e隐式求解应力s
更新后的s再由求解器集总成为力f
再次隐式求解f=Ku这个方程组
因此
当我们谈论隐式法的时候必须明确是哪个过程
在每一个增量步的应力更新中,
隐式积分过程其实跟刚度阵的求逆无关。
刚度矩阵求逆是因为时间增分过大,
求解器用矩阵K进行N-R迭代或者Newmark迭代时无法收敛,
而迭代法是非常依赖初值的,所以必须给出一个比较好的初值,因此我们需要对刚度矩阵进行一定的改写。
如果哪一天发展出不依赖初值的算法,或者不需要迭代的算法,
那么连刚度阵也不用更新了。




原帖由 zhao12 于 2008-10-7 09:08 发表
隐式和显式的根本区别在于隐式算法需要通过对刚度矩阵求逆;显式算法无需对刚度矩阵求逆(比如中心差分法)。个人觉得除了冲击、爆炸等叫少数问题外隐式比显示来的好。尽管隐式由于迭代耗时较多,但是概念更加直接些

[ 本帖最后由 wangxiaoteng 于 2008-10-7 10:34 编辑 ]

点评

很有启发。。 “刚度K”和"本构计算"都要使用材料的刚度矩阵吧,这个在Umat中怎么分别?(有点偏题)  发表于 2012-11-6 20:00

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-10-16 18:14:54 | 显示全部楼层 来自 贵州贵阳
显式求解与隐式在数学上说主要是在求解的递推公式一个是用显式方程表示,一个是用影视方程来表示。比如a(n)=a(n-1)+b(n-1),后一次迭代可以由前一次直接求解,这就是显示方程,如果a(n)=a(n-1)+f[a(n)],f[a(n))为a(n)的函数,此时a(n) 不能用方程显示表示,及数学上的隐函数,一般很难直接求解,多用迭代试算法间接求解。有限元在求解动力学问题中直接积分法中的中心差分积分就是显示求解,而Newmark积分法则为隐式积分。具体这两种算法的优缺点可以参考《有限单元法》(清华大学出版社,王勖成编,第13章 动力学问题),显式算法与隐式算法可以参考《数学物理方程》(高等教育出版社,第二版,谷超豪,李大潜,陈恕行等编,第七章 第二节 热传导方程的差分法,180-185页)。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2009-1-4 19:44:18 | 显示全部楼层 来自 江苏南京
其实隐式求解与显式求解最本质区别是:在动力控制方程中,或者微分平衡方程中,采用差分离散时间变量(也可以是空间变量)隐式求解用到的数据信息是还没有计算的或者将要计算的;显式求解用到的数据信息是前面已经计算出来的。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2009-1-4 23:17:23 | 显示全部楼层 来自 辽宁沈阳
还要注意显式动力积分的时间步长确定时要保证应力波在一个积分步长内不能穿透两个单元,这与应力波的传播速度、单元大小相关,因此不是单元划分细就好;另外还要保证中心差分法的数值稳定性,这要求积分步长小于单元的最小自振周期,所以explicit在求解静力问题时,可以采用扩大质量(密度)法来加大时间步长的原因。这两点共同决定其积分步长。explicit积分法的基本思路与离散单元法DEM法非常接近,具体的区别还有待高人讲解

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2009-1-5 01:43:00 | 显示全部楼层 来自 新加坡
ls各位大牛所言让我受益匪浅。但是我还是没有完全明白,我期盼哪位高人能从有限元计算程式的角度解说一下。以显式和隐式做动力分析为例:
1      F=ma=F(外)- F(内)-------得到a
2      a得到v
3      v得到位移u

请问二者在这三步分别有何区别?如果是静力分析呢?
谢谢了先
回复 不支持

使用道具 举报

发表于 2009-1-5 10:10:31 | 显示全部楼层 来自 江苏南京
LS的静力分析还有加速度吗???没有加速度就不能说惯性了

再说显式与隐式不是针对你所说的F=ma而言的
而是针对微分平衡方程中的时间域差分方式而言的
针对Mu''+Cu'+Ku=F(t)而言

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-29 21:38 , Processed in 0.056553 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表