コード例 #1
0
 def test_parallel_bonds(self):
     """check parallel BondCalculator
     """
     from diffpy.srreal.bondcalculator import BondCalculator
     nickel = self.nickel
     bc = BondCalculator()
     d0 = bc(nickel)
     pbc1 = createParallelCalculator(BondCalculator(), 3, map)
     d1 = pbc1(nickel)
     self.failUnless(numpy.array_equal(d0, d1))
     pbc2 = createParallelCalculator(BondCalculator(), self.ncpu,
                                     self.pool.imap_unordered)
     d2 = pbc2(nickel)
     self.failUnless(numpy.array_equal(d0, d2))
     bc.rmax = pbc1.rmax = pbc2.rmax = 2.5
     for bci in (bc, pbc1, pbc2):
         bci.maskAllPairs(False)
         bci.setPairMask(0, 'all', True)
         bci.filterCone([1, 0, 0], 48)
     d0a = bc(nickel)
     self.assertEqual(8, len(d0a))
     d1a = pbc1(nickel)
     self.failUnless(numpy.array_equal(d0a, d1a))
     d2a = pbc2(nickel)
     self.failUnless(numpy.array_equal(d0a, d2a))
     return
コード例 #2
0
 def setUp(self):
     self.bdc = BondCalculator()
     if not hasattr(self, 'rutile'):
         type(self).rutile = loadObjCrystCrystal('rutile.cif')
     if not hasattr(self, 'nickel'):
         type(self).nickel = loadObjCrystCrystal('Ni.cif')
     return
コード例 #3
0
 def setUp(self):
     self.bdc = BondCalculator()
     if not hasattr(self, 'rutile'):
         type(self).rutile = loadDiffPyStructure('rutile.cif')
     if not hasattr(self, 'nickel'):
         type(self).nickel = loadDiffPyStructure('Ni.stru')
     if not hasattr(self, 'niprim'):
         type(self).niprim = loadDiffPyStructure('Ni_primitive.stru')
     return
コード例 #4
0
 def test___init__(self):
     """check BondCalculator.__init__()
     """
     self.assertEqual(0, self.bdc.rmin)
     self.assertEqual(5, self.bdc.rmax)
     self.assertEqual(0, len(self.bdc.distances))
     bdc1 = BondCalculator(rmin=2, rmax=7)
     self.assertEqual(2, bdc1.rmin)
     self.assertEqual(7, bdc1.rmax)
     self.assertRaises(TypeError, BondCalculator, invalid=55)
     return
コード例 #5
0
 def test_distances(self):
     """check BondCalculator.distances
     """
     self.bdc.eval(self.nickel)
     dst = self.bdc.distances
     self.assertTrue(numpy.array_equal(dst, BondCalculator()(self.nickel)))
     self.assertTrue(numpy.array_equal(dst, numpy.sort(dst)))
     self.bdc.maskAllPairs(False)
     for i in range(4):
         self.bdc.setPairMask(0, i, True)
     dst0a = self.bdc(self.nickel)
     idx0a = (self.bdc.sites0 == 0)
     self.bdc.maskAllPairs(False)
     for i in range(4):
         self.bdc.setPairMask(3, i, True)
     dst3a = self.bdc(self.nickel)
     self.bdc.maskAllPairs(True)
     dstp = self.bdc(self.niprim)
     self.assertTrue(numpy.allclose(dst0a, dst3a))
     self.assertTrue(numpy.allclose(dst0a[idx0a], dstp))
     return