|
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. |