背景
在solid fem中,我们经常解决
如果不约束位移,上述方程不能解,因为系统可以有刚体运动。
在二维情况下,刚体运动是沿轴,沿平移轴和旋转。为了让问题得到解决,必须应用至少 3 个约束。
在 3D 情况下,刚体运动是沿轴,并沿旋转轴。为了让问题得到解决,必须应用至少 6 个约束。
在matlab中,我们可以约束自由度为零
K(i,:)=0;
K(:,i)=0;
K(i,i)=1;
P(i)=0;
我的问题
如果现在,我得到一个矩阵,它可能是受约束的,也可能是不受约束的,或者不是完全受约束的。如何确定需要对系统应用哪个约束才能解决问题?或者我如何确定应该对系统应用哪个刚体约束?
例如:在二维情况下,假设受约束翻译,我怎样才能发现我应该限制旋转?
我的理解
我知道计算矩阵的秩可以用来确定问题是否可以解决,但不能用来确定它缺少哪种约束。
我正在使用 C++,我正在使用 pardiso,eigen 来解决线性系统。如果该方法可以很容易实现,那就太好了。
任何建议都会有很大帮助。谢谢你的时间。