66 template <
typename Tiait>
68 itiaiw2iwt(
const Tiait& it,
const Tiait& ia,
const Tiait& iw)
const {
88 template <
typename Tiat,
typename Tiait>
89 inline bool iat2iait(
const Tiat iat, Tiait* ia, Tiait* it)
const {
100 template <
typename Tiat,
typename Tiait>
106 Tiat iat = ijat /
nat;
107 Tiat jat = ijat %
nat;
113 template <
typename Tiait>
115 if (++(*it) >=
ntype) {
122 template <
typename Tiait>
123 inline bool step_ia(
const Tiait it, Tiait* ia)
const {
124 if (++(*ia) >=
atoms[it].na) {
131 template <
typename Tiait>
139 template <
typename Tiait>
211 void setup_cell(
const std::string& fn, std::ofstream& log);
228 void setup(
const std::string& latname_in,
230 const int& lmaxmax_in,
231 const bool& init_vel_in,
232 const std::string& fixed_axes_in);
258 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:87
int lmaxmax
Definition unitcell.h:189
void setup_cell(const std::string &fn, std::ofstream &log)
Definition mock_unitcell.cpp:25
~UnitCell()
Definition symmetry_test_analysis.cpp:34
ModuleBase::Vector3< double > & latcenter
Definition unitcell.h:37
int *& iat2it
Definition unitcell.h:47
int *& lc
Definition unitcell.h:33
bool if_cell_can_change() const
Definition mock_unitcell.cpp:29
bool step_iait(Tiait *ia, Tiait *it) const
Definition unitcell.h:132
Tiait itiaiw2iwt(const Tiait &it, const Tiait &ia, const Tiait &iw) const
Definition unitcell.h:68
Atom * atoms
Definition unitcell.h:18
const int & get_npol() const
Definition unitcell.h:76
ModuleBase::Matrix3 & GT
Definition unitcell.h:40
std::vector< int > get_atomCounts() const
get atomCounts, which is a vector of element type with atom number
Definition unitcell.cpp:120
const ModuleBase::Vector3< double > & get_tau(const int &iat) const
Definition unitcell.h:149
std::vector< int > iat2iwt
Definition unitcell.h:79
double & lat0
Definition unitcell.h:28
std::string descriptor_file
Definition unitcell.h:207
ModuleBase::Matrix3 invGGT0
Definition unitcell.h:166
std::vector< std::string > get_atomLabels() const
get atom labels
Definition unitcell.cpp:112
ModuleBase::Matrix3 GT0
Definition unitcell.h:164
std::vector< std::string > orbital_fn
Definition unitcell.h:206
std::vector< ModuleBase::Vector3< double > > get_target_mag() const
get target magnetic moment for deltaspin
Definition unitcell.cpp:139
int n_mag_at
Definition unitcell.h:23
ModuleBase::Matrix3 & latvec
Definition unitcell.h:35
Magnetism magnet
Definition unitcell.h:21
bool ijat2iaitjajt(const Tiat ijat, Tiait *ia, Tiait *it, Tiait *ja, Tiait *jt) const
Definition unitcell.h:101
int meshx
Definition unitcell.h:183
bool ionic_position_updated
Definition unitcell.h:170
bool init_vel
Definition unitcell.h:190
Lattice lat
Definition unitcell.h:25
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:95
int *& iwt2iw
Definition unitcell.h:50
int lmax
Definition unitcell.h:185
UnitCell()
Definition symmetry_test_analysis.cpp:33
int & ntype
Definition unitcell.h:45
double & tpiba
Definition unitcell.h:30
ModuleBase::Matrix3 & latvec_supercell
Definition unitcell.h:38
ModuleSymmetry::Symmetry symm
Definition unitcell.h:55
std::vector< std::vector< double > > atom_mulliken
Definition unitcell.h:22
std::map< int, int > get_atom_Counts() const
get atomCounts, which is a map from element type to atom number
Definition unitcell.cpp:79
bool step_jajtiait(Tiait *ja, Tiait *jt, Tiait *ia, Tiait *it) const
Definition unitcell.h:141
double & tpiba2
Definition unitcell.h:31
void set_iat2iwt(const int &npol_in)
Definition mock_unitcell.cpp:11
void print_cell(std::ofstream &ofs) const
Definition mock_unitcell.cpp:21
ModuleBase::IntArray & itia2iat
Definition unitcell.h:51
int & nat
Definition unitcell.h:46
std::vector< ModuleBase::Vector3< double > > get_lambda() const
get lagrange multiplier for deltaspin
Definition unitcell.cpp:153
double & omega
Definition unitcell.h:32
std::vector< ModuleBase::Vector3< int > > get_constrain() const
get constrain for deltaspin
Definition unitcell.cpp:167
ModuleBase::Matrix3 & GGT
Definition unitcell.h:41
ModuleBase::Vector3< double > & a2
Definition unitcell.h:36
ModuleBase::Vector3< double > & a3
Definition unitcell.h:36
bool step_ia(const Tiait it, Tiait *ia) const
Definition unitcell.h:123
bool set_atom_flag
Definition unitcell.h:20
bool step_it(Tiait *it) const
Definition unitcell.h:114
std::vector< std::string > atom_label
Definition unitcell.h:202
void set_iat2itia()
Definition mock_unitcell.cpp:23
std::string & Coordinate
Definition unitcell.h:26
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:128
int *& iat2ia
Definition unitcell.h:48
int lmax_ppwf
Definition unitcell.h:188
std::vector< std::string > pseudo_fn
Definition unitcell.h:203
int & nwmax
Definition unitcell.h:53
bool cell_parameter_updated
Definition unitcell.h:172
ModuleBase::Matrix3 & invGGT
Definition unitcell.h:42
int nmax
Definition unitcell.h:186
ModuleBase::Vector3< double > & a1
Definition unitcell.h:36
ModuleBase::Matrix3 G0
Definition unitcell.h:163
std::string & latName
Definition unitcell.h:27
Statistics st
Definition unitcell.h:44
ModuleBase::Matrix3 & G
Definition unitcell.h:39
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:31
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:39
int *& iwt2iat
Definition unitcell.h:49
int natomwfc
Definition unitcell.h:184
int nmax_total
Definition unitcell.h:187
const ModuleBase::Vector3< double > cal_dtau(const int &iat1, const int &iat2, const ModuleBase::Vector3< int > &R) const
Definition unitcell.h:155
const int * get_iat2iwt() const
Definition unitcell.h:74
bool iat2iait(const Tiat iat, Tiait *ia, Tiait *it) const
Definition unitcell.h:89
ModuleBase::Matrix3 GGT0
Definition unitcell.h:165
std::vector< std::string > pseudo_type
Definition unitcell.h:204
double & lat0_angstrom
Definition unitcell.h:29
ModuleBase::Matrix3 stress
Definition unitcell.h:194
std::vector< double > atom_mass
Definition unitcell.h:201
int & namax
Definition unitcell.h:52
int npol
Definition unitcell.h:80
bool if_atoms_can_move() const
Definition mock_unitcell.cpp:27
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