Exemplo n.º 1
0
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
Exemplo n.º 2
0
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