Commit 5877fe2e authored by temok-mx's avatar temok-mx

Fermi energy: fixed bug on unopened section_single_configuration_calculation

parent e358af6a
......@@ -310,7 +310,6 @@ def read_static_info_kpoints(fd):
return dict(ibz_k_points=ibz_k_points, k_point_weights=k_point_weights)
#def read_static_info_eigenvalues(fd, energy_unit):
def read_static_info_eigenvalues_efermi(fd, energy_unit):
'''
Parse eigenvalues and Fermi Energy from `static/info`
......@@ -318,6 +317,13 @@ def read_static_info_eigenvalues_efermi(fd, energy_unit):
energy_unit: string
Returns: dictionary
'''
# we had to allow this function to handle both
# eigenvalues and Fermi energies because the later
# comes in the output file immediately after the last
# eigenvalue, hence the "fermi line" is consumed by the
# line checkers that look for eigenvalues.
values_sknx = {}
nbands = 0
......@@ -383,7 +389,6 @@ def read_static_info(fd):
elif line.startswith('Eigenvalues ['):
unit = get_energy_unit(line)
results.update(read_static_info_eigenvalues_efermi(fd, unit))
## print('I found:', results['efermi'])
elif line.startswith('Energy ['):
unit = get_energy_unit(line)
results.update(read_static_info_energy(fd, unit))
......@@ -424,18 +429,6 @@ def read_static_info(fd):
tokens = line.split()[-3:]
forces.append([float(f) for f in tokens])
results['forces'] = np.array(forces) * forceunit
elif line.startswith('Fermi'):
# this check is 'one line too late'
# hence we capture Fermi energy from
# `read_static_info_eigenvalues()`
# print('Point 1', line)
tokens = line.split()
unit = {'eV': eV, 'H': Hartree}[tokens[-1]]
eFermi = float(tokens[-2]) * unit
results['efermi'] = eFermi
# print("helloo, eFermi:", eFermi, unit)
# print('####1', line)
if 'ibz_k_points' not in results:
results['ibz_k_points'] = np.zeros((1, 3))
......@@ -454,7 +447,6 @@ def read_static_info(fd):
results['efermi'] = eFermi
# print('eFermi estimate', eFermi) # this produces bad estimate
# ----
#print('finish', results['efermi'])
return results
......@@ -490,6 +482,9 @@ class Octopus(FileIOCalculator):
def get_fermi_level(self):
return self.results['efermi']
def get_fermi_energy(self):
return self.results['efermi']
def get_dipole_moment(self, atoms=None):
if 'dipole' not in self.results:
msg = ('Dipole moment not calculated.\n'
......
......@@ -67,20 +67,6 @@ def parse_infofile(meta_info_env, pew, fname):
iterations = int(line.split()[-2])
pew.addValue('x_octopus_info_scf_converged_iterations',
iterations)
# - - - -
if line.startswith('Fermi'):
# print('\tLINE:', line)
#pew.addValue('energy_reference_fermi', fermiref)
break
# ############
# CHAT WITH MARKUS
for line in fd: # Jump down to Fermi FIXME as in FIRST BLOCK
# beware of units
# 'Fermi energy': 'energy_reference_fermi'
if line.startswith('Fermi'):
#octunit = line.strip().split()[-1].strip('[]:')
#nomadunit = {'eV': 'eV', 'H': 'hartree'}[octunit] # keep it
break
for line in fd: # Jump down to energies:
if line.startswith('Energy ['):
......@@ -109,10 +95,6 @@ def parse_infofile(meta_info_env, pew, fname):
if tokens[0] in names:
pew.addValue(names[tokens[0]],
convert_unit(float(tokens[2]), nomadunit))
if tokens[0] == 'Fermi energy':
pass
# print(tokens)
# print('#', line)
def parse_logfile(meta_info_env, pew, fname):
......@@ -451,6 +433,10 @@ def parse_without_class(fname, backend, parser_info):
nspins = calc.get_number_of_spins()
nkpts = len(calc.get_k_point_weights())
#fermi_energy = calc.get_fermi_level()
#print('I can see: ', fermi_energy)
#pew.addArrayValues('energy_reference_fermi', [fermi_energy, fermi_energy])
if logfile is None:
# print('No stdout logfile found', file=fd)
logging.debug('No stdout logfile found')
......@@ -541,6 +527,9 @@ def parse_without_class(fname, backend, parser_info):
# np.array(atoms.pbc))
with open_section('section_single_configuration_calculation'):
fermi_energy = calc.get_fermi_level()
pew.addArrayValues('energy_reference_fermi', [fermi_energy, fermi_energy])
pew.addValue('single_configuration_calculation_to_system_ref',
system_gid)
# print('Parse info file %s' % fname) #, file=fd)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment