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
« prev ^ index » next coverage.py v7.10.6, created at 2025-10-26 18:44 +0000
1import numpy as np
2from . import CasidaResponse
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.
12 In the diagonal representation, the K matrix is zero and the
13 eigenstates are on the diagonal.
15 Parameters
16 ----------
17 casida_response
18 Old Casida response.
19 name
20 Name of the new response.
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)