Coverage for gpaw/hybrids/__init__.py: 81%

16 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2025-07-20 00:19 +0000

1from .wrapper import HybridXC 

2 

3__all__ = ['HybridXC'] 

4 

5 

6def parse_name(name: str) -> tuple[str, float, float, bool]: 

7 """Parse known hybrid functional names. 

8 

9 Returns: 

10 

11 * libxc-name of semi-local functional 

12 * exact-exchange fraction 

13 * damping coefficient 

14 * Yukawa screening 

15 

16 >>> parse_name('YS-PBE0') 

17 ('GGA_X_SFAT_PBE', 0.25, 0.165, True) 

18 """ 

19 if name == 'EXX': 

20 return 'null', 1.0, 0.0, False 

21 if name == 'PBE0': 

22 return 'HYB_GGA_XC_PBEH', 0.25, 0.0, False 

23 if name == 'HSE03': 

24 return 'HYB_GGA_XC_HSE03', 0.25, 0.106, False 

25 if name == 'HSE06': 

26 return 'HYB_GGA_XC_HSE06', 0.25, 0.11, False 

27 if name == 'B3LYP': 

28 return 'HYB_GGA_XC_B3LYP', 0.2, 0.0, False 

29 if name == 'YS-PBE0': 

30 return 'GGA_X_SFAT_PBE', 0.25, 1.5 * 0.11, True 

31 raise ValueError(f'Unknown hybrid functional: {name}')