Skip to content

Commit 905a5d6

Browse files
Merge remote-tracking branch 'upstream/develop' into develop
2 parents fe13cba + ba9276a commit 905a5d6

File tree

20 files changed

+488
-406
lines changed

20 files changed

+488
-406
lines changed

docs/advanced/input_files/input-main.md

Lines changed: 130 additions & 135 deletions
Large diffs are not rendered by default.

source/Makefile.Objects

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -679,6 +679,7 @@ OBJS_MODULE_RI=conv_coulomb_pot_k.o\
679679
Mix_DMk_2D.o\
680680
Mix_Matrix.o\
681681
symmetry_rotation.o\
682+
symmetry_rotation_output.o\
682683
symmetry_irreducible_sector.o\
683684

684685
OBJS_PARALLEL=parallel_common.o\

source/source_base/matrix3.cpp

Lines changed: 111 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -7,179 +7,182 @@ Matrix3::Matrix3(const double &r11, const double &r12, const double &r13,
77
const double &r21, const double &r22, const double &r23,
88
const double &r31, const double &r32, const double &r33)
99
{
10-
e11 = r11;e12 = r12;e13 = r13;
11-
e21 = r21;e22 = r22;e23 = r23;
12-
e31 = r31;e32 = r32;e33 = r33;
10+
e11 = r11; e12 = r12; e13 = r13;
11+
e21 = r21; e22 = r22; e23 = r23;
12+
e31 = r31; e32 = r32; e33 = r33;
1313
}
1414

1515
void Matrix3::Identity(void)
1616
{
17-
e11 = 1;e12 = 0;e13 = 0;
18-
e21 = 0;e22 = 1;e23 = 0;
19-
e31 = 0;e32 = 0;e33 = 1;
17+
e11 = 1; e12 = 0; e13 = 0;
18+
e21 = 0; e22 = 1; e23 = 0;
19+
e31 = 0; e32 = 0; e33 = 1;
2020
}
2121

2222
void Matrix3::Zero(void)
2323
{
24-
e11 = 0;e12 = 0;e13 = 0;
25-
e21 = 0;e22 = 0;e23 = 0;
26-
e31 = 0;e32 = 0;e33 = 0;
24+
e11 = 0; e12 = 0; e13 = 0;
25+
e21 = 0; e22 = 0; e23 = 0;
26+
e31 = 0; e32 = 0; e33 = 0;
2727
}
2828

29-
double Matrix3::Det(void) const
29+
double Matrix3::Det(void) const
3030
{
31-
return e11*e22*e33 -
32-
e11*e32*e23 +
33-
e21*e32*e13 -
34-
e21*e12*e33 +
35-
e31*e12*e23 -
36-
e31*e22*e13;
31+
return e11*e22*e33 -
32+
e11*e32*e23 +
33+
e21*e32*e13 -
34+
e21*e12*e33 +
35+
e31*e12*e23 -
36+
e31*e22*e13;
3737
}
3838

3939
Matrix3 Matrix3::Transpose(void) const
4040
{
41-
return Matrix3(e11, e21, e31, e12, e22, e32, e13, e23, e33);
41+
return Matrix3(e11, e21, e31, e12, e22, e32, e13, e23, e33);
4242
}
4343

4444
Matrix3 Matrix3::Inverse(void) const
4545
{
46-
double d = this->Det();
46+
double d = this->Det();
4747

48-
if(d == 0)d = 1;
48+
if(d == 0)
49+
{
50+
d = 1;
51+
}
4952

50-
return Matrix3((e22*e33 - e23*e32) / d,
51-
-(e12*e33 - e13*e32) / d,
52-
(e12*e23 - e13*e22) / d,
53-
-(e21*e33 - e23*e31) / d,
54-
(e11*e33 - e13*e31) / d,
55-
-(e11*e23 - e13*e21) / d,
56-
(e21*e32 - e22*e31) / d,
57-
-(e11*e32 - e12*e31) / d,
58-
(e11*e22 - e12*e21) / d);
53+
return Matrix3((e22*e33 - e23*e32) / d,
54+
-(e12*e33 - e13*e32) / d,
55+
(e12*e23 - e13*e22) / d,
56+
-(e21*e33 - e23*e31) / d,
57+
(e11*e33 - e13*e31) / d,
58+
-(e11*e23 - e13*e21) / d,
59+
(e21*e32 - e22*e31) / d,
60+
-(e11*e32 - e12*e31) / d,
61+
(e11*e22 - e12*e21) / d);
5962
}
6063

