全局刚度矩阵FEM中的值错误

时间:2018-03-17 18:12:33

标签: python numpy math matrix

所以我在我的硕士论文中使用FEM,并被要求制作一个装配" local"刚度矩阵(每个元素有4个节点,每个节点只有1个自由度)。以下是" local"和"全球"我的分析系统:

Local and global systems

因此,假设两个元素的局部刚度矩阵相同,并由下式给出:

Local stiffness matrix

我制作了一个脚本,在这个例子中组装了2个元素的刚度矩阵:

def stiff_mat_assemble(mesh, stiff_mat_ele): #stiff_mat_ele is the "local stiffness matrix"
'''
mesh - tuple of the mesh created
mesh[0] is a n*2 array (n - total number of nodes), and stores the coordinates of each node
mesh[1] is a 4*4 array, stores the nodes of each element
'''
global_stiff_mat = np.zeros((mesh[0].shape[0],mesh[0].shape[0])) #Gives a matrix n*n, n being the number of nodes in each direction

for element in mesh[1]: #cycles through all elements
    for i in element: #i global
        for j in element: #j global
           i_index = get_index_int(element, i) #gives the local index of "i"
           j_index = get_index_int(element, j) #gives the local index of "j"
           global_stiff_mat[i,j] += stiff_mat_ele[i_index, j_index] 

return global_stiff_mat

结果是这个全局刚度矩阵:

Global stiffness matrix

问题在于我得到了这个矩阵的逆的非常奇怪的值:

Global stiffness matrix Inverse

而且,通过我所读到的,这个矩阵的逆,应该等于原始矩阵:(K ^ -1)^ - 1 = K.这就是为什么我认为我犯了一个错误在那个剧本中,但是我无法弄清楚错误是什么......如果有人可以帮助我,我将非常感激,因为我仍然是一个乞丐! 提前致谢

0 个答案:

没有答案