def _check_point(self, meth, periodic):
        sel = Parser.parse('point 5.0 5.0 5.0  3.0', self.u.atoms)
        sel = self.choosemeth(sel, meth, periodic)
        result = sel.apply(self.u.atoms)

        box = self.u.dimensions if periodic else None
        d = distance_array(np.array([[5.0, 5.0, 5.0]], dtype=np.float32),
                           self.u.atoms.positions,
                           box=box)
        ref = set(np.where(d < 3.0)[1])

        assert_(ref == set(result.indices))
Exemplo n.º 2
0
    def _check_point(self, meth, periodic):
        sel = Parser.parse('point 5.0 5.0 5.0  3.0', self.u.atoms)
        sel = self.choosemeth(sel, meth, periodic)
        result = sel.apply(self.u.atoms)

        box = self.u.dimensions if periodic else None
        d = distance_array(np.array([[5.0, 5.0, 5.0]], dtype=np.float32),
                           self.u.atoms.positions,
                           box=box)
        ref = set(np.where(d < 3.0)[1])

        assert_(ref == set(result.indices))
    def _check_spherical_zone(self, meth, periodic):
        sel = Parser.parse('sphzone 5.0 resid 1', self.u.atoms)
        sel = self.choosemeth(sel, meth, periodic)
        result = sel.apply(self.u.atoms)

        r1 = self.u.select_atoms('resid 1')
        cog = r1.center_of_geometry().reshape(1, 3)

        box = self.u.dimensions if periodic else None
        d = distance_array(self.u.atoms.positions, cog, box=box)
        ref = set(np.where(d < 5.0)[0])

        assert_(ref == set(result.indices))
Exemplo n.º 4
0
    def _check_spherical_zone(self, meth, periodic):
        sel = Parser.parse('sphzone 5.0 resid 1', self.u.atoms)
        sel = self.choosemeth(sel, meth, periodic)
        result = sel.apply(self.u.atoms)

        r1 = self.u.select_atoms('resid 1')
        cog = r1.center_of_geometry().reshape(1, 3)

        box = self.u.dimensions if periodic else None
        d = distance_array(self.u.atoms.positions, cog, box=box)
        ref = set(np.where(d < 5.0)[0])

        assert_(ref == set(result.indices))
    def _check_around(self, meth, periodic):
        sel = Parser.parse('around 5.0 resid 1', self.u.atoms)
        sel = self.choosemeth(sel, meth, periodic)
        result = sel.apply(self.u.atoms)

        r1 = self.u.select_atoms('resid 1')
        cog = r1.center_of_geometry().reshape(1, 3)

        box = self.u.dimensions if periodic else None
        d = distance_array(self.u.atoms.positions, r1.positions, box=box)
        ref = set(np.where(d < 5.0)[0])

        # Around doesn't include atoms from the reference group
        ref.difference_update(set(r1.indices))
        assert_(ref == set(result.indices))
Exemplo n.º 6
0
    def _check_around(self, meth, periodic):
        sel = Parser.parse('around 5.0 resid 1', self.u.atoms)
        sel = self.choosemeth(sel, meth, periodic)
        result = sel.apply(self.u.atoms)

        r1 = self.u.select_atoms('resid 1')
        cog = r1.center_of_geometry().reshape(1, 3)

        box = self.u.dimensions if periodic else None
        d = distance_array(self.u.atoms.positions, r1.positions,
                           box=box)
        ref = set(np.where(d < 5.0)[0])

        # Around doesn't include atoms from the reference group
        ref.difference_update(set(r1.indices))
        assert_(ref == set(result.indices))
    def _check_cyzone(self, meth, periodic):
        sel = Parser.parse('cyzone 5 4 -4 resid 2', self.u.atoms)
        sel.periodic = periodic
        result = sel.apply(self.u.atoms)

        other = self.u.select_atoms('resid 2')
        pos = other.center_of_geometry()

        vecs = self.u.atoms.positions - pos
        if periodic:
            box = self.u.dimensions[:3]
            vecs -= box * np.rint(vecs / box)

        mask = (vecs[:, 2] > -4) & (vecs[:, 2] < 4)

        radii = vecs[:, 0]**2 + vecs[:, 1]**2
        mask &= radii < 5**2

        ref = set(self.u.atoms[mask].indices)

        assert_(ref == set(result.indices))