@@ -2152,21 +2152,17 @@ def electron_configuration(self) -> list[tuple[int, str, float]]:
2152
2152
raise RuntimeError ("Cannot find entries in POTCAR." )
2153
2153
num_entries : int = int (match_entries .group (1 ))
2154
2154
2155
+ # Get valence electron configuration (defined by ZVAL)
2155
2156
l_map : dict [int , str ] = {0 : "s" , 1 : "p" , 2 : "d" , 3 : "f" , 4 : "g" , 5 : "h" }
2156
- all_config : list [tuple [int , str , float ]] = []
2157
- for line in lines [start_idx + 3 : start_idx + 3 + num_entries ]:
2158
- parts = line .split ()
2159
- n , ang_moment , _j , _E , occ = int (parts [0 ]), int (parts [1 ]), float (parts [2 ]), float (parts [3 ]), float (parts [4 ])
2160
2157
2161
- all_config .append ((n , l_map [ang_moment ], occ ))
2162
-
2163
- # Get valence electron configuration (defined by ZVAL)
2164
- valence_config : list [tuple [int , str , float ]] = []
2165
2158
total_electrons = 0.0
2159
+ valence_config : list [tuple [int , str , float ]] = []
2160
+ for line in lines [start_idx + 3 + num_entries - 1 : start_idx + 2 : - 1 ]:
2161
+ parts = line .split ()
2162
+ n , ang_moment , _j , _E , occ = int (parts [0 ]), int (parts [1 ]), float (parts [2 ]), float (parts [3 ]), float (parts [4 ])
2166
2163
2167
- for n , subshell , occ in reversed (all_config ):
2168
2164
if occ >= 0.01 : # TODO: hard-coded occupancy cutoff
2169
- valence_config .append ((n , subshell , occ ))
2165
+ valence_config .append ((n , l_map [ ang_moment ] , occ ))
2170
2166
total_electrons += occ
2171
2167
2172
2168
if total_electrons >= self .zval :
0 commit comments