6164
Matrix3& Matrix3::operator = (const Matrix3 &m)
6265
{
63-
e11 = m.e11;e12 = m.e12;e13 = m.e13;
64-
e21 = m.e21;e22 = m.e22;e23 = m.e23;
65-
e31 = m.e31;e32 = m.e32;e33 = m.e33;
66-
return *this;
66+
e11 = m.e11; e12 = m.e12; e13 = m.e13;
67+
e21 = m.e21; e22 = m.e22; e23 = m.e23;
68+
e31 = m.e31; e32 = m.e32; e33 = m.e33;
69+
return *this;
6770
}
6871

6972
Matrix3& Matrix3::operator +=(const Matrix3 &m)
7073
{
71-
e11 += m.e11;e12 += m.e12;e13 += m.e13;
72-
e21 += m.e21;e22 += m.e22;e23 += m.e23;
73-
e31 += m.e31;e32 += m.e32;e33 += m.e33;
74-
return *this;
74+
e11 += m.e11; e12 += m.e12; e13 += m.e13;
75+
e21 += m.e21; e22 += m.e22; e23 += m.e23;
76+
e31 += m.e31; e32 += m.e32; e33 += m.e33;
77+
return *this;
7578
}
7679

7780
Matrix3& Matrix3::operator -=(const Matrix3 &m)
7881
{
79-
e11 -= m.e11;e12 -= m.e12;e13 -= m.e13;
80-
e21 -= m.e21;e22 -= m.e22;e23 -= m.e23;
81-
e31 -= m.e31;e32 -= m.e32;e33 -= m.e33;
82-
return *this;
82+
e11 -= m.e11; e12 -= m.e12; e13 -= m.e13;
83+
e21 -= m.e21; e22 -= m.e22; e23 -= m.e23;
84+
e31 -= m.e31; e32 -= m.e32; e33 -= m.e33;
85+
return *this;
8386
}
8487

8588
Matrix3& Matrix3::operator *=(const double &s)
8689
{
87-
e11 *= s;e12 *= s;e13 *= s;
88-
e21 *= s;e22 *= s;e23 *= s;
89-
e31 *= s;e32 *= s;e33 *= s;
90-
return *this;
90+
e11 *= s; e12 *= s; e13 *= s;
91+
e21 *= s; e22 *= s; e23 *= s;
92+
e31 *= s; e32 *= s; e33 *= s;
93+
return *this;
9194
}
9295

9396
Matrix3& Matrix3::operator /=(const double &s)
9497
{
95-
e11 /= s;e12 /= s;e13 /= s;
96-
e21 /= s;e22 /= s;e23 /= s;
97-
e31 /= s;e32 /= s;e33 /= s;
98-
return *this;
98+
e11 /= s; e12 /= s; e13 /= s;
99+
e21 /= s; e22 /= s; e23 /= s;
100+
e31 /= s; e32 /= s; e33 /= s;
101+
return *this;
99102
}
100103

101104
//m1+m2
102105
Matrix3 operator +(const Matrix3 &m1, const Matrix3 &m2)
103106
{
104-
return Matrix3(m1.e11 + m2.e11,
105-
m1.e12 + m2.e12,
106-
m1.e13 + m2.e13,
107-
m1.e21 + m2.e21,
108-
m1.e22 + m2.e22,
109-
m1.e23 + m2.e23,
110-
m1.e31 + m2.e31,
111-
m1.e32 + m2.e32,
112-
m1.e33 + m2.e33);
107+
return Matrix3(m1.e11 + m2.e11,
108+
m1.e12 + m2.e12,
109+
m1.e13 + m2.e13,
110+
m1.e21 + m2.e21,
111+
m1.e22 + m2.e22,
112+
m1.e23 + m2.e23,
113+
m1.e31 + m2.e31,
114+
m1.e32 + m2.e32,
115+
m1.e33 + m2.e33);
113116
}
114117

