帮助使用基本的三角有限元,构建刚度/质量矩阵

计算科学 有限元
2021-12-06 06:09:49

我正在处理这个示例问题(下图)并自己解决。问题是我没有得到与示例问题相同的质量矩阵 (M)。我能够得到相同的刚度矩阵(K)。我使用了相同的过程来获得刚度​​矩阵,它使用了连接数组,但最终没有得到示例中提供的相同质量矩阵。有人可以帮我确认给定示例中的质量矩阵是正确还是不正确? 在此处输入图像描述

这是我得到的:

{
 {4, 1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0},
 {1, 6, 1, 0, 2, 2, 0, 0, 0, 0, 0, 0},
 {0, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0},
 {1, 0, 0, 6, 2, 0, 1, 2, 0, 0, 0, 0},
 {2, 2, 0, 2, 12,2, 0, 2, 2, 0, 0, 0},
 {0, 2, 1, 0, 2, 6, 0, 0, 1, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 6, 2, 0, 1, 2, 0},
 {0, 0, 0, 2, 2, 0, 2, 12,2, 0, 2, 2},
 {0, 0, 0, 0, 2, 1, 0, 2, 6, 0, 0, 1},
 {0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 1, 0},
 {0, 0, 0, 0, 0, 0, 2, 2, 0, 1, 6, 1},
 {0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 4}
}
2个回答

假设 m 是质量/面积,示例中的等式 (b) 是正确的。但是,当我为图 9.21 中的模型创建全局质量矩阵时,我得到的是您显示的那个,而不是文本中的那个(等式 e)。

您必须注意的一件事是,在三角形上积分质量矩阵项需要比刚度矩阵项更高阶的积分公式。对于刚度项,单个积分点给出积分的精确值;对于质量项,需要三个积分点。

我没有逐个元素地检查两个质量矩阵(你的和图片中的那个),但你的矩阵似乎更正确。它可以很容易地通过对角元素进行估计:由于局部质量矩阵对于每个元素都是恒定的,并且在其对角线上只有 2(不管矩阵系数),全局矩阵的对角元素除以 2 应该给出三角形的数量对应的网格顶点所属。假设顶点 1 属于 2 个三角形,所以全局矩阵的对角元素 1 应该有 2*2 = 4。顶点 2 属于 3 个三角形,所以第二行的对角线应该有 2*3=6的全局矩阵。在您的矩阵中它是 6,但在图片中的矩阵中它是 4。

编辑:

作为再次检查整个矩阵以确保您的矩阵正确且文本中的矩阵不正确的请求,我在 Octave 中编写了这个简单的矩阵组装函数。它没有考虑系数,因为它对于局部矩阵和全局矩阵是相同的,问题只是关于组装:

globalM = zeros(12, 12);
localM = [ [2 1 1]; [1 2 1]; [1 1 2] ];
connect = [ [1 4 5]; [1 5 2]; [2 5 6]; [2 6 3]; [4 7 8]; [4 8 5]; [5 8 9]; [5 9 6]; [7 10 11]; [7 11 8]; [8 11 12]; [8 12 9] ];
for el = 1:12
  for i = 1:3
    ii = connect(el, i);
    for j = 1:3
      jj = connect(el, j);
      globalM(ii, jj) = globalM(ii, jj) + localM(i, j);
    end
  end
end

结果清楚地表明您的矩阵是正确的:

4    1    0    1    2    0    0    0    0    0    0    0
1    6    1    0    2    2    0    0    0    0    0    0
0    1    2    0    0    1    0    0    0    0    0    0
1    0    0    6    2    0    1    2    0    0    0    0
2    2    0    2   12    2    0    2    2    0    0    0
0    2    1    0    2    6    0    0    1    0    0    0
0    0    0    1    0    0    6    2    0    1    2    0
0    0    0    2    2    0    2   12    2    0    2    2
0    0    0    0    2    1    0    2    6    0    0    1
0    0    0    0    0    0    1    0    0    2    1    0
0    0    0    0    0    0    2    2    0    1    6    1
0    0    0    0    0    0    0    2    1    0    1    4