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(){};
32Sep_Cell::Sep_Cell() noexcept {}
33Sep_Cell::~Sep_Cell() noexcept {}
34/*
35Structure_Factor::Structure_Factor(){};
36Structure_Factor::~Structure_Factor(){};
37void Structure_Factor::setup_structure_factor(UnitCell* Ucell, const ModulePW::PW_Basis* rho_basis){};
38*/
40{
41 public:
42 static void setupcell(UnitCell &ucell)
43 {
44 ucell.ntype = 2;
45
46 ucell.atoms = new Atom[ucell.ntype];
47 ucell.set_atom_flag = true;
48
49 ucell.atoms[0].ncpp.psd = "H";
50 ucell.atoms[1].ncpp.psd = "O";
51
52 ucell.lat0 = 1;
54 ucell.tpiba = ModuleBase::TWO_PI / ucell.lat0;
55 ucell.tpiba2 = ucell.tpiba * ucell.tpiba;
56
57 ucell.latvec.e11 = ucell.latvec.e22 = ucell.latvec.e33 = 10;
58 ucell.latvec.e12 = ucell.latvec.e13 = ucell.latvec.e23 = 0;
59 ucell.latvec.e21 = ucell.latvec.e31 = ucell.latvec.e32 = 0;
60
61 ucell.a1.x = ucell.latvec.e11;
62 ucell.a1.y = ucell.latvec.e12;
63 ucell.a1.z = ucell.latvec.e13;
64
65 ucell.a2.x = ucell.latvec.e21;
66 ucell.a2.y = ucell.latvec.e22;
67 ucell.a2.z = ucell.latvec.e23;
68
69 ucell.a3.x = ucell.latvec.e31;
70 ucell.a3.y = ucell.latvec.e32;
71 ucell.a3.z = ucell.latvec.e33;
72
73 ucell.nat = 3;
74 ucell.atoms[0].na = 2;
75 ucell.atoms[1].na = 1;
76
77 ucell.atoms[0].tau.resize(ucell.atoms[0].na);
78 ucell.atoms[1].tau.resize(ucell.atoms[1].na);
79
80 ucell.atoms[0].tau[0].set(7.5456, 0, 9.54275);
81 ucell.atoms[0].tau[1].set(7.542, 1.8495, 7.34175);
82 ucell.atoms[1].tau[0].set(7.54965, 0, 7.48585);
83
84 ucell.atoms[0].ncpp.zv = 1;
85 ucell.atoms[1].ncpp.zv = 6;
86
87 ucell.omega = std::abs(ucell.latvec.Det()) * ucell.lat0 * ucell.lat0 * ucell.lat0;
88
89 };
90};
91
92#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
SepPot()
Definition symmetry_test_analysis.cpp:37
~SepPot()
Definition symmetry_test_analysis.cpp:38
~Sep_Cell() noexcept
Definition symmetry_test_analysis.cpp:40
Sep_Cell() noexcept
Definition symmetry_test_analysis.cpp:39
Definition setcell.h:40
static void setupcell(UnitCell &ucell)
Definition setcell.h:42
Definition unitcell.h:17
~UnitCell()
Definition symmetry_test_analysis.cpp:34
Atom * atoms
Definition unitcell.h:19
double & lat0
Definition unitcell.h:30
ModuleBase::Matrix3 & latvec
Definition unitcell.h:37
UnitCell()
Definition symmetry_test_analysis.cpp:33
int & ntype
Definition unitcell.h:47
double & tpiba
Definition unitcell.h:32
double & tpiba2
Definition unitcell.h:33
int & nat
Definition unitcell.h:48
double & omega
Definition unitcell.h:34
ModuleBase::Vector3< double > & a2
Definition unitcell.h:38
ModuleBase::Vector3< double > & a3
Definition unitcell.h:38
bool set_atom_flag
Definition unitcell.h:22
ModuleBase::Vector3< double > & a1
Definition unitcell.h:38
double & lat0_angstrom
Definition unitcell.h:31
~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
const double BOHR_TO_A
Definition constants.h:55