- 积分
- 21
- 注册时间
- 2003-5-13
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2004-11-23 13:15:25
|
显示全部楼层
来自 美国
Re:【讨论】关于显式和隐式
Q: What is the difference between implicit and explicit dynamics? (Difference between regular ANSYS and ANSYS/LS-DYNA?)
A:For computers, matrix multiplication isn't difficult. Matrix inversion is the more computationally expensive operation. The equations we solve in nonlinear, dynamic analyses in ANSYS and in LS-DYNA are:
[M]{a} + [C]{v} + [K]{x} = {F}
Hence, in ANSYS, we need to invert the [K] matrix when using direct solvers (frontal, sparse). Iterative solvers use a different technique from direct solvers which I won't get into here, but, basically, the inversion of [K] is the CPU-intensive operation for any 'regular' ANSYS solver, direct or iterative. We then can solve for displacements {x}. Of course, with nonlinearities, [K(x)] is also a function of {x}, so we need to use Newton-Raphson method to solve for [K] as well. (material nonlinearities and contact get thrown into [K(x)])
In LS-DYNA, on the other hand, we solve for accelerations {a} first. Now, in LS-DYNA, we assume that the mass matrix is lumped. This basically forces us to use lower-order elements -- that is why, for all explicit dynamics codes (ANSYS/LS-DYNA, MSC.Dytran, ABAQUS/Explicit), we can only use lower-order elements. Also, the benefit of doing lumped mass is that, if we solve for {a}, then [M], if lumped, is a diagonal mass matrix. This means that inversion of [M] is trivial (diagonal terms only) -- another way to view it is that we now have N set of *uncoupled* equations. Hence, we just have to do matrix multiplication, which isn't nearly as CPU-intensive. It's also worthwhile to note that [K] does not need to be inverted, and accounting for material nonlinearties and contact is easier.
Now, as for time integration, the terms 'implicit' and 'explicit' refer to time integration -- for example, if you might recall something like backward Euler method, that is an example of an implicit time integration scheme, whereas central difference or forward Euler are examples of explicit time integration schemes. It relates to when you calculate the quantities -- either based on current or previous time step. In any case, this is a very simplified explanation, and the main point is that implicit time integration is unconditionally stable, whereas explicit time integration is not (there is a critical time step your delta(t) needs to be smaller than). As a result, 'regular' ANSYS allows for much larger time steps, but LS-DYNA requires much tinier time steps. Also, LS-DYNA requires very tiny steps, so that is why it is usually good for impact/short-duration events, not usually things like maybe creep where the model's time scale may be on the order of hours or more.
In summary:
'Regular' ANSYS uses implicit time integration. This means that {x} is solved for, but we need to invert [K], which means that each iteration is computationally expensive. However, because we solve for {x}, it is implicit, and we don't need very tiny timesteps (i.e., each iteration is expensive, but we usually don't need too many iterations total). The overall timescale doesn't affect us much (although there are considerations of small enough timesteps for proper momentum transfer, capturing dynamic response, etc., but I'm getting ahead of myself).
ANSYS/LS-DYNA uses explicit time integration. This means that {a} is solved for, and inverting [M] is trivial -- each iteration is very efficient. However, because we solve for {a}, then determine {x}, it is explicit, and we need very small timesteps (many, many iterations) to ensure stability of solution since we get {x} by calculating {a} first. (i.e., each iteration is cheap, but we usually need many, many iterations total)
Anyways, this is a very simplified (maybe over-simplified) explanation, but I hope it may help clear the distinction between these two methods. For very high-impact, nonlinear events of *short* duration, ANSYS/LS-DYNA is usually the better choice. For events which are of long duration, 'regular' ANSYS is usually the preferred method. For quasi-static events, there are ways in which you can use either solution method (e.g., mass-scaling for explicit). However, you can solve most problems with either method -- I'm just referring to which ones are more *efficient*. [Note that I haven't talked about mode-superposition transient analyses, which is an efficient subset of 'regular' ANSYS for mostly linear behavior, but it is efficient because we uncouple the equations in the frequency domain rather than time domain, but I've probably digressed enough already...] |
评分
-
1
查看全部评分
-
|