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

[电磁场] 关于There are 1 small equation solver pivot terms

[复制链接]
发表于 2011-9-20 15:14:57 | 显示全部楼层 |阅读模式 来自 四川成都
如题
出现这个问题的时候我尝试改过网格划分 在某个特定网格粗细的时候就没错
但是如果网格粗了或者细了都会出现这种错误
发表于 2011-9-23 10:37:10 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
There are 1 small equation solver pivot terms ,我也经常碰到,最终会以不收敛终止,不知啥原因
回复 不支持

使用道具 举报

发表于 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

点评

讲的非常正确,建议加精加分!  发表于 2012-4-25 08:51
回复 不支持

使用道具 举报

发表于 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。

点评

这个问题很无奈 我重新划分网格之后 约束没变计算没出现这个警告~~~ 就我的情况看,估计是生死单元的控制上有偏差导致的这个问题  发表于 2012-4-25 09:50
回复 不支持

使用道具 举报

发表于 2012-4-27 10:37:38 | 显示全部楼层 来自 大连理工大学
xbzhang 发表于 2012-4-25 09:07
俺翻译一下,可能不是很准确
简言之:
主元就是求解上三角矩阵时采用高斯消去法通过回代位移矢量求解出的第 ...

这里面提到的问题,我曾经都遇到过,最后总结的原因有两个:一个是约束,一个是网格。
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-9-29 09:28 , Processed in 0.034452 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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