def elemLoad(p, n, f): import FEM as FEM fK = zeros((3,1)) Phi = np.array([p[1]-p[0], p[2]-p[0]]) [x, w] = FEM.gaussTriangle(n) z = [] for i in range(len(x)): shifted = list(map(lambda x: (x+1)/2,x[i])) z.append(shifted) for i in range(3): for j in range(len(x)): ab = [0,0] ab[0] = Phi[0].dot(z[j]) ab[1] = Phi[1].dot(z[j]) fK[i] = fK[i] + 1/4*w[j]*f(ab[0],ab[1])*N(z[j],i) return fK
def elemLoad(p, n, f): fK = zeros((3,1)) # p=np.array(p) # Phi = np.zeros((2,2)) # Phi[:,0]=p[1,:]-p[0,:] # Phi[:,1]=p[2,:]-p[0,:] # Phi = np.array([p[1]-p[0], p[2]-p[0]]) Phi = np.column_stack((p[1]-p[0],p[2]-p[0])) [x, w] = FEM.gaussTriangle(n) z = [] for i in range(len(x)): shifted = list(map(lambda x: (x+1)/2,x[i])) z.append(shifted) for i in range(3): for j in range(len(x)): ab = [0,0] ab[0] = Phi[0].dot(z[j])+p[0][0] ab[1] = Phi[1].dot(z[j])+p[0][1] fK[i] = fK[i] + det(Phi)*w[j]*f(ab[0],ab[1])*N(z[j],i)/4 return fK