ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
EleCond< FPTYPE, Device > Class Template Reference

#include <elecond.h>

Inheritance diagram for EleCond< FPTYPE, Device >:
Collaboration diagram for EleCond< FPTYPE, Device >:

Public Types

using resmem_complex_op = base_device::memory::resize_memory_op< std::complex< FPTYPE >, Device >
 
using delmem_complex_op = base_device::memory::delete_memory_op< std::complex< FPTYPE >, Device >
 
using syncmem_complex_d2h_op = base_device::memory::synchronize_memory_op< std::complex< FPTYPE >, base_device::DEVICE_CPU, Device >
 

Public Member Functions

 EleCond (UnitCell *p_ucell_in, K_Vectors *p_kv_in, elecstate::ElecState *p_elec_in, ModulePW::PW_Basis_K *p_wfcpw_in, psi::Psi< std::complex< FPTYPE >, Device > *p_psi_in, pseudopot_cell_vnl *p_ppcell_in)
 
 ~EleCond ()
 
void KG (const int &smear_type, const double &fwhmin, const double &wcut, const double &dw_in, const double &dt_in, const bool &nonlocal, ModuleBase::matrix &wg)
 calculate Onsager coefficients Lmn(\omega) and conductivities with Kubo-Greenwood formula
 

Protected Member Functions

void jjresponse_ks (const int ik, const int nt, const double dt, const double decut, ModuleBase::matrix &wg, hamilt::Velocity< FPTYPE, Device > &velop, double *ct11, double *ct12, double *ct22)
 calculate the response function Cmn(t) for currents
 
void calcondw (const int nt, const double dt, const int &smear_type, const double fwhmin, const double wcut, const double dw_in, double *ct11, double *ct12, double *ct22)
 Calculate the conductivity using the response function.
 

Protected Attributes

pseudopot_cell_vnlp_ppcell = nullptr
 pointer to the pseudopotential
 
UnitCellp_ucell = nullptr
 pointer to the unit cell
 
ModulePW::PW_Basis_Kp_wfcpw = nullptr
 pointer to the plane wave basis
 
K_Vectorsp_kv = nullptr
 pointer to the k vectors
 
elecstate::ElecStatep_elec = nullptr
 pointer to the electronic state
 
psi::Psi< std::complex< FPTYPE >, Device > * p_psi = nullptr
 pointer to the wavefunction
 

Member Typedef Documentation

◆ delmem_complex_op

template<typename FPTYPE , typename Device >
using EleCond< FPTYPE, Device >::delmem_complex_op = base_device::memory::delete_memory_op<std::complex<FPTYPE>, Device>

◆ resmem_complex_op

template<typename FPTYPE , typename Device >
using EleCond< FPTYPE, Device >::resmem_complex_op = base_device::memory::resize_memory_op<std::complex<FPTYPE>, Device>

◆ syncmem_complex_d2h_op

template<typename FPTYPE , typename Device >
using EleCond< FPTYPE, Device >::syncmem_complex_d2h_op = base_device::memory::synchronize_memory_op<std::complex<FPTYPE>, base_device::DEVICE_CPU, Device>

Constructor & Destructor Documentation

◆ EleCond()

template<typename FPTYPE , typename Device >
EleCond< FPTYPE, Device >::EleCond ( UnitCell p_ucell_in,
K_Vectors p_kv_in,
elecstate::ElecState p_elec_in,
ModulePW::PW_Basis_K p_wfcpw_in,
psi::Psi< std::complex< FPTYPE >, Device > *  p_psi_in,
pseudopot_cell_vnl p_ppcell_in 
)

◆ ~EleCond()

template<typename FPTYPE , typename Device >
EleCond< FPTYPE, Device >::~EleCond ( )
inline

Member Function Documentation

◆ calcondw()

template<typename FPTYPE , typename Device >
void EleCond< FPTYPE, Device >::calcondw ( const int  nt,
const double  dt,
const int &  smear_type,
const double  fwhmin,
const double  wcut,
const double  dw_in,
double *  ct11,
double *  ct12,
double *  ct22 
)
protected

Calculate the conductivity using the response function.

Parameters
ntnumber of time steps
dttime step
smear_typesmearing type 1: gaussian, 2: lorentzian
fwhminfull width at half maximum of the smearing function
wcutcutoff frequency
dw_infrequency step
ct11C11 component of the response function
ct12C12 component of the response function
ct22C22 component of the response function

◆ jjresponse_ks()

template<typename FPTYPE , typename Device >
void EleCond< FPTYPE, Device >::jjresponse_ks ( const int  ik,
const int  nt,
const double  dt,
const double  decut,
ModuleBase::matrix wg,
hamilt::Velocity< FPTYPE, Device > &  velop,
double *  ct11,
double *  ct12,
double *  ct22 
)
protected

calculate the response function Cmn(t) for currents

Parameters
ikk point
ntnumber of steps of time
dttime step
decutignore dE which is larger than decut
wgwg(ik,ib) occupation for the ib-th band in the ik-th kpoint
velopvelocity operator
ct11C11(t)
ct12C12(t)
ct22C22(t)
Here is the call graph for this function:

◆ KG()

template<typename FPTYPE , typename Device >
void EleCond< FPTYPE, Device >::KG ( const int &  smear_type,
const double &  fwhmin,
const double &  wcut,
const double &  dw_in,
const double &  dt_in,
const bool &  nonlocal,
ModuleBase::matrix wg 
)

calculate Onsager coefficients Lmn(\omega) and conductivities with Kubo-Greenwood formula

Parameters
fwhminFWHM for delta function
smear_type1: Gaussian, 2: Lorentzian
wcutcutoff \omega for Lmn(\omega)
dw_in\omega step
dt_intime step
nonlocalwhether to include the nonlocal potential corrections for velocity operator
wgwg(ik,ib) occupation for the ib-th band in the ik-th kpoint
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ p_elec

template<typename FPTYPE , typename Device >
elecstate::ElecState* EleCond< FPTYPE, Device >::p_elec = nullptr
protected

pointer to the electronic state

◆ p_kv

template<typename FPTYPE , typename Device >
K_Vectors* EleCond< FPTYPE, Device >::p_kv = nullptr
protected

pointer to the k vectors

◆ p_ppcell

template<typename FPTYPE , typename Device >
pseudopot_cell_vnl* EleCond< FPTYPE, Device >::p_ppcell = nullptr
protected

pointer to the pseudopotential

◆ p_psi

template<typename FPTYPE , typename Device >
psi::Psi<std::complex<FPTYPE>, Device>* EleCond< FPTYPE, Device >::p_psi = nullptr
protected

pointer to the wavefunction

◆ p_ucell

template<typename FPTYPE , typename Device >
UnitCell* EleCond< FPTYPE, Device >::p_ucell = nullptr
protected

pointer to the unit cell

◆ p_wfcpw

template<typename FPTYPE , typename Device >
ModulePW::PW_Basis_K* EleCond< FPTYPE, Device >::p_wfcpw = nullptr
protected

pointer to the plane wave basis


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