115118
//m1-m2
116119
Matrix3 operator -(const Matrix3 &m1, const Matrix3 &m2)
117120
{
118-
return Matrix3(m1.e11 - m2.e11, // Zujian Dai fix bug 2019-01-21
119-
m1.e12 - m2.e12,
120-
m1.e13 - m2.e13,
121-
m1.e21 - m2.e21,
122-
m1.e22 - m2.e22,
123-
m1.e23 - m2.e23,
124-
m1.e31 - m2.e31,
125-
m1.e32 - m2.e32,
126-
m1.e33 - m2.e33);
121+
return Matrix3(m1.e11 - m2.e11, // Zujian Dai fix bug 2019-01-21
122+
m1.e12 - m2.e12,
123+
m1.e13 - m2.e13,
124+
m1.e21 - m2.e21,
125+
m1.e22 - m2.e22,
126+
m1.e23 - m2.e23,
127+
m1.e31 - m2.e31,
128+
m1.e32 - m2.e32,
129+
m1.e33 - m2.e33);
127130
}
128131

129132
//m/s
130133
Matrix3 operator /(const Matrix3 &m, const double &s)
131134
{
132-
return Matrix3(m.e11 / s, m.e12 / s, m.e13 / s,
133-
m.e21 / s, m.e22 / s, m.e23 / s,
134-
m.e31 / s, m.e32 / s, m.e33 / s);
135+
return Matrix3(m.e11 / s, m.e12 / s, m.e13 / s,
136+
m.e21 / s, m.e22 / s, m.e23 / s,
137+
m.e31 / s, m.e32 / s, m.e33 / s);
135138
}
136139

137140
//m1*m2
138141
Matrix3 operator *(const Matrix3 &m1, const Matrix3 &m2)
139142
{
140-
return Matrix3(m1.e11*m2.e11 + m1.e12*m2.e21 + m1.e13*m2.e31,
141-
m1.e11*m2.e12 + m1.e12*m2.e22 + m1.e13*m2.e32,
142-
m1.e11*m2.e13 + m1.e12*m2.e23 + m1.e13*m2.e33,
143-
m1.e21*m2.e11 + m1.e22*m2.e21 + m1.e23*m2.e31,
144-
m1.e21*m2.e12 + m1.e22*m2.e22 + m1.e23*m2.e32,
145-
m1.e21*m2.e13 + m1.e22*m2.e23 + m1.e23*m2.e33,
146-
m1.e31*m2.e11 + m1.e32*m2.e21 + m1.e33*m2.e31,
147-
m1.e31*m2.e12 + m1.e32*m2.e22 + m1.e33*m2.e32,
148-
m1.e31*m2.e13 + m1.e32*m2.e23 + m1.e33*m2.e33);
143+
return Matrix3(m1.e11*m2.e11 + m1.e12*m2.e21 + m1.e13*m2.e31,
144+
m1.e11*m2.e12 + m1.e12*m2.e22 + m1.e13*m2.e32,
145+
m1.e11*m2.e13 + m1.e12*m2.e23 + m1.e13*m2.e33,
146+
m1.e21*m2.e11 + m1.e22*m2.e21 + m1.e23*m2.e31,
147+
m1.e21*m2.e12 + m1.e22*m2.e22 + m1.e23*m2.e32,
148+
m1.e21*m2.e13 + m1.e22*m2.e23 + m1.e23*m2.e33,
149+
m1.e31*m2.e11 + m1.e32*m2.e21 + m1.e33*m2.e31,
150+
m1.e31*m2.e12 + m1.e32*m2.e22 + m1.e33*m2.e32,
151+
m1.e31*m2.e13 + m1.e32*m2.e23 + m1.e33*m2.e33);
149152
}
150153

