Пример #1
0
 def setUp(self):
     self.olc = OverlapCalculator()
     if not hasattr(self, 'rutile'):
         type(self).rutile = loadObjCrystCrystal('rutile.cif')
     if not hasattr(self, 'nickel'):
         type(self).nickel = loadObjCrystCrystal('Ni.cif')
     return
Пример #2
0
 def setUp(self):
     self.olc = OverlapCalculator()
     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
Пример #3
0
 def test_parallel(self):
     """check parallel run of OverlapCalculator
     """
     import multiprocessing
     from diffpy.srreal.parallel import createParallelCalculator
     ncpu = 4
     self.pool = multiprocessing.Pool(processes=ncpu)
     olc = self.olc
     polc = createParallelCalculator(OverlapCalculator(), ncpu,
                                     self.pool.imap_unordered)
     olc.atomradiitable.fromString('Ti:1.6, O:0.66')
     polc.atomradiitable = olc.atomradiitable
     self.assertTrue(numpy.array_equal(olc(self.rutile), polc(self.rutile)))
     self.assertTrue(olc.totalsquareoverlap > 0.0)
     self.assertEqual(olc.totalsquareoverlap, polc.totalsquareoverlap)
     self.assertEqual(sorted(zip(olc.sites0, olc.sites1)),
                      sorted(zip(polc.sites0, polc.sites1)))
     olc.atomradiitable.resetAll()
     self.assertEqual(0.0, sum(olc(self.rutile)))
     self.assertEqual(0.0, sum(polc(self.rutile)))
     return