def model(kpts_kv):
    """ simple third order model
        Parameters:
            kpts_kv: (nk, 3)-shape ndarray
                units of (1 / Bohr)
    """
    import numpy as np
    k_kx, k_ky, k_kz = kpts_kv[:, (0)], kpts_kv[:, (1)], kpts_kv[:, (2)]
    ones = np.ones(len(k_kx))
    A_dp = np.array([k_kx ** 2, k_ky ** 2, k_kz ** 2, k_kx * k_ky, k_kx *
        k_kz, k_ky * k_kz, k_kx, k_ky, k_kz, ones, k_kx ** 3, k_ky ** 3, 
        k_kz ** 3, k_kx ** 2 * k_ky, k_kx ** 2 * k_kz, k_ky ** 2 * k_kx, 
        k_ky ** 2 * k_kz, k_kz ** 2 * k_kx, k_kz ** 2 * k_ky, k_kx * k_ky *
        k_kz]).T
    return A_dp
