#include <lr_spectrum.h>
|
| LR_Spectrum (const int &nspin_global, const int &naos, const std::vector< int > &nocc, const std::vector< int > &nvirt, typename TGint< T >::type *gint, const ModulePW::PW_Basis &rho_basis, psi::Psi< T > &psi_ks_in, const UnitCell &ucell, const K_Vectors &kv_in, const Grid_Driver &gd, const std::vector< double > &orb_cutoff, const TwoCenterBundle &two_center_bundle_, const std::vector< Parallel_2D > &pX_in, const Parallel_2D &pc_in, const Parallel_Orbitals &pmat_in, const double *eig, const T *X, const int &nstate, const bool &openshell, const std::string &gauge="length") |
|
void | optical_absorption_method1 (const std::vector< double > &freq, const double eta) |
| calculate the optical absorption spectrum with $Im[1/[(w+i\eta)^2-\Omega_S^2]]$
|
|
void | optical_absorption_method2 (const std::vector< double > &freq, const double eta) |
| calculate the optical absorption spectrum with lorentzian delta function
|
|
void | transition_analysis (const std::string &spintype) |
| print out the transition dipole moment and the main contributions to the transition amplitude
|
|
void | write_transition_dipole (const std::string &filename) |
| write transition dipole
|
|
void | test_transition_dipoles_velocity_ks (const double *const ks_eig) |
| calculate transition dipole in velocity gauge using ks eigenvalues instead of excitation energies
|
|
|
void | oscillator_strength () |
| $$2/3\Omega\sum_{ia\sigma} |\braket{\psi_{i}|\mathbf{r}|\psi_{a}} |^2\int \rho_{\alpha\beta}(\mathbf{r}) \mathbf{r} d\mathbf{r}$$
|
|
ModuleBase::Vector3< T > | cal_transition_dipole_istate_length (const int istate) |
| calculate the transition dipole of state S in length gauge: $\sum_{iak}X^S_{iak}<ik|r|ak>$
|
|
void | cal_transition_dipoles_length () |
| calculate the transition dipole of all states in length gauge
|
|
ModuleBase::Vector3< T > | cal_transition_dipole_istate_velocity_R (const int istate, const Velocity_op< std::complex< double > > &vR) |
| calculate the transition dipole of state S in velocity gauge: $i(\sum_{iak}X^S_{iak}<ik|v|ak>)/\Omega_S$
|
|
ModuleBase::Vector3< T > | cal_transition_dipole_istate_velocity_k (const int istate, const Velocity_op< std::complex< double > > &vR) |
|
void | cal_transition_dipoles_velocity () |
| calculate the transition dipole of all states in velocity gauge
|
|
double | cal_mean_squared_dipole (ModuleBase::Vector3< T > dipole) |
|
elecstate::DensityMatrix< T, T > | cal_transition_density_matrix (const int istate, const T *X_in=nullptr, const bool need_R=true) |
| calculate the transition density matrix
|
|
void | cal_gint_rho (double **rho, const int &nrxx) |
|
std::map< std::string, int > | get_pair_info (const int i) |
| given the index in X, return its ispin, ik, iocc, ivirt
|
|
ModuleBase::Vector3< double > | cal_transition_dipole_istate_length (const int istate) |
|
ModuleBase::Vector3< std::complex< double > > | cal_transition_dipole_istate_length (const int istate) |
|
double | cal_mean_squared_dipole (ModuleBase::Vector3< double > dipole) |
|
double | cal_mean_squared_dipole (ModuleBase::Vector3< std::complex< double > > dipole) |
|
◆ LR_Spectrum()
LR::LR_Spectrum< T >::LR_Spectrum |
( |
const int & |
nspin_global, |
|
|
const int & |
naos, |
|
|
const std::vector< int > & |
nocc, |
|
|
const std::vector< int > & |
nvirt, |
|
|
typename TGint< T >::type * |
gint, |
|
|
const ModulePW::PW_Basis & |
rho_basis, |
|
|
psi::Psi< T > & |
psi_ks_in, |
|
|
const UnitCell & |
ucell, |
|
|
const K_Vectors & |
kv_in, |
|
|
const Grid_Driver & |
gd, |
|
|
const std::vector< double > & |
orb_cutoff, |
|
|
const TwoCenterBundle & |
two_center_bundle_, |
|
|
const std::vector< Parallel_2D > & |
pX_in, |
|
|
const Parallel_2D & |
pc_in, |
|
|
const Parallel_Orbitals & |
pmat_in, |
|
|
const double * |
eig, |
|
|
const T * |
X, |
|
|
const int & |
nstate, |
|
|
const bool & |
openshell, |
|
|
const std::string & |
gauge = "length" |
|
) |
| |
|
inline |
◆ cal_gint_rho()
◆ cal_mean_squared_dipole() [1/3]
◆ cal_mean_squared_dipole() [2/3]
◆ cal_mean_squared_dipole() [3/3]
◆ cal_transition_density_matrix()
calculate the transition density matrix
◆ cal_transition_dipole_istate_length() [1/3]
◆ cal_transition_dipole_istate_length() [2/3]
◆ cal_transition_dipole_istate_length() [3/3]
calculate the transition dipole of state S in length gauge: $\sum_{iak}X^S_{iak}<ik|r|ak>$
◆ cal_transition_dipole_istate_velocity_k()
◆ cal_transition_dipole_istate_velocity_R()
calculate the transition dipole of state S in velocity gauge: $i(\sum_{iak}X^S_{iak}<ik|v|ak>)/\Omega_S$
this algorithm has bug in multi-k cases, just for test
◆ cal_transition_dipoles_length()
calculate the transition dipole of all states in length gauge
◆ cal_transition_dipoles_velocity()
calculate the transition dipole of all states in velocity gauge
◆ get_pair_info()
given the index in X, return its ispin, ik, iocc, ivirt
◆ optical_absorption_method1()
void LR::LR_Spectrum< T >::optical_absorption_method1 |
( |
const std::vector< double > & |
freq, |
|
|
const double |
eta |
|
) |
| |
calculate the optical absorption spectrum with $Im[1/[(w+i\eta)^2-\Omega_S^2]]$
◆ optical_absorption_method2()
void LR::LR_Spectrum< T >::optical_absorption_method2 |
( |
const std::vector< double > & |
freq, |
|
|
const double |
eta |
|
) |
| |
calculate the optical absorption spectrum with lorentzian delta function
◆ oscillator_strength()
$$2/3\Omega\sum_{ia\sigma} |\braket{\psi_{i}|\mathbf{r}|\psi_{a}} |^2\int \rho_{\alpha\beta}(\mathbf{r}) \mathbf{r} d\mathbf{r}$$
◆ test_transition_dipoles_velocity_ks()
void LR::LR_Spectrum< T >::test_transition_dipoles_velocity_ks |
( |
const double *const |
ks_eig | ) |
|
calculate transition dipole in velocity gauge using ks eigenvalues instead of excitation energies
◆ transition_analysis()
print out the transition dipole moment and the main contributions to the transition amplitude
find the main contributions (> 0.5)
◆ write_transition_dipole()
void LR::LR_Spectrum< T >::write_transition_dipole |
( |
const std::string & |
filename | ) |
|
◆ ana_thr
{abs(X) > thr} will appear in the transition analysis log
◆ eig
◆ gd_
◆ gdim
global leading dimension of X
◆ gint
◆ kv
◆ ldim
local leading dimension of X, or the data size of each state
◆ mean_squared_transition_dipole_
◆ naos
◆ nk
◆ nocc
◆ nspin_x
1 for singlet/triplet, 2 for updown(openshell)
◆ nstate
◆ nvirt
◆ orb_cutoff_
◆ oscillator_strength_
$|dipole|^2/3$, atomic unit (Hartree)
$2/3\Omega |\sum_{ia\sigma} \braket{\psi_{i}|\mathbf{r}|\psi_{a}} |^2$, atomic unit (Hartree)
◆ pc
◆ pmat
◆ psi_ks
◆ pX
◆ rho_basis
◆ transition_dipole_
$\braket{ \psi_{i} | \mathbf{r} | \psi_{a} }$
◆ two_center_bundle_
◆ ucell
The documentation for this class was generated from the following files:
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_lr/lr_spectrum.h
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_lr/lr_spectrum.cpp
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_lr/lr_spectrum_velocity.cpp