Exemplo n.º 1
0
def test_set_distance_noadjust(four_particle_45_twist):
    mol = four_particle_45_twist
    origpos = mol.positions.copy()
    olddist = mdt.distance(mol.atoms[1], mol.atoms[2])
    mdt.set_distance(mol.atoms[1],
                     mol.atoms[2],
                     2.0 * olddist,
                     adjustmol=False)

    assert abs(mdt.distance(mol.atoms[1], mol.atoms[2]) -
               2.0 * olddist) <= 1e-9 * u.angstrom
    assert (origpos[0]
            == mol.positions[0]).all() and (origpos[-1]
                                            == mol.positions[-1]).all()
def test_atomic_distance_measures_are_consistent(objkey, request):
    mol = request.getfuncargvalue(objkey)

    distance_array = mol.calc_distance_array()

    for i, j in itertools.product(xrange(3), xrange(3)):
        ai, aj = mol.atoms[i], mol.atoms[j]
        assert ai.distance(aj) == distance_array[i, j]
        assert mdt.distance(ai, aj) == distance_array[i, j]
        np.testing.assert_almost_equal(np.sum((ai.position - aj.position)**2).defunits_value(),
                                       (distance_array[i, j]**2).defunits_value(),
                                       decimal=10)
Exemplo n.º 3
0
def test_set_distance_and_adjust(four_particle_45_twist):
    mol = four_particle_45_twist
    origpos = mol.positions.copy()
    distance = mdt.DistanceMonitor(mol.atoms[1], mol.atoms[2])
    olddist = distance.value
    distance.value *= 2.0

    displacement = np.sqrt(((origpos[0] - mol.positions[0])**2).sum()) + \
                   np.sqrt(((origpos[-1] - mol.positions[-1])**2).sum())
    assert abs(mdt.distance(mol.atoms[1], mol.atoms[2]) -
               2.0 * olddist) <= 1e-9 * u.angstrom
    assert abs(displacement - olddist) < 1.0e-9 * u.angstrom
Exemplo n.º 4
0
def test_atomic_distance_measures_are_consistent(objkey, request):
    mol = request.getfixturevalue(objkey)

    distance_array = mol.calc_distance_array()

    for i, j in itertools.product(range(3), range(3)):
        ai, aj = mol.atoms[i], mol.atoms[j]
        assert ai.distance(aj) == distance_array[i, j]
        assert mdt.distance(ai, aj) == distance_array[i, j]
        np.testing.assert_almost_equal(np.sum(
            (ai.position - aj.position)**2).defunits_value(),
                                       (distance_array[i,
                                                       j]**2).defunits_value(),
                                       decimal=10)
 def distance(self, a1, a2):
     a1, a2 = list(map(self._get_traj_atom, (a1, a2)))
     return mdt.distance(a1, a2)