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
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
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