|
1 | 1 | #include "../xc_functional.h" |
2 | 2 | #include "../libxc_abacus.h" |
3 | 3 | #include "gtest/gtest.h" |
4 | | -#define private public |
5 | | -#include "source_io/module_parameter/parameter.h" |
6 | | -#undef private |
7 | 4 | #include "xctest.h" |
8 | 5 | #include "../exx_info.h" |
9 | 6 | #include "xc3_mock.h" |
@@ -32,6 +29,12 @@ class XCTest_VXC : public XCTest |
32 | 29 |
|
33 | 30 | void SetUp() |
34 | 31 | { |
| 32 | + // Define variables for parameters |
| 33 | + int nspin1 = 1; |
| 34 | + int nspin2 = 2; |
| 35 | + bool domag = false; |
| 36 | + bool domag_z = false; |
| 37 | + |
35 | 38 | ModulePW::PW_Basis rhopw; |
36 | 39 | UnitCell ucell; |
37 | 40 | Charge chr; |
@@ -75,16 +78,14 @@ class XCTest_VXC : public XCTest |
75 | 78 |
|
76 | 79 | XC_Functional::set_xc_type("PBE"); |
77 | 80 |
|
78 | | - PARAM.input.nspin = 1; |
79 | 81 | std::tuple<double, double, ModuleBase::matrix> etxc_vtxc_v |
80 | | - = XC_Functional::v_xc(rhopw.nrxx,&chr,&ucell); |
| 82 | + = XC_Functional::v_xc(rhopw.nrxx,&chr,&ucell,nspin1,domag,domag_z); |
81 | 83 | et1 = std::get<0>(etxc_vtxc_v); |
82 | 84 | vt1 = std::get<1>(etxc_vtxc_v); |
83 | 85 | v1 = std::get<2>(etxc_vtxc_v); |
84 | 86 |
|
85 | | - PARAM.input.nspin = 2; |
86 | 87 | etxc_vtxc_v |
87 | | - = XC_Functional::v_xc(rhopw.nrxx,&chr,&ucell); |
| 88 | + = XC_Functional::v_xc(rhopw.nrxx,&chr,&ucell,nspin2,domag,domag_z); |
88 | 89 | et2 = std::get<0>(etxc_vtxc_v); |
89 | 90 | vt2 = std::get<1>(etxc_vtxc_v); |
90 | 91 | v2 = std::get<2>(etxc_vtxc_v); |
@@ -130,6 +131,12 @@ class XCTest_VXC_Libxc : public XCTest |
130 | 131 |
|
131 | 132 | void SetUp() |
132 | 133 | { |
| 134 | + // Define variables for parameters |
| 135 | + int nspin1 = 1; |
| 136 | + int nspin2 = 2; |
| 137 | + bool domag = false; |
| 138 | + bool domag_z = false; |
| 139 | + |
133 | 140 | ModulePW::PW_Basis rhopw; |
134 | 141 | UnitCell ucell; |
135 | 142 | Charge chr; |
@@ -173,16 +180,14 @@ class XCTest_VXC_Libxc : public XCTest |
173 | 180 |
|
174 | 181 | XC_Functional::set_xc_type("GGA_X_PBE+GGA_C_PBE"); |
175 | 182 |
|
176 | | - PARAM.input.nspin = 1; |
177 | 183 | std::tuple<double, double, ModuleBase::matrix> etxc_vtxc_v |
178 | | - = XC_Functional::v_xc(rhopw.nrxx,&chr,&ucell); |
| 184 | + = XC_Functional::v_xc(rhopw.nrxx,&chr,&ucell,nspin1,domag,domag_z); |
179 | 185 | et1 = std::get<0>(etxc_vtxc_v); |
180 | 186 | vt1 = std::get<1>(etxc_vtxc_v); |
181 | 187 | v1 = std::get<2>(etxc_vtxc_v); |
182 | 188 |
|
183 | | - PARAM.input.nspin = 2; |
184 | 189 | etxc_vtxc_v |
185 | | - = XC_Functional::v_xc(rhopw.nrxx,&chr,&ucell); |
| 190 | + = XC_Functional::v_xc(rhopw.nrxx,&chr,&ucell,nspin2,domag,domag_z); |
186 | 191 | et2 = std::get<0>(etxc_vtxc_v); |
187 | 192 | vt2 = std::get<1>(etxc_vtxc_v); |
188 | 193 | v2 = std::get<2>(etxc_vtxc_v); |
@@ -228,6 +233,10 @@ class XCTest_VXC_meta : public XCTest |
228 | 233 |
|
229 | 234 | void SetUp() |
230 | 235 | { |
| 236 | + // Define variables for parameters |
| 237 | + int nspin1 = 1; |
| 238 | + int nspin2 = 2; |
| 239 | + |
231 | 240 | ModulePW::PW_Basis rhopw; |
232 | 241 | UnitCell ucell; |
233 | 242 | Charge chr; |
@@ -281,17 +290,15 @@ class XCTest_VXC_meta : public XCTest |
281 | 290 |
|
282 | 291 | XC_Functional::set_xc_type("SCAN"); |
283 | 292 |
|
284 | | - PARAM.input.nspin = 1; |
285 | 293 | std::tuple<double, double, ModuleBase::matrix, ModuleBase::matrix> etxc_vtxc_v |
286 | | - = XC_Functional_Libxc::v_xc_meta(XC_Functional::get_func_id(), rhopw.nrxx,ucell.omega,ucell.tpiba,&chr); |
| 294 | + = XC_Functional_Libxc::v_xc_meta(XC_Functional::get_func_id(), rhopw.nrxx,ucell.omega,ucell.tpiba,&chr,nspin1); |
287 | 295 | et1 = std::get<0>(etxc_vtxc_v); |
288 | 296 | vt1 = std::get<1>(etxc_vtxc_v); |
289 | 297 | v1 = std::get<2>(etxc_vtxc_v); |
290 | 298 | vtau1 = std::get<3>(etxc_vtxc_v); |
291 | 299 |
|
292 | | - PARAM.input.nspin = 2; |
293 | 300 | etxc_vtxc_v |
294 | | - = XC_Functional_Libxc::v_xc_meta(XC_Functional::get_func_id(), rhopw.nrxx,ucell.omega,ucell.tpiba,&chr); |
| 301 | + = XC_Functional_Libxc::v_xc_meta(XC_Functional::get_func_id(), rhopw.nrxx,ucell.omega,ucell.tpiba,&chr,nspin2); |
295 | 302 | et2 = std::get<0>(etxc_vtxc_v); |
296 | 303 | vt2 = std::get<1>(etxc_vtxc_v); |
297 | 304 | v2 = std::get<2>(etxc_vtxc_v); |
|
0 commit comments