41
41
from pymatgen .io .wannier90 import Unk
42
42
from pymatgen .util .io_utils import clean_lines , micro_pyawk
43
43
from pymatgen .util .num import make_symmetric_matrix_from_upper_tri
44
- from pymatgen .util .typing import Kpoint , Tuple3Floats , Vector3D
45
44
46
45
if TYPE_CHECKING :
47
46
from collections .abc import Callable
53
52
from numpy .typing import NDArray
54
53
from typing_extensions import Self
55
54
56
- from pymatgen .util .typing import PathLike
55
+ from pymatgen .util .typing import Kpoint , PathLike , Tuple3Floats , Vector3D
57
56
58
57
59
58
def _parse_parameters (val_type : str , val : str ) -> bool | str | float | int :
@@ -154,7 +153,7 @@ def _vasprun_float(flt: float | str) -> float:
154
153
return float (flt )
155
154
156
155
except ValueError :
157
- flt = cast (str , flt )
156
+ flt = cast (" str" , flt )
158
157
_flt : str = flt .strip ()
159
158
if _flt == "*" * len (_flt ):
160
159
warnings .warn (
@@ -1490,10 +1489,10 @@ def _parse_kpoints(
1490
1489
1491
1490
if name == "divisions" :
1492
1491
kpoint .kpts = [
1493
- cast (Kpoint , tuple (int (i ) for i in tokens )),
1492
+ cast (" Kpoint" , tuple (int (i ) for i in tokens )),
1494
1493
]
1495
1494
elif name == "usershift" :
1496
- kpoint .kpts_shift = cast (Vector3D , tuple (float (i ) for i in tokens ))
1495
+ kpoint .kpts_shift = cast (" Vector3D" , tuple (float (i ) for i in tokens ))
1497
1496
elif name in {"genvec1" , "genvec2" , "genvec3" , "shift" }:
1498
1497
setattr (kpoint , name , [float (i ) for i in tokens ])
1499
1498
@@ -1502,7 +1501,7 @@ def _parse_kpoints(
1502
1501
for va in elem .findall ("varray" ):
1503
1502
name = va .attrib ["name" ]
1504
1503
if name == "kpointlist" :
1505
- actual_kpoints = cast (list [Tuple3Floats ], list (map (tuple , _parse_vasp_array (va ))))
1504
+ actual_kpoints = cast (" list[Tuple3Floats]" , list (map (tuple , _parse_vasp_array (va ))))
1506
1505
elif name == "weights" :
1507
1506
weights = [i [0 ] for i in _parse_vasp_array (va )]
1508
1507
elem .clear ()
@@ -2216,7 +2215,7 @@ def __init__(self, filename: PathLike) -> None:
2216
2215
self .dfpt = True
2217
2216
self .fd = False
2218
2217
self .read_internal_strain_tensor ()
2219
- elif self .data .get ("ibrion" , [[0 ]])[0 ][0 ] in [5 ,6 ]:
2218
+ elif self .data .get ("ibrion" , [[0 ]])[0 ][0 ] in [5 , 6 ]:
2220
2219
self .dfpt = False
2221
2220
self .fd = True
2222
2221
self .read_internal_strain_tensor ()
@@ -2225,7 +2224,8 @@ def __init__(self, filename: PathLike) -> None:
2225
2224
self .fd = False
2226
2225
2227
2226
# Check for variable cell calculation
2228
- self .read_pattern ({"isif" : r"ISIF\s+=\s+([\-\d]+)" },
2227
+ self .read_pattern (
2228
+ {"isif" : r"ISIF\s+=\s+([\-\d]+)" },
2229
2229
terminate_on_match = True ,
2230
2230
postprocess = int ,
2231
2231
)
@@ -2237,7 +2237,7 @@ def __init__(self, filename: PathLike) -> None:
2237
2237
# Check if LRPA is True
2238
2238
self .lrpa = False
2239
2239
self .read_pattern ({"rpa" : r"LRPA\s*=\s*T" })
2240
- if self .data .get ("rpa" ,False ):
2240
+ if self .data .get ("rpa" , False ):
2241
2241
self .lrpa = True
2242
2242
2243
2243
# Check if LEPSILON is True and read piezo data if so
@@ -3057,14 +3057,15 @@ def dielectric_section_stop(results, match):
3057
3057
3058
3058
def piezo_section_start (results , _match ):
3059
3059
results .piezo_index = 0
3060
+
3060
3061
if not self .lrpa :
3061
3062
search .append (
3062
- [
3063
- r"PIEZOELECTRIC TENSOR \(including local field effects\)(?:\s*for\s*field\s*in\s*x,\s*y,\s*z\s*)? \(C/m\^2\)" ,
3064
- None ,
3065
- piezo_section_start ,
3066
- ]
3067
- )
3063
+ [
3064
+ r"PIEZOELECTRIC TENSOR \(including local field effects\)(?:\s*for\s*field\s*in\s*x,\s*y,\s*z\s*)? \(C/m\^2\)" ,
3065
+ None ,
3066
+ piezo_section_start ,
3067
+ ]
3068
+ )
3068
3069
3069
3070
def piezo_data (results , match ):
3070
3071
results .piezo_tensor [results .piezo_index , :] = np .array ([float (match [i ]) for i in range (1 , 7 )])
@@ -3531,9 +3532,7 @@ def as_dict(self) -> dict:
3531
3532
"dielectric_ionic_tensor" : self .dielectric_ionic_tensor ,
3532
3533
}
3533
3534
if self .fd and self .varcell :
3534
- dct |= {
3535
- "elastic_tensor" : self .data ["elastic_tensor" ]
3536
- }
3535
+ dct |= {"elastic_tensor" : self .data ["elastic_tensor" ]}
3537
3536
3538
3537
if self .dfpt :
3539
3538
dct ["internal_strain_tensor" ] = self .internal_strain_tensor
0 commit comments