def METHOD_NAME(C, wS, mesh, aero_points, node_list, D=1.0):
    """spline function"""
    piD16 = np.pi * D * 16.
    nnodes = len(node_list)
    npoints = len(aero_points.keys())
    Cws = np.linalg.inv(C) * wS  # Cws matrix, P matrix
    wa = {}
    i = 0
    for iaero, aero_node in sorted(aero_points.items()):
        xK = np.zeros(nnodes+3, 'd')
        #nodeI = mesh.Node(iNode)
        xa, ya, za = aero_node
        xK[0] = 1.
        xK[1] = xa
        xK[2] = ya
        j = 3
        for jNode in node_list:
            sNode = mesh.Node(jNode)
            (xs, ys, zs) = sNode.get_position()
            Rij2 = (xa-xs)**2. + (ya-ys)**2  # Rij^2
            if Rij2 == 0.:
                xK[j] = 0.
            else:
                Kij = Rij2 * np.log(Rij2) / piD16  # natural log
                xK[j] = Kij
            j += 1
        wai = xK * Cws
        wa[iaero] = wai[0, 0]
        #print("w[%s]=%s" % (iAero, wi[0, 0]))
        i += 1
    #P = solve(C, wS)
    #C*P = wS
    #P = C^-1*wS
    return Cws, wa