Пример #1
0
    def test_get_virtual_site(self):
        """Test Topology.virtual_site function (get virtual site from index)"""
        topology = Topology()
        topology.add_molecule(self.ethane_from_smiles_w_vsites)
        assert topology.n_topology_virtual_sites == 2
        topology.add_molecule(self.propane_from_smiles_w_vsites)
        assert topology.n_topology_virtual_sites == 4
        with self.assertRaises(Exception) as context:
            topology_vsite = topology.virtual_site(-1)
        with self.assertRaises(Exception) as context:
            topology_vsite = topology.virtual_site(4)
        topology_vsite1 = topology.virtual_site(0)
        topology_vsite2 = topology.virtual_site(1)
        topology_vsite3 = topology.virtual_site(2)
        topology_vsite4 = topology.virtual_site(3)
        assert topology_vsite1.type == "BondChargeVirtualSite"
        assert topology_vsite2.type == "MonovalentLonePairVirtualSite"
        assert topology_vsite3.type == "MonovalentLonePairVirtualSite"
        assert topology_vsite4.type == "BondChargeVirtualSite"

        n_equal_atoms = 0
        for topology_atom in topology.topology_atoms:
            for vsite in topology.topology_virtual_sites:
                for vsite_atom in vsite.atoms:
                    if topology_atom == vsite_atom:
                        n_equal_atoms += 1

        # There are four virtual sites -- Two BondCharges with 2 atoms, and two MonovalentLonePairs with 3 atoms
        assert n_equal_atoms == 10
Пример #2
0
    def test_topology_virtual_site_particle_start_index(self):

        topology = Topology()
        topology.add_molecule(self.propane_from_smiles_w_vsites)
        assert topology.virtual_site(
            0).topology_virtual_particle_start_index == 11
        assert topology.virtual_site(
            1).topology_virtual_particle_start_index == 13
Пример #3
0
    def test_topology_virtual_site_n_particles(self):
        """
        Test if the virtual sites report the correct number of particles
        """
        topology = Topology()
        topology.add_molecule(self.propane_from_smiles_w_vsites)
        assert topology.virtual_site(0).n_particles == 2
        assert topology.virtual_site(1).n_particles == 1

        topology = Topology()
        topology.add_molecule(self.tip5_water)
        assert topology.virtual_site(0).n_particles == 2