ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
Functions | |
void | kvec_d2c (K_Vectors &kv, const ModuleBase::Matrix3 &reciprocal_vec) |
void | kvec_c2d (K_Vectors &kv, const ModuleBase::Matrix3 &latvec) |
void | set_both_kvec (K_Vectors &kv, const ModuleBase::Matrix3 &G, const ModuleBase::Matrix3 &R, std::string &skpt) |
Sets both the direct and Cartesian k-vectors. | |
void | set_after_vc (K_Vectors &kv, const int &nspin, const ModuleBase::Matrix3 &G) |
Sets up the k-points after a volume change. | |
void | print_klists (const K_Vectors &kv, std::ofstream &ofs) |
Prints the k-points in both Cartesian and direct coordinates. | |
void | kvec_mpi_k (K_Vectors &kv) |
Distributes k-points among MPI processes. | |
void | kvec_ibz_kpoint (K_Vectors &kv, const ModuleSymmetry::Symmetry &symm, bool use_symm, std::string &skpt, const UnitCell &ucell, bool &match) |
Generates irreducible k-points in the Brillouin zone considering symmetry operations. | |
void KVectorUtils::kvec_c2d | ( | K_Vectors & | kv, |
const ModuleBase::Matrix3 & | latvec | ||
) |
void KVectorUtils::kvec_d2c | ( | K_Vectors & | kv, |
const ModuleBase::Matrix3 & | reciprocal_vec | ||
) |
void KVectorUtils::kvec_ibz_kpoint | ( | K_Vectors & | kv, |
const ModuleSymmetry::Symmetry & | symm, | ||
bool | use_symm, | ||
std::string & | skpt, | ||
const UnitCell & | ucell, | ||
bool & | match | ||
) |
Generates irreducible k-points in the Brillouin zone considering symmetry operations.
This function calculates the irreducible k-points (IBZ) from the given k-points, taking into account the symmetry of the unit cell. It updates the symmetry-matched k-points and generates the corresponding weight for each k-point.
symm | The symmetry information of the system. |
use_symm | A flag indicating whether to use symmetry operations. |
skpt | A string to store the formatted k-points information. |
ucell | The unit cell of the crystal. |
match | A boolean flag that indicates if the results matches the real condition. |
void KVectorUtils::kvec_mpi_k | ( | K_Vectors & | kv | ) |
Distributes k-points among MPI processes.
This function distributes the k-points among the MPI processes. Each process gets a subset of the k-points to work on. The function also broadcasts various variables related to the k-points to all processes.
kv | The K_Vectors object containing the k-point information. |
void KVectorUtils::print_klists | ( | const K_Vectors & | kv, |
std::ofstream & | ofs | ||
) |
Prints the k-points in both Cartesian and direct coordinates.
This function prints the k-points in both Cartesian and direct coordinates to the output file stream. The output includes the index, x, y, and z coordinates, and the weight of each k-point.
ofs | The output file stream to which the k-points are printed. |
void KVectorUtils::set_after_vc | ( | K_Vectors & | kv, |
const int & | nspin, | ||
const ModuleBase::Matrix3 & | G | ||
) |
Sets up the k-points after a volume change.
This function sets up the k-points after a volume change in the system. It sets the Cartesian and direct k-vectors based on the new reciprocal and real space lattice vectors.
kv | The K_Vectors object containing the k-point information. |
nspin_in | The number of spins. 1 for non-spin-polarized calculations and 2 for spin-polarized calculations. |
reciprocal_vec | The new reciprocal lattice matrix. |
void KVectorUtils::set_both_kvec | ( | K_Vectors & | kv, |
const ModuleBase::Matrix3 & | G, | ||
const ModuleBase::Matrix3 & | R, | ||
std::string & | skpt | ||
) |
Sets both the direct and Cartesian k-vectors.
This function sets both the direct and Cartesian k-vectors based on the input parameters. It also checks the k-point type and sets the corresponding flags.
kv | The K_Vectors object containing the k-point information. |
G | The reciprocal lattice matrix. |
R | The real space lattice matrix. |
skpt | A string to store the k-point table. |