Coverage for /builds/ase/ase/ase/calculators/demon/demon_io.py: 21.74%
23 statements
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
1# fmt: off
3import os.path as op
5import numpy as np
7from ase.calculators.calculator import ReadError
8from ase.units import Hartree
11def parse_xray(filename):
12 # filename = self.label + '/deMon.xry'
13 if op.isfile(filename):
14 with open(filename) as fd:
15 lines = fd.readlines()
17 mode = lines[0].split()[0]
18 ntrans = int(lines[0].split()[1])
20 E_trans = []
21 osc_strength = []
22 trans_dip = []
23 for i in range(1, ntrans + 1):
24 tokens = lines[i].split()
26 E_trans.append(float(tokens[0]))
27 osc_strength.append(
28 float(tokens[1].replace('D', 'e')))
30 dip1 = float(tokens[3].replace('D', 'e'))
31 dip2 = float(tokens[4].replace('D', 'e'))
32 dip3 = float(tokens[5].replace('D', 'e'))
33 trans_dip.append([dip1, dip2, dip3])
35 return mode, ntrans, np.array(
36 E_trans) * Hartree, np.array(osc_strength), np.array(trans_dip)
38 else:
39 raise ReadError('The file {} does not exist'
40 .format(filename))