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

1# fmt: off 

2 

3import os.path as op 

4 

5import numpy as np 

6 

7from ase.calculators.calculator import ReadError 

8from ase.units import Hartree 

9 

10 

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() 

16 

17 mode = lines[0].split()[0] 

18 ntrans = int(lines[0].split()[1]) 

19 

20 E_trans = [] 

21 osc_strength = [] 

22 trans_dip = [] 

23 for i in range(1, ntrans + 1): 

24 tokens = lines[i].split() 

25 

26 E_trans.append(float(tokens[0])) 

27 osc_strength.append( 

28 float(tokens[1].replace('D', 'e'))) 

29 

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]) 

34 

35 return mode, ntrans, np.array( 

36 E_trans) * Hartree, np.array(osc_strength), np.array(trans_dip) 

37 

38 else: 

39 raise ReadError('The file {} does not exist' 

40 .format(filename))