コード例 #1
0
 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)
コード例 #2
0
 def setUp(self):
     """
     Testing GWVaspInputSetTests setUp
     """
     self.structure = structure
     self.spec = GWSpecs()
     self.spec.data['code'] = 'VASP'
     self.spec.update_code_interface()
コード例 #3
0
ファイル: test_classes.py プロジェクト: temok-mx/abipy
 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)
コード例 #4
0
ファイル: test_classes.py プロジェクト: temok-mx/abipy
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)
コード例 #5
0
ファイル: test_classes.py プロジェクト: fgoudreault/abipy
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)
コード例 #6
0
ファイル: test_classes.py プロジェクト: fgoudreault/abipy
    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')
コード例 #7
0
ファイル: test_classes.py プロジェクト: temok-mx/abipy
 def setUp(self):
     """
     Testing GWVaspInputSetTests setUp
     """
     self.structure = structure
     self.spec = GWSpecs()
     self.spec.data['code'] = 'VASP'
     self.spec.update_code_interface()
コード例 #8
0
 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)
コード例 #9
0
ファイル: test_classes.py プロジェクト: antoinedewandre/abipy
 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)
コード例 #10
0
ファイル: test_classes.py プロジェクト: antoinedewandre/abipy
 def setUp(self):
     self.structure = structure
     self.spec = GWSpecs()
     self.spec.data['code'] = 'VASP'
     self.spec.update_code_interface()
コード例 #11
0
ファイル: test_classes.py プロジェクト: antoinedewandre/abipy
 def test_GWspect_test(self):
     spec = GWSpecs()
     spec.test()
     self.assertEqual(len(spec.warnings), 0)
     self.assertEqual(len(spec.errors), 0)