25 template<
typename T,
typename TR =
double>
56 std::vector<std::shared_ptr<PotHxcLR>>
pot;
70 std::vector<ct::Tensor>
X;
90 std::unique_ptr<ModuleGint::GintInfo>
gint_info_ =
nullptr;
122 std::shared_ptr<Exx_LRI<T>> exx_lri =
nullptr;
124 void move_exx_lri(std::shared_ptr<
Exx_LRI<std::complex<double>>>&);
Definition sltk_grid_driver.h:43
Excited State Solver: Linear Response TDDFT (Tamm Dancoff Approximation)
Definition esolver_lrtd_lcao.h:27
int nloc_per_band
Definition esolver_lrtd_lcao.h:71
virtual void runner(UnitCell &ucell, int istep) override
run energy solver
Definition esolver_lrtd_lcao.cpp:414
void setup_eigenvectors_X()
allocate and set the inital value of X
Definition esolver_lrtd_lcao.cpp:561
void read_ks_wfc()
read in the ground state wave function, band energy and occupation
Definition esolver_lrtd_lcao.cpp:652
std::vector< ct::Tensor > X
Excited state wavefunction (locc, lvirt are local size of nocc and nvirt in each process) size of X: ...
Definition esolver_lrtd_lcao.h:70
void parameter_check() const
check the legality of the input parameters
Definition esolver_lrtd_lcao.cpp:78
virtual void cal_stress(UnitCell &ucell, ModuleBase::matrix &stress) override
calcualte stress of given cell
Definition esolver_lrtd_lcao.h:45
int nk
Definition esolver_lrtd_lcao.h:85
std::vector< std::shared_ptr< PotHxcLR > > pot
Definition esolver_lrtd_lcao.h:56
const UnitCell & ucell
Definition esolver_lrtd_lcao.h:49
virtual void before_all_runners(UnitCell &ucell, const Input_para &inp) override
input: input, call, basis(LCAO), psi(ground state), elecstate
Definition esolver_lrtd_lcao.h:39
Parallel_Orbitals paraMat_
variables for parallel distribution of matrix in AO representation
Definition esolver_lrtd_lcao.h:98
virtual double cal_energy() override
calculate total energy of a given system
Definition esolver_lrtd_lcao.h:43
std::vector< int > nocc
number of occupied orbitals for each spin used in the calculation
Definition esolver_lrtd_lcao.h:73
std::string xc_kernel
Definition esolver_lrtd_lcao.h:88
const Input_para & input
Definition esolver_lrtd_lcao.h:48
void set_X_initial_guess()
Definition esolver_lrtd_lcao.cpp:585
TwoCenterBundle two_center_bundle_
Definition esolver_lrtd_lcao.h:100
void init_pot(const Charge &chg_gs)
Definition esolver_lrtd_lcao.cpp:632
ModuleBase::matrix eig_ks
ground state bands, read from the file, or moved from ESolver_FP::pelec.ekb
Definition esolver_lrtd_lcao.h:64
int nocc_in
nocc read from input (adjusted by nelec): max(spin-up, spindown)
Definition esolver_lrtd_lcao.h:74
int nspin
Definition esolver_lrtd_lcao.h:84
int nbands
Definition esolver_lrtd_lcao.h:78
std::vector< Parallel_2D > paraX_
variables for parallel distribution of excited states
Definition esolver_lrtd_lcao.h:96
Parallel_2D paraC_
variables for parallel distribution of KS orbitals
Definition esolver_lrtd_lcao.h:94
~ESolver_LR()
Definition esolver_lrtd_lcao.h:33
void reset_dim_spin2()
reset nocc, nvirt, npairs after read ground-state wavefunction when nspin=2
Definition esolver_lrtd_lcao.cpp:131
psi::Psi< T > * psi_ks
ground state wave function
Definition esolver_lrtd_lcao.h:61
int nbasis
Definition esolver_lrtd_lcao.h:79
std::vector< double > orb_cutoff_
Definition esolver_lrtd_lcao.h:51
int nstates
how many 2-particle states to be solved
Definition esolver_lrtd_lcao.h:83
int nupdown
Definition esolver_lrtd_lcao.h:86
std::vector< int > nvirt
number of virtual orbitals for each spin used in the calculation
Definition esolver_lrtd_lcao.h:76
virtual void after_all_runners(UnitCell &ucell) override
perform post processing calculations
Definition esolver_lrtd_lcao.cpp:525
int nocc_max
nelec/2
Definition esolver_lrtd_lcao.h:75
virtual void cal_force(UnitCell &ucell, ModuleBase::matrix &force) override
calcualte forces for the atoms in the given cell
Definition esolver_lrtd_lcao.h:44
void read_ks_chg(Charge &chg)
read in the ground state charge density
Definition esolver_lrtd_lcao.cpp:684
std::unique_ptr< ModuleGint::GintInfo > gint_info_
Definition esolver_lrtd_lcao.h:90
Grid_Driver gd
Definition esolver_lrtd_lcao.h:50
bool openshell
Definition esolver_lrtd_lcao.h:87
void set_dimension()
set nocc, nvirt, nbasis, npairs and nstates
Definition esolver_lrtd_lcao.cpp:94
std::vector< int > npairs
n_occ*nvirt, the basis size of electron-hole pair representation
Definition esolver_lrtd_lcao.h:81
int nvirt_in
nvirt read from input (adjusted by nelec): min(spin-up, spindown)
Definition esolver_lrtd_lcao.h:77
Definition esolver_fp.h:32
Definition esolver_ks_lcao.h:32
This class packs the basic information of 2D-block-cyclic parallel distribution of an arbitrary matri...
Definition parallel_2d.h:12
Definition parallel_orbitals.h:9
Definition two_center_bundle.h:11
Definition esolver_ks_lcao.h:19