94 template <
typename Tiait>
96 itiaiw2iwt(
const Tiait& it,
const Tiait& ia,
const Tiait& iw)
const {
116 template <
typename Tiat,
typename Tiait>
117 inline bool iat2iait(
const Tiat iat, Tiait* ia, Tiait* it)
const {
128 template <
typename Tiat,
typename Tiait>
134 Tiat iat = ijat /
nat;
135 Tiat jat = ijat %
nat;
141 template <
typename Tiait>
143 if (++(*it) >=
ntype) {
150 template <
typename Tiait>
151 inline bool step_ia(
const Tiait it, Tiait* ia)
const {
152 if (++(*ia) >=
atoms[it].na) {
159 template <
typename Tiait>
167 template <
typename Tiait>
239 void setup_cell(
const std::string& fn, std::ofstream& log);
256 void setup(
const std::string& latname_in,
258 const int& lmaxmax_in,
259 const bool& init_vel_in,
260 const std::string& fixed_axes_in);
286 std::vector<ModuleBase::Vector3<double>>
get_lambda()
const;
const std::complex< double > i
Definition cal_pLpR.cpp:46
int na
Definition atom_spec.h:27
std::vector< ModuleBase::Vector3< double > > tau
Definition atom_spec.h:35
Definition unitcell_interface.h:9
Definition setup_nonlocal.h:8
Integer array.
Definition intarray.h:17
3x3 matrix and related mathamatical operations
Definition matrix3.h:19
3 elements vector
Definition vector3.h:24
T x
Definition vector3.h:26
T y
Definition vector3.h:27
T z
Definition vector3.h:28
std::map< int, int > get_orbital_Counts() const
get orbitalCounts, which is a map from element type to orbital number
Definition unitcell.cpp:90
int lmaxmax
Definition unitcell.h:217
void setup_cell(const std::string &fn, std::ofstream &log)
Definition mock_unitcell.cpp:29
~UnitCell()
Definition symmetry_test_analysis.cpp:35
int get_natom() const override
Definition unitcell.h:29
ModuleBase::Vector3< double > & latcenter
Definition unitcell.h:65
int *& iat2it
Definition unitcell.h:75
int *& lc
Definition unitcell.h:61
bool if_cell_can_change() const
Definition mock_unitcell.cpp:33
bool step_iait(Tiait *ia, Tiait *it) const
Definition unitcell.h:160
Tiait itiaiw2iwt(const Tiait &it, const Tiait &ia, const Tiait &iw) const
Definition unitcell.h:96
Atom * atoms
Definition unitcell.h:45
const int & get_npol() const
Definition unitcell.h:104
ModuleBase::Matrix3 & GT
Definition unitcell.h:68
std::vector< int > get_atomCounts() const
get atomCounts, which is a vector of element type with atom number
Definition unitcell.cpp:123
const ModuleBase::Vector3< double > & get_tau(const int &iat) const
Definition unitcell.h:177
std::vector< int > iat2iwt
Definition unitcell.h:107
int get_na(int i) const override
Definition unitcell.h:33
double & lat0
Definition unitcell.h:56
std::string descriptor_file
Definition unitcell.h:235
ModuleBase::Matrix3 invGGT0
Definition unitcell.h:194
std::vector< std::string > get_atomLabels() const
get atom labels
Definition unitcell.cpp:115
ModuleBase::Matrix3 GT0
Definition unitcell.h:192
std::vector< std::string > orbital_fn
Definition unitcell.h:234
const ModuleBase::Matrix3 & get_latvec() const override
Definition unitcell.h:25
std::vector< ModuleBase::Vector3< double > > get_target_mag() const
get target magnetic moment for deltaspin
Definition unitcell.cpp:142
int n_mag_at
Definition unitcell.h:51
ModuleBase::Matrix3 & latvec
Definition unitcell.h:63
Magnetism magnet
Definition unitcell.h:49
bool ijat2iaitjajt(const Tiat ijat, Tiait *ia, Tiait *it, Tiait *ja, Tiait *jt) const
Definition unitcell.h:129
int meshx
Definition unitcell.h:211
bool ionic_position_updated
Definition unitcell.h:198
bool init_vel
Definition unitcell.h:218
Lattice lat
Definition unitcell.h:53
void compare_atom_labels(const std::string &label1, const std::string &label2) const
check consistency between two atom labels from STRU and pseudo or orb file
Definition mock_unitcell.cpp:43
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:98
double get_lat0() const override
Definition unitcell.h:17
int *& iwt2iw
Definition unitcell.h:78
int lmax
Definition unitcell.h:213
UnitCell()
Definition symmetry_test_analysis.cpp:34
int & ntype
Definition unitcell.h:73
double & tpiba
Definition unitcell.h:58
ModuleBase::Matrix3 & latvec_supercell
Definition unitcell.h:66
ModuleSymmetry::Symmetry symm
Definition unitcell.h:83
double get_omega() const override
Definition unitcell.h:21
std::vector< std::vector< double > > atom_mulliken
Definition unitcell.h:50
std::map< int, int > get_atom_Counts() const
get atomCounts, which is a map from element type to atom number
Definition unitcell.cpp:82
bool step_jajtiait(Tiait *ja, Tiait *jt, Tiait *ia, Tiait *it) const
Definition unitcell.h:169
double & tpiba2
Definition unitcell.h:59
Sep_Cell sep_cell
Definition unitcell.h:46
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:79
ModuleBase::Vector3< double > get_tauu(int i, int j) const override
Definition unitcell.h:41
int & nat
Definition unitcell.h:74
std::vector< ModuleBase::Vector3< double > > get_lambda() const
get lagrange multiplier for deltaspin
Definition unitcell.cpp:156
double & omega
Definition unitcell.h:60
std::vector< ModuleBase::Vector3< int > > get_constrain() const
get constrain for deltaspin
Definition unitcell.cpp:170
ModuleBase::Matrix3 & GGT
Definition unitcell.h:69
ModuleBase::Vector3< double > & a2
Definition unitcell.h:64
ModuleBase::Vector3< double > & a3
Definition unitcell.h:64
bool step_ia(const Tiait it, Tiait *ia) const
Definition unitcell.h:151
bool set_atom_flag
Definition unitcell.h:48
bool step_it(Tiait *it) const
Definition unitcell.h:142
std::vector< std::string > atom_label
Definition unitcell.h:230
void set_iat2itia()
Definition mock_unitcell.cpp:27
std::string & Coordinate
Definition unitcell.h:54
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:131
int *& iat2ia
Definition unitcell.h:76
int lmax_ppwf
Definition unitcell.h:216
std::vector< std::string > pseudo_fn
Definition unitcell.h:231
int & nwmax
Definition unitcell.h:81
bool cell_parameter_updated
Definition unitcell.h:200
ModuleBase::Matrix3 & invGGT
Definition unitcell.h:70
int nmax
Definition unitcell.h:214
ModuleBase::Vector3< double > & a1
Definition unitcell.h:64
ModuleBase::Matrix3 G0
Definition unitcell.h:191
std::string & latName
Definition unitcell.h:55
Statistics st
Definition unitcell.h:72
ModuleBase::Matrix3 & G
Definition unitcell.h:67
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
int *& iwt2iat
Definition unitcell.h:77
int natomwfc
Definition unitcell.h:212
int nmax_total
Definition unitcell.h:215
int get_ntype() const override
Definition unitcell.h:37
const ModuleBase::Vector3< double > cal_dtau(const int &iat1, const int &iat2, const ModuleBase::Vector3< int > &R) const
Definition unitcell.h:183
const int * get_iat2iwt() const
Definition unitcell.h:102
bool iat2iait(const Tiat iat, Tiait *ia, Tiait *it) const
Definition unitcell.h:117
ModuleBase::Matrix3 GGT0
Definition unitcell.h:193
std::vector< std::string > pseudo_type
Definition unitcell.h:232
double & lat0_angstrom
Definition unitcell.h:57
ModuleBase::Matrix3 stress
Definition unitcell.h:222
std::vector< double > atom_mass
Definition unitcell.h:229
int & namax
Definition unitcell.h:80
int npol
Definition unitcell.h:108
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