Пример #1
0
class GlobalFunctionsTest(unittest.TestCase):
    def setUp(self):
        mgo_latt = [[4.212, 0, 0], [0, 4.212, 0], [0, 0, 4.212]]
        mgo_specie = ["Mg", 'O'] * 4
        mgo_frac_cord = [[0, 0, 0], [0.5, 0, 0], [0.5, 0.5, 0], [0, 0.5, 0],
                         [0.5, 0, 0.5], [0, 0, 0.5], [0, 0.5, 0.5],
                         [0.5, 0.5, 0.5]]
        self.mgo_uc = Structure(mgo_latt, mgo_specie, mgo_frac_cord, True,
                                True)
        bv = BVAnalyzer()
        val = bv.get_valences(self.mgo_uc)
        el = [site.species_string for site in self.mgo_uc.sites]
        self.val_dict = dict(zip(el, val))

    def test_get_energy_tersoff(self):
        p = Poscar.from_file(os.path.join(test_dir, 'POSCAR.Al12O18'),
                             check_for_POTCAR=False)
        structure = p.structure
        enrgy = get_energy_tersoff(structure)
        self.assertIsInstance(enrgy, float)
        print "tersoff energy", enrgy

    def test_get_energy_buckingham(self):
        enrgy = get_energy_buckingham(self.mgo_uc)
        self.assertIsInstance(enrgy, float)
        print "Buckingham energy for charge neutral structure", enrgy
        #test with vacancy structure
        self.mgo_uc.remove(0)
        energy = get_energy_buckingham(self.mgo_uc,
                                       keywords=('qok', 'optimise', 'conp'),
                                       valence_dict=self.val_dict)
        self.assertIsInstance(enrgy, float)
        print "Buckingham energy charged defect structure", enrgy

    def test_get_energy_relax_structure_buckingham(self):
        enrgy, struct = get_energy_relax_structure_buckingham(self.mgo_uc)
        self.assertIsInstance(enrgy, float)
        self.assertIsInstance(struct, Structure)
        site_len = len(struct.sites)
        self.assertEqual(site_len, len(self.mgo_uc.sites))
        print "Buckingham energy", enrgy
        print struct
        print self.mgo_uc
Пример #2
0
class GlobalFunctionsTest(unittest.TestCase):
    def setUp(self):
        mgo_latt = [[4.212, 0, 0], [0, 4.212, 0], [0, 0, 4.212]]
        mgo_specie = ["Mg",'O']*4 
        mgo_frac_cord = [[0,0,0], [0.5,0,0], [0.5,0.5,0], [0,0.5,0],
                         [0.5,0,0.5], [0,0,0.5], [0,0.5,0.5], [0.5,0.5,0.5]]
        self.mgo_uc = Structure(mgo_latt, mgo_specie, mgo_frac_cord, True, True)
        bv = BVAnalyzer()
        val = bv.get_valences(self.mgo_uc)
        el = [site.species_string for site in self.mgo_uc.sites]
        self.val_dict = dict(zip(el, val))

    def test_get_energy_tersoff(self):
        p = Poscar.from_file(os.path.join(test_dir, 'POSCAR.Al12O18'),
                             check_for_POTCAR=False)
        structure = p.structure
        enrgy = get_energy_tersoff(structure)
        self.assertIsInstance(enrgy, float)
        print "tersoff energy", enrgy

    def test_get_energy_buckingham(self):
        enrgy = get_energy_buckingham(self.mgo_uc)
        self.assertIsInstance(enrgy, float)
        print "Buckingham energy for charge neutral structure", enrgy
        #test with vacancy structure
        self.mgo_uc.remove(0)
        energy = get_energy_buckingham(self.mgo_uc, 
                keywords=('qok','optimise','conp'), valence_dict=self.val_dict)
        self.assertIsInstance(enrgy, float)
        print "Buckingham energy charged defect structure", enrgy

    def test_get_energy_relax_structure_buckingham(self):
        enrgy, struct = get_energy_relax_structure_buckingham(self.mgo_uc)
        self.assertIsInstance(enrgy, float)
        self.assertIsInstance(struct, Structure)
        site_len = len(struct.sites)
        self.assertEqual(site_len, len(self.mgo_uc.sites))
        print "Buckingham energy", enrgy
        print struct
        print self.mgo_uc