68 template <
typename Tiait>
70 itiaiw2iwt(
const Tiait& it,
const Tiait& ia,
const Tiait& iw)
const {
90 template <
typename Tiat,
typename Tiait>
91 inline bool iat2iait(
const Tiat iat, Tiait* ia, Tiait* it)
const {
102 template <
typename Tiat,
typename Tiait>
108 Tiat iat = ijat /
nat;
109 Tiat jat = ijat %
nat;
115 template <
typename Tiait>
117 if (++(*it) >=
ntype) {
124 template <
typename Tiait>
125 inline bool step_ia(
const Tiait it, Tiait* ia)
const {
126 if (++(*ia) >=
atoms[it].na) {
133 template <
typename Tiait>
141 template <
typename Tiait>
213 void setup_cell(
const std::string& fn, std::ofstream& log);
230 void setup(
const std::string& latname_in,
232 const int& lmaxmax_in,
233 const bool& init_vel_in,
234 const std::string& fixed_axes_in);
260 std::vector<ModuleBase::Vector3<double>>
get_lambda()
const;
std::vector< ModuleBase::Vector3< double > > tau
Definition atom_spec.h:36
Definition setup_nonlocal.h:10
Integer array.
Definition intarray.h:20
3x3 matrix and related mathamatical operations
Definition matrix3.h:19
3 elements vector
Definition vector3.h:22
T x
Definition vector3.h:24
T y
Definition vector3.h:25
T z
Definition vector3.h:26
std::map< int, int > get_orbital_Counts() const
get orbitalCounts, which is a map from element type to orbital number
Definition unitcell.cpp:89
int lmaxmax
Definition unitcell.h:191
void setup_cell(const std::string &fn, std::ofstream &log)
Definition mock_unitcell.cpp:29
~UnitCell()
Definition symmetry_test_analysis.cpp:34
ModuleBase::Vector3< double > & latcenter
Definition unitcell.h:39
int *& iat2it
Definition unitcell.h:49
int *& lc
Definition unitcell.h:35
bool if_cell_can_change() const
Definition mock_unitcell.cpp:33
bool step_iait(Tiait *ia, Tiait *it) const
Definition unitcell.h:134
Tiait itiaiw2iwt(const Tiait &it, const Tiait &ia, const Tiait &iw) const
Definition unitcell.h:70
Atom * atoms
Definition unitcell.h:19
const int & get_npol() const
Definition unitcell.h:78
ModuleBase::Matrix3 & GT
Definition unitcell.h:42
std::vector< int > get_atomCounts() const
get atomCounts, which is a vector of element type with atom number
Definition unitcell.cpp:122
const ModuleBase::Vector3< double > & get_tau(const int &iat) const
Definition unitcell.h:151
std::vector< int > iat2iwt
Definition unitcell.h:81
double & lat0
Definition unitcell.h:30
std::string descriptor_file
Definition unitcell.h:209
ModuleBase::Matrix3 invGGT0
Definition unitcell.h:168
std::vector< std::string > get_atomLabels() const
get atom labels
Definition unitcell.cpp:114
ModuleBase::Matrix3 GT0
Definition unitcell.h:166
std::vector< std::string > orbital_fn
Definition unitcell.h:208
std::vector< ModuleBase::Vector3< double > > get_target_mag() const
get target magnetic moment for deltaspin
Definition unitcell.cpp:141
int n_mag_at
Definition unitcell.h:25
ModuleBase::Matrix3 & latvec
Definition unitcell.h:37
Magnetism magnet
Definition unitcell.h:23
bool ijat2iaitjajt(const Tiat ijat, Tiait *ia, Tiait *it, Tiait *ja, Tiait *jt) const
Definition unitcell.h:103
int meshx
Definition unitcell.h:185
bool ionic_position_updated
Definition unitcell.h:172
bool init_vel
Definition unitcell.h:192
Lattice lat
Definition unitcell.h:27
std::map< int, std::map< int, int > > get_lnchi_Counts() const
get lnchiCounts, which is a map from element type to the l:nchi map
Definition unitcell.cpp:97
int *& iwt2iw
Definition unitcell.h:52
int lmax
Definition unitcell.h:187
UnitCell()
Definition symmetry_test_analysis.cpp:33
int & ntype
Definition unitcell.h:47
double & tpiba
Definition unitcell.h:32
ModuleBase::Matrix3 & latvec_supercell
Definition unitcell.h:40
ModuleSymmetry::Symmetry symm
Definition unitcell.h:57
std::vector< std::vector< double > > atom_mulliken
Definition unitcell.h:24
std::map< int, int > get_atom_Counts() const
get atomCounts, which is a map from element type to atom number
Definition unitcell.cpp:81
bool step_jajtiait(Tiait *ja, Tiait *jt, Tiait *ia, Tiait *it) const
Definition unitcell.h:143
double & tpiba2
Definition unitcell.h:33
Sep_Cell sep_cell
Definition unitcell.h:20
void set_iat2iwt(const int &npol_in)
Definition mock_unitcell.cpp:11
void print_cell(std::ofstream &ofs) const
Definition mock_unitcell.cpp:25
ModuleBase::IntArray & itia2iat
Definition unitcell.h:53
int & nat
Definition unitcell.h:48
std::vector< ModuleBase::Vector3< double > > get_lambda() const
get lagrange multiplier for deltaspin
Definition unitcell.cpp:155
double & omega
Definition unitcell.h:34
std::vector< ModuleBase::Vector3< int > > get_constrain() const
get constrain for deltaspin
Definition unitcell.cpp:169
ModuleBase::Matrix3 & GGT
Definition unitcell.h:43
ModuleBase::Vector3< double > & a2
Definition unitcell.h:38
ModuleBase::Vector3< double > & a3
Definition unitcell.h:38
bool step_ia(const Tiait it, Tiait *ia) const
Definition unitcell.h:125
bool set_atom_flag
Definition unitcell.h:22
bool step_it(Tiait *it) const
Definition unitcell.h:116
std::vector< std::string > atom_label
Definition unitcell.h:204
void set_iat2itia()
Definition mock_unitcell.cpp:27
std::string & Coordinate
Definition unitcell.h:28
std::vector< std::vector< int > > get_lnchiCounts() const
get lnchiCounts, which is a vector of element type with the l:nchi vector
Definition unitcell.cpp:130
int *& iat2ia
Definition unitcell.h:50
int lmax_ppwf
Definition unitcell.h:190
std::vector< std::string > pseudo_fn
Definition unitcell.h:205
int & nwmax
Definition unitcell.h:55
bool cell_parameter_updated
Definition unitcell.h:174
ModuleBase::Matrix3 & invGGT
Definition unitcell.h:44
int nmax
Definition unitcell.h:188
ModuleBase::Vector3< double > & a1
Definition unitcell.h:38
ModuleBase::Matrix3 G0
Definition unitcell.h:165
std::string & latName
Definition unitcell.h:29
Statistics st
Definition unitcell.h:46
ModuleBase::Matrix3 & G
Definition unitcell.h:41
void setup(const std::string &latname_in, const int &ntype_in, const int &lmaxmax_in, const bool &init_vel_in, const std::string &fixed_axes_in)
Definition mock_unitcell.cpp:35
void compare_atom_labels(const std::string &label1, const std::string &label2)
check consistency between two atom labels from STRU and pseudo or orb file
Definition mock_unitcell.cpp:43
int *& iwt2iat
Definition unitcell.h:51
int natomwfc
Definition unitcell.h:186
int nmax_total
Definition unitcell.h:189
const ModuleBase::Vector3< double > cal_dtau(const int &iat1, const int &iat2, const ModuleBase::Vector3< int > &R) const
Definition unitcell.h:157
const int * get_iat2iwt() const
Definition unitcell.h:76
bool iat2iait(const Tiat iat, Tiait *ia, Tiait *it) const
Definition unitcell.h:91
ModuleBase::Matrix3 GGT0
Definition unitcell.h:167
std::vector< std::string > pseudo_type
Definition unitcell.h:206
double & lat0_angstrom
Definition unitcell.h:31
ModuleBase::Matrix3 stress
Definition unitcell.h:196
std::vector< double > atom_mass
Definition unitcell.h:203
int & namax
Definition unitcell.h:54
int npol
Definition unitcell.h:82
bool if_atoms_can_move() const
Definition mock_unitcell.cpp:31
info of lattice
Definition unitcell_data.h:8
ModuleBase::Vector3< double > a1
Definition unitcell_data.h:19
ModuleBase::Matrix3 latvec
Definition unitcell_data.h:18
double omega
Definition unitcell_data.h:15
ModuleBase::Vector3< double > latcenter
Definition unitcell_data.h:20
ModuleBase::Matrix3 invGGT
Definition unitcell_data.h:25
double tpiba2
Definition unitcell_data.h:14
std::string Coordinate
Definition unitcell_data.h:9
ModuleBase::Vector3< double > a3
Definition unitcell_data.h:19
ModuleBase::Matrix3 GT
Definition unitcell_data.h:23
ModuleBase::Matrix3 latvec_supercell
Definition unitcell_data.h:21
double lat0
Definition unitcell_data.h:11
int * lc
Definition unitcell_data.h:16
std::string latName
Definition unitcell_data.h:10
ModuleBase::Matrix3 GGT
Definition unitcell_data.h:24
ModuleBase::Matrix3 G
Definition unitcell_data.h:22
double lat0_angstrom
Definition unitcell_data.h:12
double tpiba
Definition unitcell_data.h:13
ModuleBase::Vector3< double > a2
Definition unitcell_data.h:19
usefull data and index maps
Definition unitcell_data.h:47
ModuleBase::IntArray itia2iat
Definition unitcell_data.h:54
int nwmax
Definition unitcell_data.h:56
int * iwt2iat
Definition unitcell_data.h:52
int nat
Definition unitcell_data.h:49
int * iat2it
Definition unitcell_data.h:50
int namax
Definition unitcell_data.h:55
int * iat2ia
Definition unitcell_data.h:51
int * iwt2iw
Definition unitcell_data.h:53
int ntype
Definition unitcell_data.h:48