def cal_k_vinet_from_v(v, v0, k0, k0p):
    """
    calculate bulk modulus in GPa

    :param v: unit-cell volume in A^3
    :param v0: unit-cell volume in A^3 at 1 bar
    :param k0: bulk modulus at reference conditions
    :param k0p: pressure derivative of bulk modulus at reference conditions
    :return: bulk modulus at high pressure in GPa
    """
    x = v / v0
    y = np.power(x, 1. / 3.)
    eta = 1.5 * (k0p - 1.)
    k = k0 * np.power(y, -2.) * (1. + (eta * y + 1.) * (1. - y)) * \
        unp.exp((1. - y) * eta)
    return k
calculate bulk modulus in GPa

    :param v: unit-cell volume in A^3
    :param v0: unit-cell volume in A^3 at 1 bar
    :param k0: bulk modulus at reference conditions
    :param k0p: pressure derivative of bulk modulus at reference conditions
    :return: bulk modulus at high pressure in GPa