20
20
from monty .io import zopen
21
21
from monty .json import jsanitize
22
22
from monty .os .path import which
23
- from monty .shutil import decompress_file
24
23
25
24
import numpy as np
26
25
29
28
from pymatgen .core .operations import SymmOp
30
29
from pymatgen .electronic_structure .bandstructure import BandStructureSymmLine
31
30
from pymatgen .symmetry .analyzer import SpacegroupAnalyzer
32
- from pymatgen .io .vasp import BSVasprun , Vasprun , Outcar , Locpot , Chgcar , \
33
- parse_defect_states , Procar , Wavecar
31
+ from pymatgen .io .vasp import BSVasprun , Vasprun , Outcar , Locpot , Chgcar
34
32
from pymatgen .io .vasp .inputs import Poscar , Potcar , Incar , Kpoints
35
33
from pymatgen .apps .borg .hive import AbstractDrone
36
34
from pymatgen .command_line .bader_caller import bader_analysis_from_path
@@ -85,8 +83,7 @@ class VaspDrone(AbstractDrone):
85
83
86
84
def __init__ (self , runs = None , parse_dos = "auto" , bandstructure_mode = "auto" ,
87
85
parse_locpot = True , additional_fields = None , use_full_uri = True ,
88
- parse_bader = bader_exe_exists , parse_chgcar = False , parse_aeccar = False ,
89
- defect_wf_parsing = None ):
86
+ parse_bader = bader_exe_exists , parse_chgcar = False , parse_aeccar = False ):
90
87
"""
91
88
Initialize a Vasp drone to parse vasp outputs
92
89
Args:
@@ -109,10 +106,6 @@ def __init__(self, runs=None, parse_dos="auto", bandstructure_mode="auto",
109
106
parse_bader (bool): Run and parse Bader charge data. Defaults to True if Bader is present
110
107
parse_chgcar (bool): Run and parse CHGCAR file
111
108
parse_aeccar (bool): Run and parse AECCAR0 and AECCAR2 files
112
- defect_wf_parsing (Site): If Site is provided, drone considers Procar and
113
- Wavecar parsing relative to the position of Site.
114
- Useful for consideration of defect localization
115
- Defaults to None (no extra procar or wavecar parsing occurs)
116
109
"""
117
110
self .parse_dos = parse_dos
118
111
self .additional_fields = additional_fields or {}
@@ -124,7 +117,6 @@ def __init__(self, runs=None, parse_dos="auto", bandstructure_mode="auto",
124
117
self .parse_bader = parse_bader
125
118
self .parse_chgcar = parse_chgcar
126
119
self .parse_aeccar = parse_aeccar
127
- self .defect_wf_parsing = defect_wf_parsing
128
120
129
121
def assimilate (self , path ):
130
122
"""
@@ -218,35 +210,6 @@ def generate_doc(self, dir_name, vasprun_files, outcar_files):
218
210
logger .error ("Bad run stats for {}." .format (fullpath ))
219
211
d ["run_stats" ] = run_stats
220
212
221
- # store defect localization/band filling information
222
- if self .defect_wf_parsing :
223
- # need to make sure all procars and wavecars are zipped
224
- for propat in self .filter_files (fullpath , file_pattern = "PROCAR" ).values ():
225
- decompress_file (os .path .join (fullpath , propat ))
226
- for wavepat in self .filter_files (fullpath , file_pattern = "WAVECAR" ).values ():
227
- decompress_file (os .path .join (fullpath , wavepat ))
228
- procar_paths = [os .path .join (fullpath , ppath ) for ppath in
229
- self .filter_files (fullpath , file_pattern = "PROCAR" ).values ()]
230
- wavecar_paths = [os .path .join (fullpath , wpath ) for wpath in
231
- self .filter_files (fullpath , file_pattern = "WAVECAR" ).values ()]
232
-
233
- for i , d_calc in enumerate (d ["calcs_reversed" ]):
234
- if d_calc .get ("output" ):
235
- if len (procar_paths ) and len (wavecar_paths ):
236
- procar = Procar (procar_paths [i ])
237
- wavecar = Wavecar (wavecar_paths [i ])
238
- structure = Structure .from_dict (d_calc ["output" ]["structure" ])
239
- defect_data = parse_defect_states (structure , self .defect_wf_parsing , wavecar , procar )
240
- d_calc ["output" ].update ({"defect" : defect_data })
241
-
242
- filename = list (vasprun_files .values ())[i ]
243
- vasprun_file = os .path .join (dir_name , filename )
244
- vrun = Vasprun (vasprun_file )
245
- eigenvalues = vrun .eigenvalues .copy ()
246
- kpoint_weights = vrun .actual_kpoints_weights
247
- vr_eigenvalue_dict = {'eigenvalues' : eigenvalues , 'kpoint_weights' : kpoint_weights }
248
- d_calc ["output" ].update ({"vr_eigenvalue_dict" : vr_eigenvalue_dict })
249
-
250
213
# reverse the calculations data order so newest calc is first
251
214
d ["calcs_reversed" ].reverse ()
252
215
0 commit comments