sj360694 发表于 2011-9-20 15:14:57

关于There are 1 small equation solver pivot terms

如题
出现这个问题的时候我尝试改过网格划分 在某个特定网格粗细的时候就没错
但是如果网格粗了或者细了都会出现这种错误

dragonsea 发表于 2011-9-23 10:37:10

There are 1 small equation solver pivot terms ,我也经常碰到,最终会以不收敛终止,不知啥原因

201010202012 发表于 2012-4-24 16:22:04

This question seems to come up once every few years. I took the time to write up a few paragraphs of explanation back at the turn of the century, which is mostly as true today as it was then --

The term 'pivot' refers to the first non-zero term in the matrix when one is performing Gaussian elimination to upper-triangularize the matrix before finding the displacement vector by back-substitution. These concepts are most applicable to use of the frontal solver, but I believe they exist for other solvers, too.

Typically, the matrix being solved is the stiffness matrix. Consider, for example, a simple 1-d element with two nodes, x1 and x2. If the model is unconstrained, ANSYS will attempt to write two equations:

k(x1-x2) = 0
k(x2-x1) = 0

ANSYS tries to solve for these two equations and two unknowns by subtracting one equation from the other. However, you can quickly see that this technique won't work because the two equations are not independent, meaning that for any value of x1=x2, the equations are satisfied. In matrix manipulation space, ANSYS ends up with the following:

| k -k | x1 = | 0 |
| -k k | x2 = | 0 |

Using Gaussian elimination:

| k -k | x1 = | 0 |
| 0 0 | x2 = | 0 |

The second '0' that I've underlined is the 'pivot'. The zero pivot here means that you have made ANSYS write more equations than can be solve deterministically. The mathematical term for this is that the matrix failed to be "positive definite."

The practical upshot is that zero pivots always are caused by unconstrained problems.

The "small pivot" problem comes from the fact that computers don't give zero when doing subtraction using real variables. Instead, you get values like 1e-20, or even -1e-20. Hence, poorly constrained problems will tend to lead to exceedingly small pivots, near the roundoff level for the machine. To the best of my knowledge, there is no significance to whether these small pivots are negative or positive, although ANSYS will sometimes tell you that you have a "negative pivot," rather than a "small pivot." They both indicate the same problem.

Lastly, when you have a big stiffness difference between adjacent elements, poor constraint can result from asking ANSYS to do Gaussian elimination that causes it to calculated small differences between large numbers. In this case, you start to lose accuracy as the pivot gets to be very close to the roundoff error of the computer. This is why ANSYS will also complain about stiffness matrix ratios that exceed 1e8.

What do you do to figure out what is going on? One answer is to do a modal analysis and see what part goes flying off at near zero frequency. I try to think about where the offending DOF is in the model and try to visualize that part of the model moving as a rigid body.

http://www.xansys.org/forum/viewtopic.php?p=82282

xbzhang 发表于 2012-4-25 09:07:37

本帖最后由 xbzhang 于 2012-4-25 09:09 编辑

俺翻译一下,可能不是很准确
简言之:
主元就是求解上三角矩阵时采用高斯消去法通过回代位移矢量求解出的第一个非零项。波前求解器存在这个概念,其他求解器同样存在。

以求解1D单元的刚度矩阵为例,如果没有约束,则有如下的两个方程需要求解:
k(x1-x2) = 0
k(x2-x1) = 0

因为这两个方程不是独立的,在求解时会出现如下的问题:
| k -k | x1 = | 0 |
| -k k | x2 = | 0 |

使用高斯消去时,得到

| k -k | x1 = | 0 |
| 0 0 | x2 = | 0 |

矩阵当中的第二个零项,就定义为"pivot"。零主元意味着ANSYS还需要更多的方程去求解。要想求解这个矩阵必须使之正定。

实际上,这个问题多是由于约束问题引起的零主元。

小主元问题实际上就是计算机不能给出绝对的零,舍入误差和计算截断等计算机数值计算的原因,给出的甚至是"negative pivot,rather than a "small pivot."他们实际是一回事。

最后,当模型中相邻单元存在大的刚度差异时,少量的约束会使ANSYS在高斯消去时要计算两个大数之间的差值,这种情况下,计算机会出现舍入误差从而使矩阵项丧失精度。出现高度矩阵比超过1E8。

xbzhang 发表于 2012-4-27 10:37:38

xbzhang 发表于 2012-4-25 09:07 static/image/common/back.gif
俺翻译一下,可能不是很准确
简言之:
主元就是求解上三角矩阵时采用高斯消去法通过回代位移矢量求解出的第 ...

这里面提到的问题,我曾经都遇到过,最后总结的原因有两个:一个是约束,一个是网格。
页: [1]
查看完整版本: 关于There are 1 small equation solver pivot terms