コード例 #1
0
    def test_to_wilhoit(self):
        """
        Test if the entropy computed from other thermo implementations is close to what Wilhoit computes.
        """

        from rmgpy import settings
        from rmgpy.data.rmg import RMGDatabase
        from rmgpy.species import Species

        # Load databases
        database = RMGDatabase()
        database.load_thermo(os.path.join(settings['database.directory'],
                                          'thermo'),
                             thermo_libraries=['Narayanaswamy'])
        database.load_solvation(
            os.path.join(settings['database.directory'], 'solvation'))

        spc = Species().from_smiles('CC')
        spc.get_thermo_data()

        T = 1350.  # not 298K!

        # nasa to wilhoit
        nasa = spc.thermo
        s_nasa = nasa.get_entropy(T)

        nasa_to_wh = nasa.to_wilhoit()
        s_nasa_to_wh = nasa_to_wh.get_entropy(T)

        self.assertAlmostEqual(s_nasa, s_nasa_to_wh, -1)
        self.assertEqual(nasa.comment, nasa_to_wh.comment)

        # wilhoit to nasa conversion done in nasaTest.py

        # thermo data to wilhoit:
        td = nasa.to_thermo_data()
        s_td = td.get_entropy(T)

        wilhoit = td.to_wilhoit(B=1000.)
        s_wh = wilhoit.get_entropy(T)

        self.assertAlmostEqual(s_td, s_wh, -1)
        self.assertEqual(td.comment, wilhoit.comment)

        # wilhoit back to thermodata
        td = wilhoit.to_thermo_data()
        s_td = td.get_entropy(T)

        self.assertAlmostEqual(s_td, s_wh, -1)
        self.assertEqual(td.comment, wilhoit.comment)
コード例 #2
0
    def test_to_nasa(self):
        """
        Test if the entropy computed from other thermo implementations is close to what NASA computes.
        """

        from rmgpy import settings
        from rmgpy.data.rmg import RMGDatabase
        from rmgpy.species import Species

        # Load databases
        database = RMGDatabase()
        database.load_thermo(os.path.join(settings['database.directory'],
                                          'thermo'),
                             thermo_libraries=['Narayanaswamy'])
        database.load_solvation(
            os.path.join(settings['database.directory'], 'solvation'))

        spc = Species().from_smiles('CC')
        spc.get_thermo_data()

        T = 1350.  # not 298K!

        # nasa to thermodata
        nasa = spc.thermo
        s_nasa = nasa.get_entropy(T)

        td = nasa.to_thermo_data()
        s_td = td.get_entropy(T)

        self.assertAlmostEqual(s_nasa, s_td, -1)
        self.assertEqual(td.comment, nasa.comment)

        # thermodata to nasa
        nasa = td.to_nasa(Tmin=100.0, Tmax=5000.0, Tint=1000.0)
        s_nasa = nasa.get_entropy(T)

        self.assertAlmostEqual(s_nasa, s_td, -1)
        self.assertEqual(td.comment, nasa.comment)

        # wilhoit to nasa
        wilhoit = nasa.to_wilhoit()
        nasa = wilhoit.to_nasa(Tmin=100.0, Tmax=5000.0, Tint=1000.0)
        s_nasa = nasa.get_entropy(T)

        self.assertAlmostEqual(s_nasa, s_td, -1)
        self.assertEqual(wilhoit.comment, nasa.comment)