|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <hamilt_lcao.h>
Public Types | |
| using | TAC = std::pair< int, std::array< int, 3 > > |
Public Member Functions | |
| HamiltLCAO (const UnitCell &ucell, const Grid_Driver &grid_d, const Parallel_Orbitals *paraV, elecstate::Potential *pot_in, const K_Vectors &kv_in, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, elecstate::DensityMatrix< TK, double > *DM_in, Setup_DeePKS< TK > &deepks, const int istep, Exx_NAO< TK > &exx_nao) | |
| Constructor of Hamiltonian for LCAO base HR and SR will be allocated with Operators. | |
| HamiltLCAO (const UnitCell &ucell, const Grid_Driver &grid_d, const Parallel_Orbitals *paraV, const K_Vectors &kv_in, const TwoCenterIntegrator &intor_overlap_orb, const std::vector< double > &orb_cutoff) | |
| Constructor of vacuum Operators, only HR and SR will be initialed as empty HContainer. | |
| ~HamiltLCAO () | |
| Operator< TK > *& | getOperator () |
| get pointer of Operator<TK> ops | |
| TK * | getHk () const |
| get H(k) pointer | |
| TK * | getSk () const |
| get S(k) pointer | |
| int | get_size_hsk () const |
| HContainer< TR > *& | getHR () |
| get HR pointer of *this->hR, which is a HContainerand contains H(R) | |
| const HContainer< TR > * | getHR () const |
| HContainer< TR > *& | getSR () |
| get SR pointer of *this->sR, which is a HContainerand contains S(R) | |
| const HContainer< TR > * | getSR () const |
| HContainer< TR > *& | get_V_delta_R () |
| get V_delta_R pointer of *this->V_delta_R, which is a HContainerand contains V_delta(R) | |
| void | refresh () override |
| refresh the status of HR | |
| virtual void | updateHk (const int ik) override |
| for target K point, update consequence of hPsi() and matrix() | |
| void | updateSk (const int ik, const int hk_type=0) |
| special for LCAO, update SK only | |
| void | matrix (MatrixBlock< TK > &hk_in, MatrixBlock< TK > &sk_in) override |
Public Member Functions inherited from hamilt::Hamilt< TK > | |
| virtual | ~Hamilt () |
| virtual void | hPsi (const TK *psi_in, TK *hpsi, const size_t size) const |
| core function: for solving eigenvalues of Hamiltonian with iterative method | |
| virtual void | sPsi (const TK *psi_in, TK *spsi, const int nrow, const int npw, const int nbands) const |
| virtual void | matrix (MatrixBlock< std::complex< double > > &hk_in, MatrixBlock< std::complex< double > > &sk_in) |
| core function: return H(k) and S(k) matrixs for direct solving eigenvalues. | |
| virtual void | matrix (MatrixBlock< double > &hk_in, MatrixBlock< double > &sk_in) |
| virtual std::vector< TK > | matrix () |
Private Attributes | |
| const K_Vectors * | kv = nullptr |
| HContainer< TR > * | hR = nullptr |
| Real space Hamiltonian H(R), where R is the Bravis lattice vector. | |
| HContainer< TR > * | sR = nullptr |
| Real space overlap matrix S(R), where R is the Bravis lattice vector. | |
| HContainer< TR > * | V_delta_R = nullptr |
| HS_Matrix_K< TK > * | hsk = nullptr |
| Hamiltonian and overlap matrices for a specific k point. | |
| std::vector< TR > | hRS2 |
| int | refresh_times = 1 |
| int | current_spin = 0 |
| const int | istep = 0 |
Additional Inherited Members | |
Public Attributes inherited from hamilt::Hamilt< TK > | |
| std::string | classname |
| int | non_first_scf |
| Operator< TK, base_device::DEVICE_CPU > * | ops |
| first node operator, add operations from each operators | |
Protected Types inherited from hamilt::Hamilt< TK > | |
| using | syncmem_op = base_device::memory::synchronize_memory_op< TK, base_device::DEVICE_CPU, base_device::DEVICE_CPU > |
Protected Attributes inherited from hamilt::Hamilt< TK > | |
| base_device::DEVICE_CPU * | ctx |
| using hamilt::HamiltLCAO< TK, TR >::TAC = std::pair<int, std::array<int, 3> > |
| hamilt::HamiltLCAO< TK, TR >::HamiltLCAO | ( | const UnitCell & | ucell, |
| const Grid_Driver & | grid_d, | ||
| const Parallel_Orbitals * | paraV, | ||
| elecstate::Potential * | pot_in, | ||
| const K_Vectors & | kv_in, | ||
| const TwoCenterBundle & | two_center_bundle, | ||
| const LCAO_Orbitals & | orb, | ||
| elecstate::DensityMatrix< TK, double > * | DM_in, | ||
| Setup_DeePKS< TK > & | deepks, | ||
| const int | istep, | ||
| Exx_NAO< TK > & | exx_nao | ||
| ) |
Constructor of Hamiltonian for LCAO base HR and SR will be allocated with Operators.
| hamilt::HamiltLCAO< TK, TR >::HamiltLCAO | ( | const UnitCell & | ucell, |
| const Grid_Driver & | grid_d, | ||
| const Parallel_Orbitals * | paraV, | ||
| const K_Vectors & | kv_in, | ||
| const TwoCenterIntegrator & | intor_overlap_orb, | ||
| const std::vector< double > & | orb_cutoff | ||
| ) |
Constructor of vacuum Operators, only HR and SR will be initialed as empty HContainer.
|
inline |
|
inline |
|
inline |
get V_delta_R pointer of *this->V_delta_R, which is a HContainerand contains V_delta(R)
|
inline |
get H(k) pointer
|
inline |
get HR pointer of *this->hR, which is a HContainerand contains H(R)
|
inline |
| Operator< TK > *& hamilt::HamiltLCAO< TK, TR >::getOperator | ( | ) |
get pointer of Operator<TK> ops
|
inline |
get S(k) pointer
|
inline |
get SR pointer of *this->sR, which is a HContainerand contains S(R)
|
inline |
|
override |
|
overridevirtual |
refresh the status of HR
Reimplemented from hamilt::Hamilt< TK >.
|
overridevirtual |
for target K point, update consequence of hPsi() and matrix()
Reimplemented from hamilt::Hamilt< TK >.
| void hamilt::HamiltLCAO< TK, TR >::updateSk | ( | const int | ik, |
| const int | hk_type = 0 |
||
| ) |
special for LCAO, update SK only
| ik | target K point |
| kvec_d | direct coordinates of k-points |
| hk_type | 0: SK is row-major, 1: SK is collumn-major |
|
private |
current_spin for NSPIN=2 case 0: Hamiltonian for spin up, 1: Hamiltonian for spin down
|
private |
Real space Hamiltonian H(R), where R is the Bravis lattice vector.
|
private |
|
private |
Hamiltonian and overlap matrices for a specific k point.
|
private |
|
private |
|
private |
|
private |
Real space overlap matrix S(R), where R is the Bravis lattice vector.
|
private |