如何处理浮点对象不是下标错误

时间:2018-12-20 14:41:47

标签: arraylist

我正在尝试使用FEM解决对流扩散问题,但出现此错误:

float' object is not subscriptable.

这是代码的一部分。请看一下。谢谢

r_diff = kappa / dx**2

r_adv = 0.5 * U / dx

for i in range(1, N_nodes_CG - 3):

    K[i, i - 1] = r_diff + r_adv

    K[i, i] = -2 * r_diff

    K[i, i + 1] = r_diff - r_adv

    RHS[i] = 0


RHS[0] = 0

K[0, 0] = (RHS[0]-x_nodes[0])/(RHS[1]-x_nodes[0])

K[0, 1] = (x_nodes[1]-RHS[0])/(x_nodes[1]-x_nodes[0])

RHS[-1] = CE 

K[-1, -2] = (x_nodes[-1] - RHS[-1]) /(x_nodes[-1]-x_nodes[-2])

K[-1, -1] = (RHS[-1] - x_nodes[-2])/(x_nodes[-1]-x_nodes[-2])

Mass_full = mass_matrix(x_nodes)

Mass = Mass_full[1:-3,1:-3]

K = np.diag(1. / dx[:-1]  +  1. / dx[1:] , k=0) \
     - np.diag(1. / dx[1:-1]   , k=-1) \
     - np.diag(1. / dx[1:-1]   , k=1)

for node in range(1, N_nodes_CG - 1):

    phi_i = hat_function(node, x_nodes)

    integrand = lambda x : f(x) * phi_i(x)

     RHS[node-1] = simpsons_rule(x_nodes[node-1], x_nodes[node+1], integrand, 2 )

RHS[0] = RHS[0] - (uL * 1/dx[0] * (-1/dx[0]))*dx[0]

RHS[-1] = RHS[-1] - (uR * (-1/dx[-1]) * (1/dx[-1]))*dx[-1]

D = -K + Mass

u = sl.solve(D, RHS)

错误:

float' object is not subscriptable

0 个答案:

没有答案