def _good_case(self, name=None):

        # calculation of powder data
        good_data = self._get_good_data(filename=name)

        good_tester = AbinsModules.CalculatePowder(
            filename=AbinsModules.AbinsTestHelpers.find_file(filename=name +
                                                             ".phonon"),
            abins_data=good_data["DFT"])
        calculated_data = good_tester.calculate_data().extract()

        # check if evaluated powder data  is correct
        for key in good_data["powder"]:
            for i in good_data["powder"][key]:
                self.assertEqual(
                    True,
                    np.allclose(good_data["powder"][key][i],
                                calculated_data[key][i]))

        # check if loading powder data is correct
        new_tester = AbinsModules.CalculatePowder(
            filename=AbinsModules.AbinsTestHelpers.find_file(name + ".phonon"),
            abins_data=good_data["DFT"])
        loaded_data = new_tester.load_formatted_data().extract()
        for key in good_data["powder"]:
            for i in good_data["powder"][key]:
                self.assertEqual(
                    True,
                    np.allclose(calculated_data[key][i], loaded_data[key][i]))
    def _calculate_s(self):

        powder_calculator = AbinsModules.CalculatePowder(filename=self._input_filename, abins_data=self._abins_data)
        powder_data = powder_calculator.get_formatted_data()
        calculate_s_powder = None
        if self._instrument.get_name() in AbinsModules.AbinsConstants.ONE_DIMENSIONAL_INSTRUMENTS:
            calculate_s_powder = self._calculate_s_powder_1d
        s_data = calculate_s_powder(powder_data=powder_data)

        return s_data
Beispiel #3
0
    def _calculate_s(self):

        # calculate powder data
        powder_calculator = AbinsModules.CalculatePowder(filename=self._input_filename, abins_data=self._abins_data)
        powder_calculator.get_formatted_data()

        # free memory
        self._abins_data = None
        gc.collect()

        # calculate S
        calculate_s_powder = None
        if self._instrument.get_name() in AbinsModules.AbinsConstants.ONE_DIMENSIONAL_INSTRUMENTS:
            calculate_s_powder = self._calculate_s_powder_1d

        s_data = calculate_s_powder()

        return s_data