#include <irreducible_sector.h>
|
void | find_irreducible_sector (const Symmetry &symm, const Atom *atoms, const Statistics &st, const std::vector< TC > &Rs, const TC &period, const Lattice &lat) |
| The main function to find irreducible sector: {abR}.
|
|
const std::map< Tap, std::set< TC > > & | get_irreducible_sector () const |
|
TCdouble | get_return_lattice (const Symmetry &symm, const ModuleBase::Matrix3 &gmatd, const TCdouble gtransd, const TCdouble &posd_a1, const TCdouble &posd_a2) const |
|
TCdouble | get_return_lattice (const int iat, const int isym) const |
|
|
void | cal_return_lattice_all (const Symmetry &symm, const Atom *atoms, const Statistics &st) |
|
TC | rotate_R (const Symmetry &symm, const int isym, const int iat1, const int iat2, const TC &R, const char gauge='R') const |
| The sub functions to find irreducible sector: {abR}.
|
|
TapR | rotate_apR_by_formula (const Symmetry &symm, const int isym, const TapR &iapR, const char gauge='R') const |
|
TCdouble | get_aRb_direct (const Atom *atoms, const Statistics &st, const int iat1, const int iat2, const TC &R, const char gauge='R') const |
| gauge='L': tau_a + R - tau_b; gauge='R': tau_a - tau_b - R (direct)
|
|
TCdouble | get_aRb_direct (const Atom *atoms, const Statistics &st, const int iat1, const int iat2, const TCdouble &R, const char gauge='R') const |
|
ModuleBase::Matrix3 | direct_to_cartesian (const ModuleBase::Matrix3 &d, const ModuleBase::Matrix3 &latvec) const |
|
void | output_full_map_to_irreducible_sector (const int nat) |
|
void | output_sector_star () |
|
void | write_irreducible_sector () |
|
void | gen_symmetry_BvK (const Symmetry &symm, const Atom *atoms, const Lattice &lat, const Statistics &st, const TC bvk_period) |
| The sub functions judge special symmetry.
|
|
◆ cal_return_lattice_all()
void ModuleSymmetry::Irreducible_Sector::cal_return_lattice_all |
( |
const Symmetry & |
symm, |
|
|
const Atom * |
atoms, |
|
|
const Statistics & |
st |
|
) |
| |
|
protected |
◆ direct_to_cartesian()
◆ find_irreducible_sector()
void ModuleSymmetry::Irreducible_Sector::find_irreducible_sector |
( |
const Symmetry & |
symm, |
|
|
const Atom * |
atoms, |
|
|
const Statistics & |
st, |
|
|
const std::vector< TC > & |
Rs, |
|
|
const TC & |
period, |
|
|
const Lattice & |
lat |
|
) |
| |
The main function to find irreducible sector: {abR}.
◆ gen_symmetry_BvK()
void ModuleSymmetry::Irreducible_Sector::gen_symmetry_BvK |
( |
const Symmetry & |
symm, |
|
|
const Atom * |
atoms, |
|
|
const Lattice & |
lat, |
|
|
const Statistics & |
st, |
|
|
const TC |
bvk_period |
|
) |
| |
|
protected |
The sub functions judge special symmetry.
◆ get_aRb_direct() [1/2]
TCdouble ModuleSymmetry::Irreducible_Sector::get_aRb_direct |
( |
const Atom * |
atoms, |
|
|
const Statistics & |
st, |
|
|
const int |
iat1, |
|
|
const int |
iat2, |
|
|
const TC & |
R, |
|
|
const char |
gauge = 'R' |
|
) |
| const |
|
protected |
gauge='L': tau_a + R - tau_b; gauge='R': tau_a - tau_b - R (direct)
◆ get_aRb_direct() [2/2]
TCdouble ModuleSymmetry::Irreducible_Sector::get_aRb_direct |
( |
const Atom * |
atoms, |
|
|
const Statistics & |
st, |
|
|
const int |
iat1, |
|
|
const int |
iat2, |
|
|
const TCdouble & |
R, |
|
|
const char |
gauge = 'R' |
|
) |
| const |
|
protected |
◆ get_irreducible_sector()
const std::map< Tap, std::set< TC > > & ModuleSymmetry::Irreducible_Sector::get_irreducible_sector |
( |
| ) |
const |
|
inline |
◆ get_return_lattice() [1/2]
TCdouble ModuleSymmetry::Irreducible_Sector::get_return_lattice |
( |
const int |
iat, |
|
|
const int |
isym |
|
) |
| const |
|
inline |
◆ get_return_lattice() [2/2]
Perfoming {R|t} to atom position r in the R=0 lattice, we get Rr+t, which may get out of R=0 lattice, whose image in R=0 lattice is r'=Rr+t-O. This function is to get O for each atom and each symmetry operation. the range of direct position is [-0.5, 0.5).
◆ output_full_map_to_irreducible_sector()
void ModuleSymmetry::Irreducible_Sector::output_full_map_to_irreducible_sector |
( |
const int |
nat | ) |
|
|
protected |
◆ output_sector_star()
void ModuleSymmetry::Irreducible_Sector::output_sector_star |
( |
| ) |
|
|
protected |
◆ rotate_apR_by_formula()
TapR ModuleSymmetry::Irreducible_Sector::rotate_apR_by_formula |
( |
const Symmetry & |
symm, |
|
|
const int |
isym, |
|
|
const TapR & |
iapR, |
|
|
const char |
gauge = 'R' |
|
) |
| const |
|
protected |
◆ rotate_R()
TC ModuleSymmetry::Irreducible_Sector::rotate_R |
( |
const Symmetry & |
symm, |
|
|
const int |
isym, |
|
|
const int |
iat1, |
|
|
const int |
iat2, |
|
|
const TC & |
R, |
|
|
const char |
gauge = 'R' |
|
) |
| const |
|
protected |
The sub functions to find irreducible sector: {abR}.
gauge='L' means H(R)=<R|H|0>; gauge='R' means H(R)=<0|H|R> gauge='L': R'=R+O_1-O_2; gauge='R': R'=R+O_2-O_1
◆ write_irreducible_sector()
void ModuleSymmetry::Irreducible_Sector::write_irreducible_sector |
( |
| ) |
|
|
protected |
◆ Symmetry_rotation
◆ bvk_nsym_
int ModuleSymmetry::Irreducible_Sector::bvk_nsym_ |
|
protected |
◆ full_map_to_irreducible_sector_
std::map<TapR, std::pair<int, TapR>, apR_less_func> ModuleSymmetry::Irreducible_Sector::full_map_to_irreducible_sector_ |
|
protected |
◆ invmap_
std::vector<int> ModuleSymmetry::Irreducible_Sector::invmap_ |
|
protected |
◆ irreducible_sector_
std::map<Tap, std::set<TC> > ModuleSymmetry::Irreducible_Sector::irreducible_sector_ |
|
protected |
whether in 2D plain or not for each symmetry operation
irreducible atom pairs: [n_iap][(isym, ap=(iat1, iat2))] The index range of the orbital matrix to be calculated: irreducible R in irreducible atom pairs
◆ isymbvk_to_isym_
std::vector<int> ModuleSymmetry::Irreducible_Sector::isymbvk_to_isym_ |
|
protected |
symmetry info for BvK supercell
◆ return_lattice_
std::vector<std::vector<TCdouble> > ModuleSymmetry::Irreducible_Sector::return_lattice_ |
|
protected |
the direct lattice vector of {R|t}\tau-\tau' for each atoms and each symmetry operation. [natom][nsym]
◆ sector_stars_
std::map<TapR, std::map<int, TapR> > ModuleSymmetry::Irreducible_Sector::sector_stars_ |
|
protected |
The documentation for this class was generated from the following files:
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_ri/module_exx_symmetry/irreducible_sector.h
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_ri/module_exx_symmetry/irreducible_sector.cpp
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_ri/module_exx_symmetry/irreducible_sector_bvk.cpp