Coverage for strongcoca/response/diagonal_casida.py: 100%

8 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-10-26 18:44 +0000

1import numpy as np 

2from . import CasidaResponse 

3 

4 

5def build_diagonal_casida( 

6 casida_response: CasidaResponse, 

7 name: str = 'Diagonal') -> CasidaResponse: 

8 """Builds a :class:`~strongcoca.response.CasidaResponse` instance in 

9 the diagonal representation from an existing non-diagonal 

10 representation. 

11 

12 In the diagonal representation, the K matrix is zero and the 

13 eigenstates are on the diagonal. 

14 

15 Parameters 

16 ---------- 

17 casida_response 

18 Old Casida response. 

19 name 

20 Name of the new response. 

21 

22 """ 

23 omega_I = casida_response.excitations._energies 

24 mu_Iv = casida_response.excitations._transition_dipole_moments 

25 K_II = np.zeros((len(omega_I), len(omega_I))) 

26 broadening = casida_response.broadening 

27 return CasidaResponse(omega_I, K_II, mu_Iv, broadening=broadening, 

28 units='au', name=name)