ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
setcell.h
Go to the documentation of this file.
1//==========================================================
2// Used to genarate ucell
3//==========================================================
4#ifndef SETCELL_H
5#define SETCELL_H
6
12
13namespace GlobalC
14{
16}
17
20
23
24Atom::Atom(){};
25Atom::~Atom(){};
30/*
31Structure_Factor::Structure_Factor(){};
32Structure_Factor::~Structure_Factor(){};
33void Structure_Factor::setup_structure_factor(UnitCell* Ucell, const ModulePW::PW_Basis* rho_basis){};
34*/
36{
37 public:
38 static void setupcell(UnitCell &ucell)
39 {
40 ucell.ntype = 2;
41
42 ucell.atoms = new Atom[ucell.ntype];
43 ucell.set_atom_flag = true;
44
45 ucell.atoms[0].ncpp.psd = "H";
46 ucell.atoms[1].ncpp.psd = "O";
47
48 ucell.lat0 = 1;
49 ucell.lat0_angstrom = ucell.lat0 * 0.529177;
50 ucell.tpiba = ModuleBase::TWO_PI / ucell.lat0;
51 ucell.tpiba2 = ucell.tpiba * ucell.tpiba;
52
53 ucell.latvec.e11 = ucell.latvec.e22 = ucell.latvec.e33 = 10;
54 ucell.latvec.e12 = ucell.latvec.e13 = ucell.latvec.e23 = 0;
55 ucell.latvec.e21 = ucell.latvec.e31 = ucell.latvec.e32 = 0;
56
57 ucell.a1.x = ucell.latvec.e11;
58 ucell.a1.y = ucell.latvec.e12;
59 ucell.a1.z = ucell.latvec.e13;
60
61 ucell.a2.x = ucell.latvec.e21;
62 ucell.a2.y = ucell.latvec.e22;
63 ucell.a2.z = ucell.latvec.e23;
64
65 ucell.a3.x = ucell.latvec.e31;
66 ucell.a3.y = ucell.latvec.e32;
67 ucell.a3.z = ucell.latvec.e33;
68
69 ucell.nat = 3;
70 ucell.atoms[0].na = 2;
71 ucell.atoms[1].na = 1;
72
73 ucell.atoms[0].tau.resize(ucell.atoms[0].na);
74 ucell.atoms[1].tau.resize(ucell.atoms[1].na);
75
76 ucell.atoms[0].tau[0].set(7.5456, 0, 9.54275);
77 ucell.atoms[0].tau[1].set(7.542, 1.8495, 7.34175);
78 ucell.atoms[1].tau[0].set(7.54965, 0, 7.48585);
79
80 ucell.atoms[0].ncpp.zv = 1;
81 ucell.atoms[1].ncpp.zv = 6;
82
83 ucell.omega = std::abs(ucell.latvec.Det()) * ucell.lat0 * ucell.lat0 * ucell.lat0;
84
85 };
86};
87
88#endif
~Atom_pseudo()
Definition atom_pseudo.cpp:9
Atom_pseudo()
Definition atom_pseudo.cpp:5
Definition atom_spec.h:7
Atom_pseudo ncpp
Definition atom_spec.h:13
int na
Definition atom_spec.h:28
~Atom()
Definition atom_spec.cpp:9
Atom()
Definition atom_spec.cpp:5
std::vector< ModuleBase::Vector3< double > > tau
Definition atom_spec.h:36
Magnetism()
Definition sltk_atom_arrange_test.cpp:27
~Magnetism()
Definition sltk_atom_arrange_test.cpp:33
double e13
Definition matrix3.h:26
double e31
Definition matrix3.h:26
double e11
element e_ij: i_row, j_column
Definition matrix3.h:26
double e33
Definition matrix3.h:26
double e32
Definition matrix3.h:26
double e21
Definition matrix3.h:26
double e12
Definition matrix3.h:26
double Det(void) const
Calculate the determinant of a 3x3 matrix.
Definition matrix3.cpp:29
double e23
Definition matrix3.h:26
double e22
Definition matrix3.h:26
T x
Definition vector3.h:24
T y
Definition vector3.h:25
T z
Definition vector3.h:26
A class which can convert a function of "r" to the corresponding linear superposition of plane waves ...
Definition pw_basis.h:56
Definition setcell.h:36
static void setupcell(UnitCell &ucell)
Definition setcell.h:38
Definition unitcell.h:16
~UnitCell()
Definition symmetry_test_analysis.cpp:34
Atom * atoms
Definition unitcell.h:18
double & lat0
Definition unitcell.h:28
ModuleBase::Matrix3 & latvec
Definition unitcell.h:35
UnitCell()
Definition symmetry_test_analysis.cpp:33
int & ntype
Definition unitcell.h:45
double & tpiba
Definition unitcell.h:30
double & tpiba2
Definition unitcell.h:31
int & nat
Definition unitcell.h:46
double & omega
Definition unitcell.h:32
ModuleBase::Vector3< double > & a2
Definition unitcell.h:36
ModuleBase::Vector3< double > & a3
Definition unitcell.h:36
bool set_atom_flag
Definition unitcell.h:20
ModuleBase::Vector3< double > & a1
Definition unitcell.h:36
double & lat0_angstrom
Definition unitcell.h:29
~pseudo()
Definition symmetry_test_analysis.cpp:26
std::string psd
Definition pseudo.h:21
double zv
Definition pseudo.h:26
pseudo()
Definition symmetry_test_analysis.cpp:23
Definition cal_epsilon_test.cpp:31
ModulePW::PW_Basis * rhopw
Definition cal_epsilon_test.cpp:32
const double TWO_PI
Definition constants.h:21