コード例 #1
0
ファイル: testase.py プロジェクト: shivupa/cclib
    def test_write_and_read_trivial_trajectories(self):
        """Ensure write and read trajectory files with single structures."""
        # An open-shell single point calculation.
        data = ccopen("data/ORCA/basicORCA4.2/dvb_sp_un.out").parse()
        cclib2ase.write_trajectory("dvb_sp_un.traj", data)
        trajdata = cclib2ase.read_trajectory("dvb_sp_un.traj")

        assert np.allclose(trajdata.atomcoords, data.atomcoords)
        assert np.allclose(trajdata.scfenergies, data.scfenergies)
        # No grads here.

        assert np.allclose(trajdata.atomnos, data.atomnos)
        assert np.allclose(trajdata.atommasses, data.atommasses)
        assert np.allclose(trajdata.natom, data.natom)
        assert np.allclose(trajdata.charge, data.charge)
        assert np.allclose(trajdata.mult, data.mult)
        assert np.allclose(trajdata.moments, data.moments)

        # No temperature here.
        # No freeenergy here.

        assert np.allclose(trajdata.atomcharges["mulliken"],
                           data.atomcharges["mulliken"])
        assert np.allclose(trajdata.atomspins["mulliken"],
                           data.atomspins["mulliken"])

        # A closed-shell single structure frequency calculation.
        data = ccopen("data/ORCA/basicORCA4.2/dvb_ir.out").parse()
        cclib2ase.write_trajectory("dvb_ir.traj", data)
        trajdata = cclib2ase.read_trajectory("dvb_ir.traj")

        assert np.allclose(trajdata.atomcoords, data.atomcoords)
        assert np.allclose(trajdata.scfenergies, data.scfenergies)
        # No grads here.

        assert np.allclose(trajdata.atomnos, data.atomnos)
        assert np.allclose(trajdata.atommasses, data.atommasses)
        assert np.allclose(trajdata.natom, data.natom)
        assert np.allclose(trajdata.charge, data.charge, atol=1e-5)
        assert np.allclose(trajdata.mult, data.mult)
        assert np.allclose(trajdata.moments, data.moments)

        # No temperature here.
        # No freeenergy here.

        assert np.allclose(trajdata.atomcharges["mulliken"],
                           data.atomcharges["mulliken"])
コード例 #2
0
ファイル: testase.py プロジェクト: shivupa/cclib
    def test_read_ase_native_trajectory(self):
        """Ensure we can read ASE native trajectory files."""
        trajdata = cclib2ase.read_trajectory("test/bridge/h2o.traj")

        assert np.allclose(len(trajdata.atomcoords), 7)
        assert np.allclose(  # initial structure
            trajdata.atomcoords[0], [[0, 0, 0], [1, 0, 0], [0, 1, 0]])
        assert np.allclose(trajdata.scfenergies[0], -324.61300863874163)
        assert np.allclose(  # final structure
            trajdata.atomcoords[-1],
            [
                [0.06884815, 0.06884815, -0.00000000],
                [1.00852115, -0.07736930, 0.00000000],
                [-0.07736930, 1.00852115, 0.00000000],
            ],
        )
        assert np.allclose(trajdata.scfenergies[-1], -324.9073873170798)

        assert np.allclose(trajdata.atomnos, [8, 1, 1])
        assert np.allclose(trajdata.atommasses, [15.999, 1.008, 1.008])
        assert np.allclose(trajdata.natom, 3)
        assert np.allclose(trajdata.charge, 0)
        assert np.allclose(trajdata.mult, 1)
コード例 #3
0
ファイル: testase.py プロジェクト: shivupa/cclib
    def test_write_and_read_opt_trajectories(self):
        """Ensure write and read trajectory files with optimizations."""
        # Geometry optimization.
        data = ccopen("data/ORCA/basicORCA4.2/dvb_gopt.out").parse()
        cclib2ase.write_trajectory("dvb_gopt.traj", data)
        trajdata = cclib2ase.read_trajectory("dvb_gopt.traj")

        assert np.allclose(trajdata.atomcoords, data.atomcoords)
        assert np.allclose(trajdata.scfenergies, data.scfenergies)
        assert np.allclose(trajdata.grads, data.grads)

        assert np.allclose(trajdata.atomnos, data.atomnos)
        assert np.allclose(trajdata.atommasses, data.atommasses)
        assert np.allclose(trajdata.natom, data.natom)
        assert np.allclose(trajdata.charge, data.charge)
        assert np.allclose(trajdata.mult, data.mult)
        assert np.allclose(trajdata.moments, data.moments, atol=1e-5)

        # No temperature here.
        # No freeenergy here.

        assert np.allclose(trajdata.atomcharges["mulliken"],
                           data.atomcharges["mulliken"])