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

#include <symmetry_basic.h>

Inheritance diagram for ModuleSymmetry::Symmetry_Basic:
Collaboration diagram for ModuleSymmetry::Symmetry_Basic:

Public Member Functions

 Symmetry_Basic ()
 
 ~Symmetry_Basic ()
 
bool equal (const double &m, const double &n) const
 
void check_boundary (double &x) const
 
double get_translation_vector (const double &x1, const double &x2) const
 
void check_translation (double &x, const double &t) const
 
double check_diff (const double &x1, const double &x2) const
 
void veccon (double *va, double *vb, const int num, const ModuleBase::Vector3< double > &aa1, const ModuleBase::Vector3< double > &aa2, const ModuleBase::Vector3< double > &aa3, const ModuleBase::Vector3< double > &bb1, const ModuleBase::Vector3< double > &bb2, const ModuleBase::Vector3< double > &bb3)
 
void matrigen (ModuleBase::Matrix3 *symgen, const int ngen, ModuleBase::Matrix3 *symop, int &nop) const
 
void setgroup (ModuleBase::Matrix3 *symop, int &nop, const int &ibrav) const
 
void rotate (ModuleBase::Matrix3 &gmatrix, ModuleBase::Vector3< double > &gtrans, int i, int j, int k, const int, const int, const int, int &, int &, int &)
 
void test_atom_ordering (double *posi, const int natom, int *subindex) const
 
int subgroup (const int &nrot, const int &ninv, const int &nc2, const int &nc3, const int &nc4, const int &nc6, const int &ns1, const int &ns3, const int &ns4, const int &ns6) const
 
bool pointgroup (const int &nrot, int &pgnumber, std::string &pgname, const ModuleBase::Matrix3 *gmatrix, std::ofstream &ofs_running) const
 

Public Attributes

double epsilon
 the precision of symmetry operation
 
double epsilon_input
 the input value of symmetry_prec, should not be changed
 

Protected Member Functions

std::string get_brav_name (const int ibrav) const
 
void atom_ordering (double *posi, const int natom, int *subindex)
 
void atom_ordering_new (double *posi, const int natom, int *subindex) const
 

Private Member Functions

void order_atoms (double *pos, const int &nat, const int *index) const
 
void order_y (double *pos, const int &oldpos, const int &newpos)
 
void order_z (double *pos, const int &oldpos, const int &newpos)
 

Constructor & Destructor Documentation

◆ Symmetry_Basic()

ModuleSymmetry::Symmetry_Basic::Symmetry_Basic ( )
inline

◆ ~Symmetry_Basic()

ModuleSymmetry::Symmetry_Basic::~Symmetry_Basic ( )
inline

Member Function Documentation

◆ atom_ordering()

void ModuleSymmetry::Symmetry_Basic::atom_ordering ( double *  posi,
const int  natom,
int *  subindex 
)
protected

◆ atom_ordering_new()

void ModuleSymmetry::Symmetry_Basic::atom_ordering_new ( double *  posi,
const int  natom,
int *  subindex 
) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_boundary()

void ModuleSymmetry::Symmetry_Basic::check_boundary ( double &  x) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_diff()

double ModuleSymmetry::Symmetry_Basic::check_diff ( const double &  x1,
const double &  x2 
) const
Here is the caller graph for this function:

◆ check_translation()

void ModuleSymmetry::Symmetry_Basic::check_translation ( double &  x,
const double &  t 
) const
Here is the caller graph for this function:

◆ equal()

bool ModuleSymmetry::Symmetry_Basic::equal ( const double &  m,
const double &  n 
) const
Here is the caller graph for this function:

◆ get_brav_name()

std::string ModuleSymmetry::Symmetry_Basic::get_brav_name ( const int  ibrav) const
protected
Here is the caller graph for this function:

◆ get_translation_vector()

double ModuleSymmetry::Symmetry_Basic::get_translation_vector ( const double &  x1,
const double &  x2 
) const
Here is the caller graph for this function:

◆ matrigen()

void ModuleSymmetry::Symmetry_Basic::matrigen ( ModuleBase::Matrix3 symgen,
const int  ngen,
ModuleBase::Matrix3 symop,
int &  nop 
) const
Here is the caller graph for this function:

◆ order_atoms()

void ModuleSymmetry::Symmetry_Basic::order_atoms ( double *  pos,
const int &  nat,
const int *  index 
) const
private
Here is the caller graph for this function:

◆ order_y()

void ModuleSymmetry::Symmetry_Basic::order_y ( double *  pos,
const int &  oldpos,
const int &  newpos 
)
private

◆ order_z()

void ModuleSymmetry::Symmetry_Basic::order_z ( double *  pos,
const int &  oldpos,
const int &  newpos 
)
private

◆ pointgroup()

bool ModuleSymmetry::Symmetry_Basic::pointgroup ( const int &  nrot,
int &  pgnumber,
std::string &  pgname,
const ModuleBase::Matrix3 gmatrix,
std::ofstream &  ofs_running 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rotate()

void ModuleSymmetry::Symmetry_Basic::rotate ( ModuleBase::Matrix3 gmatrix,
ModuleBase::Vector3< double > &  gtrans,
int  i,
int  j,
int  k,
const int  nr1,
const int  nr2,
const int  nr3,
int &  ri,
int &  rj,
int &  rk 
)
Here is the caller graph for this function:

◆ setgroup()

void ModuleSymmetry::Symmetry_Basic::setgroup ( ModuleBase::Matrix3 symop,
int &  nop,
const int &  ibrav 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ subgroup()

int ModuleSymmetry::Symmetry_Basic::subgroup ( const int &  nrot,
const int &  ninv,
const int &  nc2,
const int &  nc3,
const int &  nc4,
const int &  nc6,
const int &  ns1,
const int &  ns3,
const int &  ns4,
const int &  ns6 
) const

find out the greatest subgrop according to the number of operations of certain type. used to deal with incomplete group due to a subtlesymmetry_prec

Here is the caller graph for this function:

◆ test_atom_ordering()

void ModuleSymmetry::Symmetry_Basic::test_atom_ordering ( double *  posi,
const int  natom,
int *  subindex 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ veccon()

void ModuleSymmetry::Symmetry_Basic::veccon ( double *  va,
double *  vb,
const int  num,
const ModuleBase::Vector3< double > &  aa1,
const ModuleBase::Vector3< double > &  aa2,
const ModuleBase::Vector3< double > &  aa3,
const ModuleBase::Vector3< double > &  bb1,
const ModuleBase::Vector3< double > &  bb2,
const ModuleBase::Vector3< double > &  bb3 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ epsilon

double ModuleSymmetry::Symmetry_Basic::epsilon

the precision of symmetry operation

◆ epsilon_input

double ModuleSymmetry::Symmetry_Basic::epsilon_input

the input value of symmetry_prec, should not be changed


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