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

the output interface to write the Mulliken population charges More...

#include <output_mulliken.h>

Collaboration diagram for ModuleIO::Output_Mulliken< TK >:

Public Member Functions

 Output_Mulliken (Output_Sk< TK > *output_sk, Output_DMK< TK > *output_dmk, Parallel_Orbitals *ParaV, CellIndex *cell_index, const std::vector< int > &isk, int nspin)
 constructor of Output_Mulliken
 
void write (int istep, std::string out_dir)
 the outer interface to write the Mulliken population charges
 
void print_atom_mag (const std::vector< std::vector< double > > &atom_chg, std::ostream &os)
 print atom mag to running log file
 
std::vector< double > get_tot_chg ()
 get total charge
 
std::vector< std::vector< double > > get_atom_chg ()
 get atom charge
 
std::map< std::vector< int >, double > get_orb_chg ()
 get orbital charge
 
std::vector< std::vector< double > > get_atom_mulliken (std::vector< std::vector< double > > &atom_chg)
 returun atom_mulliken for updateing STRU file
 

Private Member Functions

void write_mulliken_nspin1 (int istep, const std::vector< double > &tot_chg, const std::vector< std::vector< double > > &atom_chg, std::map< std::vector< int >, double > orb_chg, std::ofstream &os)
 write mulliken.txt for the case of nspin=1
 
void write_mulliken_nspin2 (int istep, const std::vector< double > &tot_chg, const std::vector< std::vector< double > > &atom_chg, std::map< std::vector< int >, double > orb_chg, std::ofstream &os)
 write mulliken.txt for the case of nspin=2
 
void write_mulliken_nspin4 (int istep, const std::vector< double > &tot_chg, const std::vector< std::vector< double > > &atom_chg, std::map< std::vector< int >, double > orb_chg, std::ofstream &os)
 write mulliken.txt for the case of nspin=4
 
void set_nspin (int nspin_in)
 set nspin
 
void set_ParaV (Parallel_Orbitals *ParaV_in)
 set orbital parallel info
 
void collect_MW (ModuleBase::matrix &MecMulP, const ModuleBase::ComplexMatrix &mud, int nw, int isk)
 collect_mw from matrix multiplication result
 
void cal_orbMulP ()
 mulliken population = trace(dm*overlap)
 
void cal_orbMulP ()
 
void cal_orbMulP ()
 

Private Attributes

Output_Sk< TK > * output_sk_ = nullptr
 
Output_DMK< TK > * output_dmk_ = nullptr
 
Parallel_OrbitalsParaV_ = nullptr
 
CellIndexcell_index_ = nullptr
 
const std::vector< int > & isk_
 
int nspin_
 
ModuleBase::matrix orbMulP_
 

Detailed Description

template<typename TK>
class ModuleIO::Output_Mulliken< TK >

the output interface to write the Mulliken population charges

Constructor & Destructor Documentation

◆ Output_Mulliken()

template<typename TK >
ModuleIO::Output_Mulliken< TK >::Output_Mulliken ( Output_Sk< TK > *  output_sk,
Output_DMK< TK > *  output_dmk,
Parallel_Orbitals ParaV,
CellIndex cell_index,
const std::vector< int > &  isk,
int  nspin 
)

constructor of Output_Mulliken

Here is the call graph for this function:

Member Function Documentation

◆ cal_orbMulP() [1/3]

void ModuleIO::Output_Mulliken< std::complex< double > >::cal_orbMulP ( )
private
Here is the call graph for this function:

◆ cal_orbMulP() [2/3]

void ModuleIO::Output_Mulliken< double >::cal_orbMulP ( )
private
Here is the call graph for this function:

◆ cal_orbMulP() [3/3]

template<typename TK >
void ModuleIO::Output_Mulliken< TK >::cal_orbMulP ( )
private

mulliken population = trace(dm*overlap)

Here is the caller graph for this function:

◆ collect_MW()

template<typename TK >
void ModuleIO::Output_Mulliken< TK >::collect_MW ( ModuleBase::matrix MecMulP,
const ModuleBase::ComplexMatrix mud,
int  nw,
int  isk 
)
private

collect_mw from matrix multiplication result

Here is the call graph for this function:

◆ get_atom_chg()