151154
//m*s
152155
Matrix3 operator *(const Matrix3 &m,const double &s)
153156
{
154-
return Matrix3(m.e11*s, m.e12*s, m.e13*s,
155-
m.e21*s, m.e22*s, m.e23*s,
156-
m.e31*s, m.e32*s, m.e33*s);
157+
return Matrix3(m.e11*s, m.e12*s, m.e13*s,
158+
m.e21*s, m.e22*s, m.e23*s,
159+
m.e31*s, m.e32*s, m.e33*s);
157160
}
158161

159162
//s*m
160163
Matrix3 operator *(const double &s, const Matrix3 &m)
161164
{
162-
return Matrix3(m.e11*s, m.e12*s, m.e13*s,
163-
m.e21*s, m.e22*s, m.e23*s,
164-
m.e31*s, m.e32*s, m.e33*s);
165+
return Matrix3(m.e11*s, m.e12*s, m.e13*s,
166+
m.e21*s, m.e22*s, m.e23*s,
167+
m.e31*s, m.e32*s, m.e33*s);
165168
}
166169

167170
// whether m1==m2
168171
bool operator==(const Matrix3 &m1, const Matrix3 &m2)
169172
{
170-
if(m1.e11 == m2.e11 &&
171-
m1.e12 == m2.e12 &&
172-
m1.e13 == m2.e13 &&
173-
m1.e21 == m2.e21 &&
174-
m1.e22 == m2.e22 &&
175-
m1.e23 == m2.e23 &&
176-
m1.e31 == m2.e31 &&
177-
m1.e32 == m2.e32 &&
178-
m1.e33 == m2.e33)
179-
{
180-
return true;
181-
}
182-
return false;
173+
if(m1.e11 == m2.e11 &&
174+
m1.e12 == m2.e12 &&
175+
m1.e13 == m2.e13 &&
176+
m1.e21 == m2.e21 &&
177+
m1.e22 == m2.e22 &&
178+
m1.e23 == m2.e23 &&
179+
m1.e31 == m2.e31 &&
180+
m1.e32 == m2.e32 &&
181+
m1.e33 == m2.e33)
182+
{
183+
return true;
184+
}
185+
return false;
183186
}
184187

185188
//whether m1 != m2
@@ -189,21 +192,21 @@ bool operator!=(const Matrix3 &m1, const Matrix3 &m2)
189192
}
190193

191194

192-
void Matrix3::print(void)const
195+
void Matrix3::print(void) const
193196
{
194-
std::cout << e11 << std::setw(15) << e12 << std::setw(15) << e13 << std::endl ;
195-
std::cout << e21 << std::setw(15) << e22 << std::setw(15) << e23 << std::endl ;
196-
std::cout << e31 << std::setw(15) << e32 << std::setw(15) << e33 << std::endl ;
197-
return;
197+
std::cout << std::setw(15) << e11 << std::setw(15) << e12 << std::setw(15) << e13 << std::endl;
198+
std::cout << std::setw(15) << e21 << std::setw(15) << e22 << std::setw(15) << e23 << std::endl;
199+
std::cout << std::setw(15) << e31 << std::setw(15) << e32 << std::setw(15) << e33 << std::endl;
200+
return;
198201
}
199202

200-
ModuleBase::matrix Matrix3::to_matrix(void)const // Peize Lin add 2021.03.09
203+
ModuleBase::matrix Matrix3::to_matrix(void)const // Peize Lin add 2021.03.09
201204
{
202-
ModuleBase::matrix m(3,3);
203-
m(0,0)=e11; m(0,1)=e12; m(0,2)=e13;
204-
m(1,0)=e21; m(1,1)=e22; m(1,2)=e23;
205-
m(2,0)=e31; m(2,1)=e32; m(2,2)=e33;
206-
return m;
205+
ModuleBase::matrix m(3,3);
206+
m(0,0)=e11; m(0,1)=e12; m(0,2)=e13;
207+
m(1,0)=e21; m(1,1)=e22; m(1,2)=e23;
208+
m(2,0)=e31; m(2,1)=e32; m(2,2)=e33;
209+
return m;
207210
}
208211

209212
}

0 commit comments

Comments
 (0)