def extrapolate_nu(self, nu1, nu2):

        self._sort()

        if nu1 >= self.nu[0]:

            logger.info("Lower frequency is inside existing range, no extrapolation will be done at the lowest frequencies")

        else:

            ex_c = extrap1d_log10(self.nu, self.chi)

            self.albedo = np.hstack([self.albedo[0], self.albedo])
            self.chi = np.hstack([ex_c(nu1), self.chi])
            self.nu = np.hstack([nu1, self.nu])

            self.P1 = np.vstack([self.P1[0, :], self.P1])
            self.P2 = np.vstack([self.P2[0, :], self.P2])
            self.P3 = np.vstack([self.P3[0, :], self.P3])
            self.P4 = np.vstack([self.P4[0, :], self.P4])

        if nu2 <= self.nu[-1]:

            logger.info("Upper frequency is inside existing range, no extrapolation will be done at the highest frequencies")

        else:

            ex_c = extrap1d_log10(self.nu, self.chi)

            self.albedo = np.hstack([self.albedo, self.albedo[-1]])
            self.chi = np.hstack([self.chi, ex_c(nu2)])
            self.nu = np.hstack([self.nu, nu2])

            self.P1 = np.vstack([self.P1, self.P1[-1, :]])
            self.P2 = np.vstack([self.P2, self.P2[-1, :]])
            self.P3 = np.vstack([self.P3, self.P3[-1, :]])
            self.P4 = np.vstack([self.P4, self.P4[-1, :]])
Extrapolate the optical properties to a larger frequency range.
dataset/ETHPy150Open hyperion-rt/hyperion/hyperion/dust/optical_properties.py/OpticalProperties.extrapolate_nu