template<typename TK >
std::vector< std::vector< double > > ModuleIO::Output_Mulliken< TK >::get_atom_chg ( )

get atom charge

◆ get_atom_mulliken()

template<typename TK >
std::vector< std::vector< double > > ModuleIO::Output_Mulliken< TK >::get_atom_mulliken ( std::vector< std::vector< double > > &  atom_chg)

returun atom_mulliken for updateing STRU file

Here is the call graph for this function:

◆ get_orb_chg()

template<typename TK >
std::map< std::vector< int >, double > ModuleIO::Output_Mulliken< TK >::get_orb_chg ( )

get orbital charge

◆ get_tot_chg()

template<typename TK >
std::vector< double > ModuleIO::Output_Mulliken< TK >::get_tot_chg ( )

get total charge

◆ print_atom_mag()

template<typename TK >
void ModuleIO::Output_Mulliken< TK >::print_atom_mag ( const std::vector< std::vector< double > > &  atom_chg,
std::ostream &  os 
)

print atom mag to running log file

output mag in polar coordinates

do nothing due to no mag info available

Here is the call graph for this function:

◆ set_nspin()

template<typename TK >
void ModuleIO::Output_Mulliken< TK >::set_nspin ( int  nspin_in)
private

set nspin

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

◆ set_ParaV()

template<typename TK >
void ModuleIO::Output_Mulliken< TK >::set_ParaV ( Parallel_Orbitals ParaV_in)
private

set orbital parallel info

set ParaV

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

◆ write()

template<typename TK >
void ModuleIO::Output_Mulliken< TK >::write ( int  istep,
std::string  out_dir 
)

the outer interface to write the Mulliken population charges

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

◆ write_mulliken_nspin1()

template<typename TK >
void ModuleIO::Output_Mulliken< TK >::write_mulliken_nspin1 ( int  istep,
const std::vector< double > &  tot_chg,
const std::vector< std::vector< double > > &  atom_chg,
std::map< std::vector< int >, double >  orb_chg,
std::ofstream &  os 
)
private

write mulliken.txt for the case of nspin=1

step info

orbital decomposed mulliken populations

header of the table

loop of L

Here is the call graph for this function:

◆ write_mulliken_nspin2()

template<typename TK >
void ModuleIO::Output_Mulliken< TK >::write_mulliken_nspin2 ( int  istep,
const std::vector< double > &  tot_chg,
const std::vector< std::vector< double > > &  atom_chg,
std::map< std::vector< int >, double >  orb_chg,
std::ofstream &  os 
)
private

write mulliken.txt for the case of nspin=2

step info

orbital decomposed mulliken populations

header of the table

loop of L

Here is the call graph for this function:

◆ write_mulliken_nspin4()

template<typename TK >
void ModuleIO::Output_Mulliken< TK >::write_mulliken_nspin4 ( int  istep,
const std::vector< double > &  tot_chg,
const std::vector< std::vector< double > > &  atom_chg,
std::map< std::vector< int >, double >  orb_chg,
std::ofstream &  os 
)
private

write mulliken.txt for the case of nspin=4

step info

orbital decomposed mulliken populations

header of the table

loop of L

Here is the call graph for this function:

Member Data Documentation

◆ cell_index_

template<typename TK >
CellIndex* ModuleIO::Output_Mulliken< TK >::cell_index_ = nullptr
private

◆ isk_

template<typename TK >
const std::vector<int>& ModuleIO::Output_Mulliken< TK >::isk_
private

◆ nspin_

template<typename TK >
int ModuleIO::Output_Mulliken< TK >::nspin_
private

◆ orbMulP_

template<typename TK >
ModuleBase::matrix ModuleIO::Output_Mulliken< TK >::orbMulP_
private

◆ output_dmk_

template<typename TK >
Output_DMK<TK>* ModuleIO::Output_Mulliken< TK >::output_dmk_ = nullptr
private

◆ output_sk_

template<typename TK >
Output_Sk<TK>* ModuleIO::Output_Mulliken< TK >::output_sk_ = nullptr
private

◆ ParaV_

template<typename TK >
Parallel_Orbitals* ModuleIO::Output_Mulliken< TK >::ParaV_ = nullptr
private

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