ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
Functions | |
void | bcast_atoms_tau (Atom *atoms, const int ntype) |
broadcast the tau array of the atoms | |
void | bcast_atoms_pseudo (Atom *atoms, const int ntype) |
broadcast the pseduo of the atoms | |
void | bcast_Lattice (Lattice &lat) |
broadcast the lattice | |
void | bcast_magnetism (Magnetism &magnet, const int ntype) |
broadcast the magnetism | |
void | bcast_unitcell (UnitCell &ucell) |
broadcast the unitcell | |
void | check_atomic_stru (UnitCell &ucell, const double &factor) |
void | print_tau (Atom *atoms, const std::string &Coordinate, const int ntype, const double lat0, std::ofstream &ofs) |
void | print_stru_file (const UnitCell &ucell, const Atom *atoms, const ModuleBase::Matrix3 &latvec, const std::string &fn, const int &nspin=1, const bool &direct=false, const bool &vel=false, const bool &magmom=false, const bool &orb=false, const bool &dpks_desc=false, const int &iproc=0) |
UnitCell class is too heavy, this function would be moved elsewhere. Print STRU file respect to given setting. | |
bool | read_atom_species (std::ifstream &ifa, std::ofstream &ofs_running, UnitCell &ucell) |
bool | read_lattice_constant (std::ifstream &ifa, std::ofstream &ofs_running, Lattice &lat) |
bool | check_tau (const Atom *atoms, const int &ntype, const double &lat0) |
void | check_dtau (Atom *atoms, const int &ntype, const double &lat0, ModuleBase::Matrix3 &latvec) |
bool | read_atom_positions (UnitCell &ucell, std::ifstream &ifpos, std::ofstream &ofs_running, std::ofstream &ofs_warning) |
void | remake_cell (Lattice &lat) |
void | setup_cell_after_vc (UnitCell &ucell, std::ofstream &log) |
void | update_pos_tau (const Lattice &lat, const double *pos, const int ntype, const int nat, Atom *atoms) |
update the position and tau of the atoms | |
void | update_pos_taud (const Lattice &lat, const double *posd_in, const int ntype, const int nat, Atom *atoms) |
update the position and tau of the atoms | |
void | update_pos_taud (const Lattice &lat, const ModuleBase::Vector3< double > *posd_in, const int ntype, const int nat, Atom *atoms) |
update the velocity of the atoms | |
void | update_vel (const ModuleBase::Vector3< double > *vel_in, const int ntype, const int nat, Atom *atoms) |
update the velocity of the atoms | |
void | periodic_boundary_adjustment (Atom *atoms, const ModuleBase::Matrix3 &latvec, const int ntype) |
check the boundary of the cell, for each atom,the taud in three directions should be in the range of [-1,1) | |
void unitcell::bcast_atoms_pseudo | ( | Atom * | atoms, |
const int | ntype | ||
) |
broadcast the pseduo of the atoms
atoms | the atoms to be broadcasted [in/out] |
ntype | the number of types of the atoms [in] |
void unitcell::bcast_atoms_tau | ( | Atom * | atoms, |
const int | ntype | ||
) |
broadcast the tau array of the atoms
atoms | the atoms to be broadcasted [in/out] |
ntype | the number of types of the atoms [in] |
void unitcell::bcast_Lattice | ( | Lattice & | lat | ) |
broadcast the lattice
lat | the lattice to be broadcasted [in/out] |
void unitcell::bcast_magnetism | ( | Magnetism & | magnet, |
const int | ntype | ||
) |
broadcast the magnetism
magnet | the magnetism to be broadcasted [in/out] |
nytpe | the number of types of the atoms [in] |
void unitcell::bcast_unitcell | ( | UnitCell & | ucell | ) |
broadcast the unitcell
ucell | the unitcell to be broadcasted [in/out] |
void unitcell::check_atomic_stru | ( | UnitCell & | ucell, |
const double & | factor | ||
) |
void unitcell::check_dtau | ( | Atom * | atoms, |
const int & | ntype, | ||
const double & | lat0, | ||
ModuleBase::Matrix3 & | latvec | ||
) |
bool unitcell::check_tau | ( | const Atom * | atoms, |
const int & | ntype, | ||
const double & | lat0 | ||
) |
void unitcell::periodic_boundary_adjustment | ( | Atom * | atoms, |
const ModuleBase::Matrix3 & | latvec, | ||
const int | ntype | ||
) |
check the boundary of the cell, for each atom,the taud in three directions should be in the range of [-1,1)
atoms | the atoms to be adjusted [in] |
latvec | the lattice of the atoms [in] |
ntype | the number of types of the atoms [in] |
void unitcell::print_stru_file | ( | const UnitCell & | ucell, |
const Atom * | atoms, | ||
const ModuleBase::Matrix3 & | latvec, | ||
const std::string & | fn, | ||
const int & | nspin = 1 , |
||
const bool & | direct = false , |
||
const bool & | vel = false , |
||
const bool & | magmom = false , |
||
const bool & | orb = false , |
||
const bool & | dpks_desc = false , |
||
const int & | iproc = 0 |
||
) |
UnitCell class is too heavy, this function would be moved elsewhere. Print STRU file respect to given setting.
ucell | reference of unitcell |
atoms | Atom list |
latvec | lattice const parmater vector |
fn | STRU file name |
nspin | PARAM.inp.nspin feed in |
direct | true for direct coords, false for cartesian coords |
vol | true for printing velocities |
magmom | true for printing Mulliken population analysis produced magmom |
orb | true for printing NUMERICAL_ORBITAL section |
dpks_desc | true for printing NUMERICAL_DESCRIPTOR section |
iproc | GlobalV::MY_RANK feed in |
void unitcell::print_tau | ( | Atom * | atoms, |
const std::string & | Coordinate, | ||
const int | ntype, | ||
const double | lat0, | ||
std::ofstream & | ofs | ||
) |
bool unitcell::read_atom_positions | ( | UnitCell & | ucell, |
std::ifstream & | ifpos, | ||
std::ofstream & | ofs_running, | ||
std::ofstream & | ofs_warning | ||
) |
liuyu update 2023-05-11 In order to employ the DP model as esolver, all atom types must be specified in the STRU
in the order consistent with that of the DP model, even if the number of ucell.atoms is zero!
bool unitcell::read_atom_species | ( | std::ifstream & | ifa, |
std::ofstream & | ofs_running, | ||
UnitCell & | ucell | ||
) |
bool unitcell::read_lattice_constant | ( | std::ifstream & | ifa, |
std::ofstream & | ofs_running, | ||
Lattice & | lat | ||
) |
void unitcell::remake_cell | ( | Lattice & | lat | ) |
void unitcell::setup_cell_after_vc | ( | UnitCell & | ucell, |
std::ofstream & | log | ||
) |
void unitcell::update_pos_tau | ( | const Lattice & | lat, |
const double * | pos, | ||
const int | ntype, | ||
const int | nat, | ||
Atom * | atoms | ||
) |
update the position and tau of the atoms
lat | the lattice of the atoms [in] |
pos | the position of the atoms [in] |
ntype | the number of types of the atoms [in] |
nat | the number of atoms [in] |
atoms | the atoms to be updated [out] |
void unitcell::update_pos_taud | ( | const Lattice & | lat, |
const double * | posd_in, | ||
const int | ntype, | ||
const int | nat, | ||
Atom * | atoms | ||
) |
update the position and tau of the atoms
lat | the lattice of the atoms [in] |
pos_in | the position of the atoms in direct coordinate system [in] |
ntype | the number of types of the atoms [in] |
nat | the number of atoms [in] |
atoms | the atoms to be updated [out] |
void unitcell::update_pos_taud | ( | const Lattice & | lat, |
const ModuleBase::Vector3< double > * | posd_in, | ||
const int | ntype, | ||
const int | nat, | ||
Atom * | atoms | ||
) |
update the velocity of the atoms
lat | the lattice of the atoms [in] |
pos_in | the position of the atoms in direct coordinate system in ModuleBase::Vector3 version [in] |
ntype | the number of types of the atoms [in] |
nat | the number of atoms [in] |
atoms | the atoms to be updated [out] |
void unitcell::update_vel | ( | const ModuleBase::Vector3< double > * | vel_in, |
const int | ntype, | ||
const int | nat, | ||
Atom * | atoms | ||
) |
update the velocity of the atoms
vel_in | the velocity of the atoms [in] |
ntype | the number of types of the atoms [in] |
nat | the number of atoms [in] |
atoms | the atoms to be updated [out] |