def METHOD_NAME(self, node, A, B, isFreeNode):
    NN = self.mesh.number_of_nodes() 
    D = spdiags(1.0/A.diagonal(), 0, NN, NN)
    C = -(triu(A, 1) + tril(A, -1))
    X = D*(C*node[:, 0] - B*node[:, 1])
    Y = D*(B*node[:, 0] + C*node[:, 1])
    p = np.zeros((NN, 2)) 
    p[isFreeNode, 0] = X[isFreeNode] - node[isFreeNode, 0]
    p[isFreeNode, 1] = Y[isFreeNode] - node[isFreeNode, 1]
    node +=100*p/NN