def test_GWspect_test(self): """ Testing warnings and errors of gwspecs """ spec = GWSpecs() spec.test() self.assertEqual(len(spec.warnings), 0) self.assertEqual(len(spec.errors), 0)
def setUp(self): """ Testing GWVaspInputSetTests setUp """ self.structure = structure self.spec = GWSpecs() self.spec.data['code'] = 'VASP' self.spec.update_code_interface()
class GWVaspInputSetTests(PymatgenTest): def setUp(self): """ Testing GWVaspInputSetTests setUp """ self.structure = structure self.spec = GWSpecs() self.spec.data['code'] = 'VASP' self.spec.update_code_interface() def test_GWscDFTPrepVaspInputSet(self): """ Testing GWVaspInputSetTests GWscDFTPrepVaspInputSet """ inpset = GWscDFTPrepVaspInputSet(structure=self.structure, spec=self.spec) self.assertIsInstance(inpset, GWscDFTPrepVaspInputSet) self.assertEqual(inpset.convs, {}) @unittest.skipIf(POTCAR_DIR is None, "POTCAR dir is None") def test_GWDFTDiagVaspInputSet(self): """ Testing GWVaspInputSetTests GWDFTDiagVaspInputSet """ self.maxDiff = None inpset = GWDFTDiagVaspInputSet(structure=self.structure, spec=self.spec) self.assertIsInstance(inpset, GWDFTDiagVaspInputSet) self.assertEqual(inpset.convs, {u'NBANDS': {u'test_range': (10, 20, 30, 40, 50, 60, 70), u'control': u'gap', u'method': u'set_nbands'}}) self.assertEqual(inpset.incar_settings, {u'ALGO': u'Exact', u'EDIFF': 1e-10, u'IBRION': -1, u'ICHARG': 1, u'ISMEAR': -5, u'ISPIN': 1, u'LOPTICS': u'TRUE', u'LORBIT': 11, u'LREAL': u'AUTO', u'LWAVE': True, u'MAGMOM': {u'Co': 5, u'Cr': 5, u'Fe': 5, u'Mn': 5, u'Mn3+': 4, u'Mn4+': 3, u'Mo': 5, u'Ni': 5, u'V': 5, u'W': 5}, u'NBANDS': 240, u'NELM': 1, u'NPAR': 40, u'PREC': u'Medium', u'SIGMA': 0.01}) @unittest.skipIf(POTCAR_DIR is None, "POTCAR dir is None") def test_GWG0W0VaspInputSet(self): """ Testing GWVaspInputSetTests GWG0W0VaspInputSet """ inpset = GWG0W0VaspInputSet(structure=self.structure, spec=self.spec) self.assertIsInstance(inpset, GWG0W0VaspInputSet) self.assertEqual(inpset.convs, {u'ENCUTGW': {u'test_range': (200, 400, 600, 800), u'control': u'gap', u'method': u'incar_settings'}}) def test_SingleVaspGWWork(self): """ Testing GWVaspInputSetTests SingleVaspGWWork """ work = SingleVaspGWWork(structure=self.structure, spec=self.spec, job='prep') self.assertIsInstance(work, SingleVaspGWWork)
def test_GWConvergenceData(self): """ Testing the class GWConvergenceData """ spec = GWSpecs() self.assertIsInstance(structure, Structure) structure.item = 'mp-149' conv_data = GWConvergenceData(spec=spec, structure=structure) self.assertIsInstance(conv_data, GWConvergenceData) self.assertEqual(conv_data.name, 'Si_mp-149') self.assertEqual(conv_data.conv_res, {u'control': {}, u'derivatives': {}, u'values': {}}) test_file = tempfile.mktemp() string = "{u'grid': 0, u'all_done': True}" f_name = conv_data.name+'.full_res' with open(f_name, 'w') as f: f.write(string) conv_data.read_full_res_from_file() os.remove(f_name) self.assertEqual(conv_data.full_res, {u'all_done': True, u'grid': 0}) string = "{'control': {u'ecuteps': True, u'nbands': True, u'ecut': True}, " \ "'values': {u'ecuteps': 101.98825, u'nbands': 30.0, u'ecut': 326.53663224759407, u'gap': 3.13196}, " \ "'derivatives': {u'ecuteps': 0.00023077744572658418, u'nbands': -0.0013567555555555532, u'ecut': 0.16666666666665808}}" with open(test_file, 'w') as f: f.write(string) conv_data.read_conv_res_from_file(test_file) self.assertEqual(conv_data.conv_res['values']['nbands'], 30) self.assertEqual(conv_data.conv_res['derivatives']['ecuteps'], 0.00023077744572658418) conv_res = copy.deepcopy(conv_data.conv_res) self.assertEqual(conv_data.data, {}) data_names = ['nbands', 'ecuteps', 'gwgap'] data_list = [[30.00000, 101.98825, 3.13196], [30.00000, 203.97650, 3.14811], [30.00000, 326.36240, 3.14876], [30.00000, 428.35065, 3.14880], [30.00000, 530.33890, 3.14881], [60.00000, 101.98825, 3.10808], [60.00000, 203.97650, 3.13435], [60.00000, 326.36240, 3.13522], [60.00000, 428.35065, 3.13531], [60.00000, 530.33890, 3.13532], [120.00000, 101.98825, 3.12039], [120.00000, 203.97650, 3.15994], [120.00000, 326.36240, 3.16167], [120.00000, 428.35065, 3.16182], [120.00000, 530.33890, 3.16183], [180.00000, 101.98825, 3.12198], [180.00000, 203.97650, 3.16845], [180.00000, 326.36240, 3.17183], [180.00000, 428.35065, 3.17203], [180.00000, 530.33890, 3.17205]] for i, d in enumerate(data_list): conv_data.data[i] = dict(zip(data_names, d)) data_names = ['ecut', 'full_width'] data_list = [[10, 99], [12, 101], [13, 101], [14, 101]] ii = len(conv_data.data) + 1 for i, d in enumerate(data_list): conv_data.data[i+ii] = dict(zip(data_names, d)) # self.assertEqual(conv_data.data[0]['gwgap'], 3.13196) # conv_data.conv_res = {u'control': {}, u'derivatives': {}, u'values': {}} conv_data.find_conv_pars(tol=-0.1, silent=True) conv_data.find_conv_pars_scf('ecut', 'full_width', tol=-0.1, silent=True) conv_data.print_conv_res() print(conv_data.conv_res) self.assertEqual(conv_data.conv_res['control'], conv_res['control']) self.assertEqual(conv_data.conv_res['derivatives'], conv_res['derivatives']) #self.assertEqual(conv_data.conv_res['values'], conv_res['values']) for k in conv_data.conv_res['values']: self.assert_almost_equal(conv_data.conv_res["values"][k], conv_res['values'][k], decimal=4) # Remove artifact os.remove(conv_data.name +'.conv_res')
def test_GWspect(self): """ Testing the class GWSpecs() """ spec = GWSpecs() self.assertIsInstance(spec, GWSpecs) self.assertEqual(spec.get_code(), 'ABINIT') self.assertIsInstance(spec.code_interface, AbinitInterface) spec.data['code'] = 'VASP' spec.update_code_interface() self.assertEqual(spec.get_code(), 'VASP') self.assertIsInstance(spec.code_interface, VaspInterface)
def test_GWspect(self): spec = GWSpecs() self.assertIsInstance(spec, GWSpecs) self.assertEqual(spec.get_code(), 'ABINIT') self.assertIsInstance(spec.code_interface, AbinitInterface) spec.data['code'] = 'VASP' spec.update_code_interface() self.assertEqual(spec.get_code(), 'VASP') self.assertIsInstance(spec.code_interface, VaspInterface)
def setUp(self): self.structure = structure self.spec = GWSpecs() self.spec.data['code'] = 'VASP' self.spec.update_code_interface()
def test_GWspect_test(self): spec = GWSpecs() spec.test() self.assertEqual(len(spec.warnings), 0) self.assertEqual(len(spec.errors), 0)