ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Velocity_op< TR > Class Template Reference

#include <velocity_op.h>

Collaboration diagram for Velocity_op< TR >:

Public Member Functions

 Velocity_op (const UnitCell *ucell_in, const Grid_Driver *GridD_in, const Parallel_Orbitals *paraV, const LCAO_Orbitals &orb, const TwoCenterIntegrator *intor)
 
 ~Velocity_op ()
 
hamilt::HContainer< std::complex< double > > * get_current_term_pointer (const int &i) const
 
void calculate_vcomm_r ()
 
void calculate_grad_term ()
 

Private Member Functions

void initialize_vcomm_r (const Grid_Driver *GridD_in, const Parallel_Orbitals *paraV)
 initialize HR, search the nearest neighbor atoms HContainer is used to store the non-local pseudopotential matrix with specific <I,J,R> atom-pairs the size of HR will be fixed after initialization
 
void initialize_grad_term (const Grid_Driver *GridD_in, const Parallel_Orbitals *paraV)
 
void cal_vcomm_r_IJR (const int &iat1, const int &iat2, const int &T0, const Parallel_Orbitals *paraV, const std::vector< std::unordered_map< int, std::vector< double > > > &nlm1_all, const std::vector< std::unordered_map< int, std::vector< double > > > &nlm2_all, std::complex< double > **current_mat_p)
 calculate the HR local matrix of <I,J,R> atom pair
 
void cal_grad_IJR (const int &iat1, const int &iat2, const Parallel_Orbitals *paraV, const ModuleBase::Vector3< double > &dtau, std::complex< double > **current_mat_p)
 

Private Attributes

const UnitCellucell = nullptr
 
const Parallel_OrbitalsparaV = nullptr
 
const LCAO_Orbitalsorb_
 
std::vector< hamilt::HContainer< std::complex< double > > * > current_term = {nullptr, nullptr, nullptr}
 Store real space hamiltonian. TD term should include imaginary part, thus it has to be complex type. Only shared between TD operators.
 
const TwoCenterIntegratorintor_ = nullptr
 
const TwoCenterIntegratorintorbeta_ = nullptr
 
std::vector< AdjacentAtomInfoadjs_vcommr
 exact the nearest neighbor atoms from all adjacent atoms
 
std::vector< AdjacentAtomInfoadjs_grad
 
ModuleBase::Vector3< double > cart_At
 Store the vector potential for td_ekinetic term.
 

Static Private Attributes

static cal_r_overlap_R r_calculator
 
static bool init_done = false
 

Constructor & Destructor Documentation

◆ Velocity_op()

template<typename TR >
Velocity_op< TR >::Velocity_op ( const UnitCell ucell_in,
const Grid_Driver GridD_in,
const Parallel_Orbitals paraV,
const LCAO_Orbitals orb,
const TwoCenterIntegrator intor 
)
Here is the call graph for this function:

◆ ~Velocity_op()

template<typename TR >
Velocity_op< TR >::~Velocity_op ( )

Member Function Documentation

◆ cal_grad_IJR()

template<typename TR >
void Velocity_op< TR >::cal_grad_IJR ( const int &  iat1,
const int &  iat2,
const Parallel_Orbitals paraV,
const ModuleBase::Vector3< double > &  dtau,
std::complex< double > **  current_mat_p 
)
private
Here is the call graph for this function:

◆ cal_vcomm_r_IJR()

template<typename TR >
void Velocity_op< TR >::cal_vcomm_r_IJR ( const int &  iat1,
const int &  iat2,
const int &  T0,
const Parallel_Orbitals paraV,
const std::vector< std::unordered_map< int, std::vector< double > > > &  nlm1_all,
const std::vector< std::unordered_map< int, std::vector< double > > > &  nlm2_all,
std::complex< double > **  current_mat_p 
)
private

calculate the HR local matrix of <I,J,R> atom pair

Here is the call graph for this function:

◆ calculate_grad_term()

template<typename TR >
void Velocity_op< TR >::calculate_grad_term ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_vcomm_r()

template<typename TR >
void Velocity_op< TR >::calculate_vcomm_r ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_current_term_pointer()

template<typename TR >
hamilt::HContainer< std::complex< double > > * Velocity_op< TR >::get_current_term_pointer ( const int &  i) const
inline
Here is the caller graph for this function:

◆ initialize_grad_term()

template<typename TR >
void Velocity_op< TR >::initialize_grad_term ( const Grid_Driver GridD_in,
const Parallel_Orbitals paraV 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize_vcomm_r()

template<typename TR >
void Velocity_op< TR >::initialize_vcomm_r ( const Grid_Driver GridD_in,
const Parallel_Orbitals paraV 
)
private

initialize HR, search the nearest neighbor atoms HContainer is used to store the non-local pseudopotential matrix with specific <I,J,R> atom-pairs the size of HR will be fixed after initialization

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ adjs_grad

template<typename TR >
std::vector<AdjacentAtomInfo> Velocity_op< TR >::adjs_grad
private

◆ adjs_vcommr

template<typename TR >
std::vector<AdjacentAtomInfo> Velocity_op< TR >::adjs_vcommr
private

exact the nearest neighbor atoms from all adjacent atoms

◆ cart_At

template<typename TR >
ModuleBase::Vector3<double> Velocity_op< TR >::cart_At
private

Store the vector potential for td_ekinetic term.

◆ current_term

template<typename TR >
std::vector<hamilt::HContainer<std::complex<double> >*> Velocity_op< TR >::current_term = {nullptr, nullptr, nullptr}
private

Store real space hamiltonian. TD term should include imaginary part, thus it has to be complex type. Only shared between TD operators.

◆ init_done

template<typename TR >
bool Velocity_op< TR >::init_done = false
staticprivate

◆ intor_

template<typename TR >
const TwoCenterIntegrator* Velocity_op< TR >::intor_ = nullptr
private

◆ intorbeta_

template<typename TR >
const TwoCenterIntegrator* Velocity_op< TR >::intorbeta_ = nullptr
private

◆ orb_

template<typename TR >
const LCAO_Orbitals& Velocity_op< TR >::orb_
private

◆ paraV

template<typename TR >
const Parallel_Orbitals* Velocity_op< TR >::paraV = nullptr
private

◆ r_calculator

template<typename TR >
cal_r_overlap_R Velocity_op< TR >::r_calculator
staticprivate

◆ ucell

template<typename TR >
const UnitCell* Velocity_op< TR >::ucell = nullptr
private

The documentation for this class was generated from the following files: