ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
toWannier90_PW Class Reference

#include <to_wannier90_pw.h>

Inheritance diagram for toWannier90_PW:
Collaboration diagram for toWannier90_PW:

Public Member Functions

 toWannier90_PW (const bool &out_wannier_mmn, const bool &out_wannier_amn, const bool &out_wannier_unk, const bool &out_wannier_eig, const bool &out_wannier_wvfn_formatted, const std::string &nnkpfile, const std::string &wannier_spin)
 
 ~toWannier90_PW ()
 
void calculate (const UnitCell &ucell, const ModuleBase::matrix &ekb, const ModulePW::PW_Basis_K *wfcpw, const ModulePW::PW_Basis_Big *bigpw, const K_Vectors &kv, const psi::Psi< std::complex< double > > *psi)
 
void calculate (const UnitCell &ucell, const ModuleBase::matrix &ekb, const ModulePW::PW_Basis_K *wfcpw, const ModulePW::PW_Basis_Big *bigpw, const K_Vectors &kv, const psi::Psi< double > *psi)
 
void cal_Amn (const psi::Psi< std::complex< double > > &psi_pw, const ModulePW::PW_Basis_K *wfcpw)
 
void cal_Mmn (const psi::Psi< std::complex< double > > &psi_pw, const ModulePW::PW_Basis_K *wfcpw)
 
void out_unk (const psi::Psi< std::complex< double > > &psi_pw, const ModulePW::PW_Basis_K *wfcpw, const ModulePW::PW_Basis_Big *bigpw)
 
void set_tpiba_omega (const double &tpiba, const double &omega)
 
- Public Member Functions inherited from toWannier90
 toWannier90 ()
 
 toWannier90 (const bool &out_wannier_mmn, const bool &out_wannier_amn, const bool &out_wannier_unk, const bool &out_wannier_eig, const bool &out_wannier_wvfn_formatted, const std::string &nnkpfile, const std::string &wannier_spin)
 
 ~toWannier90 ()
 
void calculate ()
 
void read_nnkp (const UnitCell &ucell, const K_Vectors &kv)
 
void out_eig (const ModuleBase::matrix &ekb)
 
void cal_Amn ()
 
void cal_Mmn ()
 
void out_unk ()
 

Protected Member Functions

void unkdotkb (const psi::Psi< std::complex< double > > &psi_pw, const ModulePW::PW_Basis_K *wfcpw, const int &ik, const int &ikb, const ModuleBase::Vector3< double > G, ModuleBase::ComplexMatrix &Mmn)
 
void gen_radial_function_in_q (std::vector< ModuleBase::matrix > &radial_in_q)
 
void integral (const int meshr, const double *psir, const double *r, const double *rab, const int &l, double *table)
 
void produce_trial_in_pw (const psi::Psi< std::complex< double > > &psi_pw, const int &ik, const ModulePW::PW_Basis_K *wfcpw, const std::vector< ModuleBase::matrix > &radial_in_q, ModuleBase::ComplexMatrix &trial_orbitals_k)
 
void get_trial_orbitals_lm_k (const int &orbital_L, const int &orbital_m, const ModuleBase::matrix &ylm, const ModuleBase::Vector3< double > *gk, const int &npw, double *radial_in_q_single, std::complex< double > *orbital_in_G_single)
 
void unkdotW_A (const psi::Psi< std::complex< double > > &psi_pw, const ModulePW::PW_Basis_K *wfcpw, const int &ik, const std::vector< ModuleBase::matrix > &radial_in_q, ModuleBase::ComplexMatrix &Amn)
 
- Protected Member Functions inherited from toWannier90
bool try_read_nnkp (const UnitCell &ucell, const K_Vectors &kv)
 

Protected Attributes

const int mesh_r = 333
 
const double dx = 0.025
 
const double x_min = -6.0
 
double const * tpiba
 
double const * omega
 
- Protected Attributes inherited from toWannier90
int num_kpts =0
 
int cal_num_kpts =0
 
std::vector< std::vector< int > > nnlist
 
std::vector< std::vector< ModuleBase::Vector3< double > > > nncell
 
int nntot = 0
 
int start_k_index = 0
 
int num_wannier =0
 
ModuleBase::Vector3< double > * R_centre = nullptr
 
int * L = nullptr
 
int * m = nullptr
 
int * rvalue = nullptr
 
ModuleBase::Vector3< double > * z_axis = nullptr
 
ModuleBase::Vector3< double > * x_axis = nullptr
 
double * alfa = nullptr
 
int * spin_eig = nullptr
 
ModuleBase::Vector3< double > * spin_qaxis = nullptr
 
std::complex< double > * up_con = nullptr
 
std::complex< double > * dn_con = nullptr
 
bool out_wannier_mmn = true
 
bool out_wannier_amn = true
 
bool out_wannier_unk = true
 
bool out_wannier_eig = true
 
bool out_wannier_wvfn_formatted = true
 
std::string nnkpfile = ""
 
std::string wannier_file_name = "seedname"
 
std::string wannier_spin = "up"
 
int num_exclude_bands = 0
 
std::unordered_set< int > exclude_bands
 
int num_bands = 0
 
int * cal_band_index = nullptr
 
bool gamma_only_wannier = false
 

Constructor & Destructor Documentation

◆ toWannier90_PW()

toWannier90_PW::toWannier90_PW ( const bool &  out_wannier_mmn,
const bool &  out_wannier_amn,
const bool &  out_wannier_unk,
const bool &  out_wannier_eig,
const bool &  out_wannier_wvfn_formatted,
const std::string &  nnkpfile,
const std::string &  wannier_spin 
)

◆ ~toWannier90_PW()

toWannier90_PW::~toWannier90_PW ( )

Member Function Documentation

◆ cal_Amn()

void toWannier90_PW::cal_Amn ( const psi::Psi< std::complex< double > > &  psi_pw,
const ModulePW::PW_Basis_K wfcpw 
)
Here is the call graph for this function:

◆ cal_Mmn()

void toWannier90_PW::cal_Mmn ( const psi::Psi< std::complex< double > > &  psi_pw,
const ModulePW::PW_Basis_K wfcpw 
)
Here is the call graph for this function:

◆ calculate() [1/2]

void toWannier90_PW::calculate ( const UnitCell ucell,
const ModuleBase::matrix ekb,
const ModulePW::PW_Basis_K wfcpw,
const ModulePW::PW_Basis_Big bigpw,
const K_Vectors kv,
const psi::Psi< double > *  psi 
)
inline

◆ calculate() [2/2]

void toWannier90_PW::calculate ( const UnitCell ucell,
const ModuleBase::matrix ekb,
const ModulePW::PW_Basis_K wfcpw,
const ModulePW::PW_Basis_Big bigpw,
const K_Vectors kv,
const psi::Psi< std::complex< double > > *  psi 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gen_radial_function_in_q()

void toWannier90_PW::gen_radial_function_in_q ( std::vector< ModuleBase::matrix > &  radial_in_q)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_trial_orbitals_lm_k()

void toWannier90_PW::get_trial_orbitals_lm_k ( const int &  orbital_L,
const int &  orbital_m,
const ModuleBase::matrix ylm,
const ModuleBase::Vector3< double > *  gk,
const int &  npw,
double *  radial_in_q_single,
std::complex< double > *  orbital_in_G_single 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ integral()

void toWannier90_PW::integral ( const int  meshr,
const double *  psir,
const double *  r,
const double *  rab,
const int &  l,
double *  table 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ out_unk()

void toWannier90_PW::out_unk ( const psi::Psi< std::complex< double > > &  psi_pw,
const ModulePW::PW_Basis_K wfcpw,
const ModulePW::PW_Basis_Big bigpw 
)
Here is the call graph for this function:

◆ produce_trial_in_pw()

void toWannier90_PW::produce_trial_in_pw ( const psi::Psi< std::complex< double > > &  psi_pw,
const int &  ik,
const ModulePW::PW_Basis_K wfcpw,
const std::vector< ModuleBase::matrix > &  radial_in_q,
ModuleBase::ComplexMatrix trial_orbitals_k 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_tpiba_omega()

void toWannier90_PW::set_tpiba_omega ( const double &  tpiba,
const double &  omega 
)
Here is the caller graph for this function:

◆ unkdotkb()

void toWannier90_PW::unkdotkb ( const psi::Psi< std::complex< double > > &  psi_pw,
const ModulePW::PW_Basis_K wfcpw,
const int &  ik,
const int &  ikb,
const ModuleBase::Vector3< double >  G,
ModuleBase::ComplexMatrix Mmn 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ unkdotW_A()

void toWannier90_PW::unkdotW_A ( const psi::Psi< std::complex< double > > &  psi_pw,
const ModulePW::PW_Basis_K wfcpw,
const int &  ik,
const std::vector< ModuleBase::matrix > &  radial_in_q,
ModuleBase::ComplexMatrix Amn 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ dx

const double toWannier90_PW::dx = 0.025
protected

◆ mesh_r

const int toWannier90_PW::mesh_r = 333
protected

◆ omega

double const* toWannier90_PW::omega
protected

◆ tpiba

double const* toWannier90_PW::tpiba
protected

◆ x_min

const double toWannier90_PW::x_min = -6.0
protected

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