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
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-20 00:19 +0000
1from .wrapper import HybridXC
3__all__ = ['HybridXC']
6def parse_name(name: str) -> tuple[str, float, float, bool]:
7 """Parse known hybrid functional names.
9 Returns:
11 * libxc-name of semi-local functional
12 * exact-exchange fraction
13 * damping coefficient
14 * Yukawa screening
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}')