Class for performing Casida calculations. More...
#include <casida.h>
Public Member Functions | |
Casida () | |
Dummy constructor. | |
Casida (const Settings &set, const BasisSet &basis, const arma::vec &E, const arma::mat &C, const arma::mat &P, const std::vector< double > &occs) | |
Constructor for spin-unpolarized calculation. | |
Casida (const Settings &set, const BasisSet &basis, const arma::vec &Ea, const arma::vec &Eb, const arma::mat &Ca, const arma::mat &Cb, const arma::mat &Pa, const arma::mat &Pb, const std::vector< double > &occa, const std::vector< double > &occb) | |
Constructor for spin-polarized calculation. | |
~Casida () | |
Destructor. | |
arma::mat | transition (const BasisSet &bas, const arma::vec &q) const |
Compute the q-dependent transition. | |
arma::mat | transition (const BasisSet &bas, double q) const |
Compute the spherically averaged, q-dependent transition. | |
arma::mat | dipole_transition (const BasisSet &bas) const |
Compute the dipole transition spectrum. | |
Private Member Functions | |
void | Kcoul (const BasisSet &basis, const Settings &set) |
void | Kxc (const BasisSet &bas, double tol, int x_func, int c_func) |
double | esq (states_pair_t ip, bool ispin) const |
Calculate ![]() | |
double | fe (states_pair_t ip, bool ispin) const |
Calculate ![]() | |
void | form_pairs (const Settings &set, const std::vector< std::vector< double > > occs) |
Form pairs and occupations. | |
arma::mat | matrix_transform (bool ispin, const arma::mat &m) const |
Transform given AO matrix to MO. | |
arma::cx_mat | matrix_transform (bool ispin, const arma::cx_mat &m) const |
Transform given AO matrix to MO. | |
void | parse_coupling (const Settings &set) |
Common routines for constructors. | |
void | calc_K (const Settings &set, const BasisSet &bas) |
Construct the K matrices. | |
void | coulomb_fit (const BasisSet &basis, std::vector< arma::mat > &munu, arma::mat &ab_inv, const Settings &set) const |
Compute the Coulomb fitting integrals ![]() ![]() | |
void | solve () |
Solve the Casida equation. | |
arma::mat | transition (const std::vector< arma::mat > &M) const |
Compute the transition speeds using the matrix elements given by M. | |
arma::mat | transition (const std::vector< arma::cx_mat > &M) const |
Compute the transition speeds using the matrix elements given by M. | |
Private Attributes | |
std::vector< std::vector < states_pair_t > > | pairs |
List of electron-hole pairs included in calculation. | |
enum coupling_mode | coupling |
How to couple electron-hole pairs (IPA, RPA, TDLDA) | |
std::vector< arma::vec > | f |
Occupancies of orbitals. | |
std::vector< size_t > | nocc |
Number of occupied orbitals. | |
std::vector< size_t > | nvirt |
Number of virtual orbitals. | |
std::vector< arma::vec > | E |
MO energies for spin up and spin down. | |
std::vector< arma::mat > | C |
MO coefficient matrices for spin up and spin down. | |
std::vector< arma::mat > | P |
Density matrices. | |
std::vector< std::vector < arma::mat > > | dipmat |
Dipole matrix elements: [nspin][3][norb,norb]. | |
arma::mat | K |
arma::vec | w_i |
Eigenvalues of Casida's equation (and later on, the excitation energies) | |
arma::mat | F_i |
Eigenvectors of Casida's equation. | |
Class for performing Casida calculations.
This routine constructs the Coulomb coupling matrix (Eq. 2.6 in Jamorski et al [1996]).
Only the same-spin couplings are computed, since spin up - spin down couplings are not necessary even for TDLDA.
To save memory, the result is stored in the K matrix.
|
private |
This routine constructs the exchange-correlation coupling matrix
Only the same-spin couplings are computed, since spin up - spin down couplings are not necessary even for TDLDA.
To save memory, the result is stored in the K matrix.