显式与隐式算法区别
有限元分析基础-隐式与显式算法的区别

有限元分析基础- 显式与隐式算法的区别所谓显式和隐式,是指求解方法的不同,即在数学上的计算方法不一样,是两种不同针对时间的积分方法。
显式求解是对时间进行差分,不存在迭代和收敛问题,最小时间步取决于最小单元的尺寸。
过多或过小的时间步都会导致求解时间非常漫长,但总能给出一个计算结果。
隐式求解和时间无关,采用的是牛顿迭代法(线性问题就直接求解线性代数方程组),因此存在一个迭代收敛问题,不收敛就得不到结果。
在某些情况下,显式算法的计算效率远高于隐式算法,尤其是在多处理器并行运算的场景下,对于自由度较大的三维结构,显式算法可能具有较高的计算效率。
然而,对于自由度较小的二维结构,隐式算法可能更适合,因为它在每个增量步内不需要进行迭代,从而减少了计算时间。
总结来说,隐式方法适用于需要高计算精度和稳定性的场景,而显式方法则适用于需要高计算效率的场景。
abaqus显式与隐式的区别

ABAQUS显式与隐式的区别ABAQUS中动态分析包括两大类基本方法:振型叠加法:用于求解线性动态问题;直接积分法:主要用于求解非线性动态问题。
ABAQUS显式(explicit)和隐式(standard)算法分别对应着直接积分法中的中心差分法(显式)和Newmark(隐式)法等。
比较两种算法,显式中心差分法非常适合研究波的传播问题,如碰撞、高速冲击、爆炸等。
显式中心差分法的M与C矩阵是对角阵,如给定某些有限元节点以初始扰动,在经过一个时间步长后,和它相关的节点进入运动,即U中这些节点对应的分量成为非零量,此特点正好和波的传播特点相一致。
另一方面,研究波传播的过程需要微小的时间步长,这也正是中心差分法的特点。
而Newmark法更加适合于计算低频占主导的动力问题,从计算精度考虑,允许采用较大的时间步长以节省计算时间,同时较大的时间步长还可以过滤掉高阶不精确特征值对系统响应的影响。
隐式方法要转置刚度矩阵,增量迭代,通过一系列线性逼近(Newton-Raphson)来求解。
正因为隐式算法要对刚度矩阵求逆,所以计算时要求整体刚度矩阵不能奇异,对于一些接触高度非线性问题,有时无法保证收敛。
下面分别介绍这两种算法。
1 显式算法(中心差分法)假定0,1t ,2t ,…,n t 时刻的节点位移,速度与加速度均为已知,现求解)(t t t n ∆+时刻的结构响应。
中心差分法对加速度,速度的导数采用中心差分代替,即为:)(21)2(12t t t t t t t t t t t U U tU U U U t U ∆-∆+∆+∆--∆=+-∆= (1) 将(1)式代入运动方程后整理得到tt t R U M ˆˆ=∆+(2) 式(2)中C tM t M ∆+∆=211ˆ2(3) t t t t t U C tM t U M t K R R ∆-∆-∆-∆--=)211()2(ˆ22(4) 分别称为有效质量矩阵,有效载荷矢量。
隐式求解与显式求解

大多数非线性动力学问题一般多是采用显式求解方法,特别是在求解大型结构的瞬时高度非线性问题时,显示求解方法有明显的优越性。
下面先简要对比一下隐式求解法和显示求解法。
动态问题涉及到时间域的数值积分方法问题。
在80年代中期以前,人们基本上采用纽曼法进行时间域的积分。
根据纽曼法,位移、速度和加速度有着如下关系:u(i+1)=u(i)+△t*v(i)[(1—2p)a(i)+2p*a(i+1)] (1)v(i+1)=V(i)+△t[(1-2q)a(i)+2qa(i+1)] (2)上面式子中 u(i+1),u(i)分别为当前时刻和前一时刻的位移,v(i+1)和V(i)为当前时刻和前一时刻的速度,a(i+1)和a(i)为当前时刻和前一时刻的加速度,p和q为两个待定参数,△t 为当前时刻与前一时刻的时问差,符号* 为乘号。
由式(1)和式(2)可知,在纽曼法中任一时刻的位移、速度、加速度都相互关联,这就使得运动方程的求解变成一系列相互关联的非线性方程的求解,这个求解过程必须通过迭代和求解联立方程组才能实现。
这就是通常所说的隐式求解法。
隐式求解法可能遇到两个问题。
一是迭代过程不一定收敛,二是联立方程组可能出现病态而无确定的解。
隐式求解法最大的优点是它具有无条件稳定性,即时间步长可以任意大。
如果采用中心差分法来进行动态问题的时域积分,则有如下位移、速度和加速度关系式:u(i+1)=2u(i)-u(i-1)+a(i)(△t)^2 (3)v (i+1)=[u (i+1)-u (i-1)]/2(△t) (4)式中u(i-1),为i -1时刻的位移。
由式(3)可以看出,当前时刻的位移只与前一时刻的加速度和位移有关,这就意味着当前时刻的位移求解无需迭代过程。
另外,只要将运动过程中的质量矩阵和阻尼矩阵对角化,前一时刻的加速度求解无需解联立方程组,从而使问题大大简化,这就是所谓的显式求解法。
显式求解法的优点是它既没有收敛性问题,也不需要求解联立方程组,其缺点是时间步长受到数值积分稳定性的限制,不能超过系统的临界时间步长。
abaqus显示和隐式算法的差别

1.1. 弹性动力学有限元基本解法结构系统的通用运动学方程为:tR KU U C U M =++ (1) 求解该动力学振动响应主要有三类方法:(1)时域法(2)频域法(3)响应谱法 时域法又可分为:(1)直接积分法,(2)模态叠加法。
直接积分法又可分为中心差分法(显式),Wilson θ(隐式)法以及Newmark (隐式)法等。
本文介绍中心差分法(显式)与Newmark (隐式)法。
1 中心差分法(显式)假定0,1t ,2t ,…,n t 时刻的节点位移,速度与加速度均为已知,现求解)(t t t n ∆+时刻的 结构响应。
中心差分法对加速度,速度的导数采用中心差分代替,即为:)2(12t t t t t t U U U t U ∆+∆-+-∆= )(21t t t t t U U tU ∆-∆+-∆= (2) 将(2)式代入(1)式后整理得到tt t R U M ˆˆ=∆+ (3) 式(3)中C tM t M ∆+∆=211ˆ2 t t t t t U C tM t U M t K R R ∆-∆-∆-∆--=)211()2(ˆ22 分别称为有效质量矩阵,有效载荷矢量。
R ,M ,C ,K 为结构载荷,质量,阻尼,刚度矩阵。
求解线性方程组(3),即可获得t t ∆+时刻的节点位移向量t t U ∆+,将t t U ∆+代回几何方程与物理方程,可得t t ∆+时刻的单元应力和应变。
中心差分法在求解t t ∆+瞬时的位移t t U ∆+时,只需t t ∆+时刻以前的状态变量t U 和t t U ∆-,然后计算出有效质量矩阵M ˆ,有效载荷矢量tR ˆ,即可求出t t U ∆+,故称此解法为显式算法。
中心差分法,在开始计算时,需要仔细处理。
t =0时,要计算t U ∆,需要知道tU ∆-的值。
因此应该有一个起始技术,因而该算法不是自动起步的。
由于0U ,0U ,0U 是已知的,由t =0时的(2)式可知:02002U t U t U U t ∆+∆-=∆- 中心差分法中时间步长t ∆的选择涉及两个方面的约束:数值算法的稳定性和计算时间。
显式&隐式求解

通过(03)(09)可以得到两种方法的计算特点,显式算法是每一步求解为矩阵乘法,时间步 选择为条件稳定;隐式算法是每一步求解为线性方程组求解,时间步选择为无条件稳定。 下面主要分析两种方法的应用范围。 在求解动力学问题时,将方程在空间上采用有限元法(或其他方法)进行离散后,变为 常微分方程组
C u K u f M u
只不过,在显示动力分析中最消耗 CPU 的一项就是单元的处理。由于积分点的个数与 CPU 时间成正比,采用简化积分的单元便可以极大的节省数据存储量和运算次数,进而提高 运算效率。除节省 CPU 外,单点积分单元在大变形分析中同样有效,Ansys/ls-dyna 单元能承 受比标准 Ansys 隐式单元更大的变形。因此,每种显示动力单元确省为单点积分。但单点积 分有两个缺点:1.出现零能模型(沙漏模态);2.应力结果精确度与积分点相关。为了控制沙 漏,可以采用全积分单元。 总结一下,显示算法、隐式算法与单点积分、全积分不是一个层次上的概念。 我们在求解问题的时候应先根据我们的问题类型来决定是采用显示算法还是隐式算法。 如果是采用显示算法,默认是单点积分,如果产生了沙漏,改用全积分。
u (i 1) 2u (i ) u (i 1) a (i )(t )2 v(i 1) u (i 1) u (i 1) 2t
由上式可以看出,当前时刻的位移只与前一时刻的加速度和位移有关,这就意味着当前时刻 的位移求解无需迭代过程。另外,只要将运动方程中的质量矩阵和阻尼矩阵对角化,前一时 刻的加速度求解无需解联立方程组,从而使问题大大简化,这就是所谓的显式算法。显式算 法的优点是它即没有收敛性问题,也不需求解联立方程组,其缺点是时间步长受到数值积分 稳定性的限制,不能超过系统的临界时间步长。 显式算法是 ansys/ls-dyna 中主要的求解方法,用于分析大变形、瞬态问题、非线性动力 学问题等。 对于非线性分析, 显示算法有一些基本的特点, 如: 块质量矩阵需要简单的转置; 方程非耦合,可以直接求解;无须转置刚度矩阵,所有的非线性问题(包括接触)都包含在 内力矢量中;内力计算是主要的计算部分;无效收敛检查;保存稳定状态需要小的时间步。 显式算法和隐式算法, 有时也称为显式解法和隐式解法, 是计算力学中常见的两个概念, 但是它们并没有普遍认可的定义,下面收集的一些理解。先看看一般对两种方法的理解和比 较 ============================================================= 显式算法 隐式算法 ----------------------------------------------------------------------------------(01)适用问题 动力学(动态) 静力学(静态) (02)阻尼 人工阻尼 数值阻尼 ----------------------------------------------------------------------------------(03)每步求解方法 矩贮量 小 大 (06)每步计算速度 快 慢 (07)迭代收敛性 无 有 (08)确定解 有确定解 可能是病态无确定解 ----------------------------------------------------------------------------------(09)时步稳定性 有条件 无条件 (10)时间步 小 大 (11)计算精度 低 高 ============================================================= (01)是明显不对的, 只是对两种方法的初级理解, (02)也是同样。 下面要详细讨论这两点。 (03)是每一步求解的方法,(04)(05)(06)(07)(08)是由(03)所决定的,它们不是两种方法的基本 特点。同样,(09)是时间步选择的方法,(10)(11)是由(09)所决定的。
显示算法与隐式算法

以下内容转自abaqus版面的总结:显式一般用于动态问题的分析, 对于大型问题, 或复杂的接触情况可能需要几百万的增量步的计算, 所用时间可能是几天或更长. 而隐式的增量步长要长得多, 一般用于静态问题的求解.显式算法别explicit method use direct iterative method, which has small cost in eachtime increment but require relatively small increment. Abaqus pre-determinethe time increment based on wave propagation speed and minimum meshsize. This method could be efficient for highly nonlinear and contact problem.For quasi-static problem, properly adjust model parameter as density and totaltime is important to achieve good computation time.standard-隐式算法Implicit method use newton method for iteration, which means high cost foreach time increment but could mean large time increment. Convergencecould be a problem in this case. It could be efficient for linear and some nonlinear problem. More materials, elements and procedures are available in standard.所谓显式和隐式,是指求解方法的不同,即数学上的出发点不一样。
显式与隐式方法对比

显式与隐式方法对比显式与隐式方法对比:隐式时间积分——不考虑惯性效应([C]and[M])。
——在t+△t时计算位移和平均加速度:{u}={F}/[K]。
——线性问题时,无条件稳定,可以用大的时间步。
——非线性问题时,通过一系列线性逼近(Newton-Raphson)来求解;要求转置非线性刚度矩阵[k];收敛时候需要小的时间步;对于高度非线性问题无法保证收敛。
显式时间积分——用中心差法在时间t求加速度:{a}=([F(ext)]-[F(int)])/[M]。
——速度与位移由:{v}={v0}+{a}t,{u}={u0}+{v}t——新的几何构型由初始构型加上{X}={X0}+{U}——非线性问题时,块质量矩阵需要简单的转置;方程非耦合,可以直接求解;无须转置刚度矩阵,所有的非线性问题(包括接触)都包含在内力矢量中;内力计算是主要的计算部分;无效收敛检查;保存稳定状态需要小的时间步。
关于文件组织:jobname.k——lsdyna输入流文件,包括所有的几何,载荷和材料数据jobname.rst——后处理文件主要用于图形后处理(post1),它包含在相对少的时间步处的结果。
jobname.his——在post26中使用显示时间历程结果,它包含模型中部分与单元集合的结果数据。
时间历程ASCII文件——包含显式分析额外信息,在求解之前需要用户指定要输出的文件,它包括:GLSTAT全局信息,MATSUM材料能量,SPCFORC节点约束反作用力,RCFORC接触面反作用力,RBDOUT刚体数据,NODOUT节点数据,ELOUT单元数据……在显式动力分析中还可以生成下列文件:D3PLOT——类似ansys中jobname.rstD3THDT——时间历程文件,类似ansys中jobname.his关于单元:ANSYS/LSDYNA有7中单元(所有单元均为三维单元):LINK160:显式杆单元;BEAM161:显式梁单元;SHELL163:显式薄壳单元;SOLID164:显式块单元;COMBI165:显式弹簧与阻尼单元;MASS166:显式结构质量;LINK167:显式缆单元显式单元与ansys隐式单元不同:——每种单元可以用于几乎所有的材料模型。
显式与隐式方法对比

显式与隐式方法对比:
隐式时间积分
——不考虑惯性效应([C]and[M])。
——在t+△t时计算位移和平均加速度:{u}={F}/[K]。
——线性问题时,无条件稳定,可以用大的时间步。
——Viscoelastic:定义玻璃类材料。需输入G0,G,K等参数。
塑性:
——有11中塑性模型,模型选择取决于要分析的材料和可以得到的材料参数。要得到好的分析结果,需要使用精确的材料参数。
——塑性模型可分为3大类
——位于不同的类别内的材料模型之间区别很大,但在一个类别内的材料模型差别不大,通常只是可获得的材料参数不同。
——每种显式动力单元缺省为单点积分。
——不具备额外形函数和中间节点的单元以及P单元。
——单元支持ansys/lsdyna中所有的非线性选项。
简化积分单元的使用:一个简化积分单元是一个使用最少积分点的单元,一个简化积分块单元具有在其中心的一个积分点;一个简化壳单元在面中心具有一个积分点。全积分块与壳单元分别具有8个
——可以通过solution>loading options。。得到载荷的参考号。
——初始速度(EDIVELO)与刚体定义(EDMP,RIGID)是显式分析所独有的。
——施加载荷时,如果不定义时间与载荷轴,可以使用预先定义的载荷曲线LCID(via EDCURVE)来定义载荷。
——可以使用SCALE系数对载荷数据进行放缩。
——定义完载荷曲线后,可以用EDPL画一下确认。
——所有3个模型可以用于大多数工程金属材料。
——BKIN与BISO模型之间的唯一区别是硬化假设,随动硬化假定二次屈服在2σy时出现,而等向硬化出现在2σmax。它们输入参数类似:DENS,EX,NUXY,Yield Stress(σy),Tangent Modulus(Etan)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
显式(explicit)和隐式(implicit)这两个词在有限元分析中大家可能经常看到,特别是涉及到动力学分析时。
但其实广义的说他们分别对应着两种不同的算法:显式算法(explicit method)和隐式算法(implicit method)。
所以不论在动力学或者静力学中都有涉及到。
显式算法:不直接求解切线刚度,不进行平衡迭代,计算速度快,时间步长只需要足够小,一般不存在收敛问题,需要的内存也小。
隐式算法:每一增量步都需要对静态方程进行平衡迭代,且每次迭代需要求解大量的线性方程组,这一特点使之占用大量的资源。
但该算法增量步可以很大,至少比显式算法大的多,实际计算中会受到迭代次数及非线性程度的影响
我们都知道有限元分析FEA在计算微分方程(differential equations)时,由于计算本身的局限,比如计算机储存的位数有限,以及方程本身的复杂性,计算机运用的是数值算法(numerical algorithm)来逼近真实解的。
有限元分析中数值算法的基础是欧拉法(Euler method),欧拉法又分为forward Euler method 和backward Euler method,这两种方法被简称为显式法(explicit method)和隐式法(implicit method)。
中心差分法:
(动力学分析)用有限差分代替位移对时间的求导,将运动方程中的速度与加速度用位移的某种组合来标示,这样就将常微分方程组的求解问题转化为代数方程组的求解问题,并假设在每个小的时间间隔内满足运动方程。
首先我们来看看这两种算法的区别。
显式算法(explicit method )(forward Euler method )
考虑常微分方程:
初始条件:
设为每一步的时间步长, 在Tn 时刻,
. (n=0,1,2,3...),在T(n+1)
时刻有:
所以在显式算法中,T(n+1)时刻的值由T(n)时刻决定,也就是说当前时刻的值由上一时刻
的值决定。
隐式算法(implicit method)(backward Euler method)
考虑同一个方程,在T(n+1)时刻有:
所以在隐示算法中,T(n+1)时刻的值不光由T(n)时刻决定,还由当前时刻T(n+1)决定。
也就是说当前时刻的值由上一时刻和当前时刻的值共同决定。
隐式算法往往需要求解二次方程。
我们来看看一个具体事例:
设常微分方程:
根据上面的方法,对于显示算法有:
得出:
对于隐式算法有:
导出二次方程:
求解得:
所以很明显,在隐式算法中,要求得K+1时刻的值,就需要求解二次方程的根。
关于收敛性
o显式算法不存在收敛性的问题(因为不进行收敛计算),从方程中可以看出来,每个时刻的值由上一时刻所确定,所以一步一步进行下去,当时间步取得较大时,就会偏离真实值。
显式算法的过程(蓝色为真实值)
o隐式算法是无条件收敛的,在隐式算法中,在求解二次方程的同时,会通过Newton–Raphson method算法对每一步进行迭代收敛,直至收敛到指定的偏差。
如下图所示:
o
隐式算法的过程(每个时间步长中,通过Newton–Raphson method算法不断进行收敛迭代,
直至接近真实值为止)
时间步长(time integration)的依赖性(时间变量只在动力学中涉及)
o显式算法要获得准确的结果,需要取很小的时间步长
o隐式算法对时间步长要求不高,由于是绝对收敛的,往往可以取较大的时间步长。
运用上面的方法,我们以方程为例,通过数值算法求得f(u)。
当把时间步长取为1时,显式(explicit)和隐式(implicit)的结果如下图所示:
可以看出,隐式算法是绝对收敛的,每一步都没有偏离真实值,而由于时间步长取得很长,所以显式算法的结果远远偏离了真实值。
当把时间步缩小到0.05时,显示算法的结果如下图所示:
可以看出,当把时间步取得很小时,显示算法可以很接近真实值。
上面主要讲了隐式和显式算法的差别,下面我们来看看这两种方法在动力学分析中的运用和差别。
动力学分析(Dynamics Analysis)
静力学(static)分析不考虑质量/阻尼和时间,而动力学分析需要考虑系统阻尼和时间的变化。
首先大家要知道有限元分析FEA的输出是什么,虽然我们可以从仿真后处理中得到很多的结果,如应力,应变,位移等等,但本质上,所有的物理量都是通过先计算出节点处的位移,然后导出应变,再通过应变根据材料力学的理论导出其它物理量的,这一点大家要记住。
在有限元分析中,动力学分析的基本方程是由如下方程导出和决定的:
[M]{a} + [C]{v} + [K]{x} = {F}
其中[M]是质量矩阵,[C]为阻尼矩阵,[K]为刚度矩阵,a为加速度,v为速度,x为位移,{F}表示外力。
如果我们把方程写为导数的形式,则有:
所以这里的加速度,速度和位移是彼此关联的,这很有用。
这个方程大家可能不陌生,在前面讲到模态分析时提到过这个方程,当时说的模态分析是不需要考虑质量和阻尼的,所以方程也较简单,只考虑刚度。
刚度的导出大家可能不怎么熟悉,刚度在有限元分析中占有很重要的地位。
隐式动力学(explicit dynamic)
在动力学分析中,隐式分析直接计算位移x,而要求得位移x,就需要对刚度矩阵K进行求逆(inversion),而计算机在进行矩阵求逆时,需要耗费大量时间和计算机内存。
可能有人会问为什么需要对刚度矩阵K求逆呢,学过线形代数的都知道,要求位移x,那么我们需要对方程做如下变动:
而,所以有:
所以对刚度矩阵K求逆是必须的。
显式动力学(explicit dynamic)
在动力学分析中,显式分析先计算加速度a,再通过积分算法分别导出速度v和位移x。
比如一旦在时刻n求得了加速度,速度会在n+1/2时刻计算出,然后位移在n+1时刻求出(相当于一个时间步长),然后通过位移导出应变(strain),在通过应变导出应力(stress)。
可能有人会问,和隐式动力学类似,要求得加速度a,不是一样要对质量矩阵M求逆吗,是的,但这里M的导出远远比刚度矩阵简单很多,而且M可以简化为对角矩阵,所以对M不需要直接求逆,通过简单的矩阵乘法就可以得出逆矩阵。
计算的效率
在动力学分析中,显式法和隐式法在计算时间上各有优缺点
o显示动力学由于是间接求得位移x的,和前面类似,要取得足够的精度,需要取很短的时间步长,所以需要进行很多步计算,但每一步计算需要的时间很短
o隐式动力学由于是直接求得位移x,所以不存在收敛性问题,但由于动力学分析往往涉及到非线性(几何非线性,材料非线性等),可能每一步都要进行刚度的求逆,非常耗时,但时间步长相对显示算法可以取得很大。
适用范围
o虽然在计算效率上各有优势,但总的来说,在动力学分析中,主要还是采用显式算法,因为在动力学分析中,如频率响应分析,响应谱分析等等,往往时间很短,要获得较好的结果,需要取很短的时间步长来捕捉瞬时的响应,这时候显示动力学就很有用,而且在计算时间上也具有较大优势。
o隐式算法主要还是用于时间周期较长的非线性分析(Nonlinear analysis),属于静力学分析的范畴,当然也包括动力学分析里面特殊的准静力分析(quasi-static)。
静力学分析中是不会用到显式算法的,动力学分析中主要采用显式算法(特别是响应时间很短的问题),当然也可以采用隐式算法,但需要选择较为合适的时间步长,当时间步长取得合适时,抛开计算时间,两种算法的结果是相差不大的,同一个问题大家可以两种方法都试一试,但总的来说,动力学分析大多数问题还是采用显示算法的。
显式算法的例子:
物体以高速(比如2000m/s)落在一个平板上,交互时间为0.2秒时
飞机着陆时的瞬时响应隐式算法的例子:
钣金成型过程的非线性分析。