Skip to content

Commit 548bf8f

Browse files
authored
Test: Refactor DeePKS Unit Tests (deepmodeling#7577)
* Test: Refactor DeePKS unit tests * Test: Address DeePKS unit test review comments
1 parent 7a556a4 commit 548bf8f

96 files changed

Lines changed: 1417 additions & 1551 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ obj
66
OUT.*
77
log.txt
88
result.out
9+
test.sum
910
*.dat
1011
.DS_Store
1112
.cache
Lines changed: 306 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
1-
add_executable(
2-
test_deepks
3-
main_deepks.cpp klist_1.cpp LCAO_deepks_test_prep.cpp LCAO_deepks_test.cpp
1+
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/support DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
2+
set(DEEPKS_UT_PP_ORB_DIR "${PROJECT_SOURCE_DIR}/tests/PP_ORB")
3+
configure_file(
4+
${CMAKE_CURRENT_SOURCE_DIR}/support/NO_GO_deepks_UT/STRU
5+
${CMAKE_CURRENT_BINARY_DIR}/support/NO_GO_deepks_UT/STRU
6+
@ONLY
7+
)
8+
configure_file(
9+
${CMAKE_CURRENT_SOURCE_DIR}/support/NO_KP_deepks_UT/STRU
10+
${CMAKE_CURRENT_BINARY_DIR}/support/NO_KP_deepks_UT/STRU
11+
@ONLY
12+
)
13+
14+
set(DEEPKS_UNIT_COMMON_SOURCES
15+
deepks_test_prep.cpp
16+
deepks_test.cpp
417
../../../source_cell/unitcell.cpp
518
../../../source_cell/update_cell.cpp
619
../../../source_cell/bcast_cell.cpp
@@ -11,6 +24,9 @@ add_executable(
1124
../../../source_cell/read_stru.cpp
1225
../../../source_cell/print_cell.cpp
1326
../../../source_cell/read_atom_species.cpp
27+
../../../source_cell/klist.cpp
28+
../../../source_cell/parallel_kpoints.cpp
29+
../../../source_cell/k_vector_utils.cpp
1430
../../../source_cell/setup_nonlocal.cpp
1531
../../../source_cell/pseudo.cpp
1632
../../../source_cell/read_pp.cpp
@@ -22,14 +38,16 @@ add_executable(
2238
../../../source_cell/sep.cpp
2339
../../../source_cell/sep_cell.cpp
2440
../../../source_pw/module_pwdft/soc.cpp
25-
2641
../../../source_io/module_output/sparse_matrix.cpp
2742
../../../source_estate/read_pseudo.cpp
2843
../../../source_estate/cal_wfc.cpp
2944
../../../source_estate/read_orb.cpp
3045
../../../source_estate/cal_nelec_nband.cpp
3146
../../../source_estate/module_dm/density_matrix.cpp
3247
../../../source_estate/module_dm/density_matrix_io.cpp
48+
../../center2_orb.cpp
49+
../../center2_orb-orb11.cpp
50+
../../center2_orb-orb21.cpp
3351
../../module_hcontainer/base_matrix.cpp
3452
../../module_hcontainer/hcontainer.cpp
3553
../../module_hcontainer/atom_pair.cpp
@@ -40,24 +58,297 @@ add_executable(
4058
../../module_operator_lcao/deepks_lcao.cpp
4159
../../module_operator_lcao/operator_lcao.cpp
4260
../../../source_hamilt/operator.cpp
61+
../../../source_io/module_hs/cal_r_overlap_R.cpp
62+
../../../source_io/module_hs/single_R_io.cpp
63+
../../../source_io/module_hs/rr_sparse_writer.cpp
4364
../../module_rt/td_folding.cpp
65+
mock_berryphase.cpp
4466
mock_tdinfo.cpp
4567
)
4668

47-
target_link_libraries(
48-
test_deepks
49-
PRIVATE
50-
base device parameter deepks psi planewave neighbor container
51-
orb gint numerical_atomic_orbitals
52-
${math_libs}
53-
)
69+
add_library(deepks_unit_support OBJECT ${DEEPKS_UNIT_COMMON_SOURCES})
5470

5571
if(ENABLE_COVERAGE)
56-
add_coverage(test_deepks)
72+
add_coverage(deepks_unit_support)
5773
endif()
5874

75+
set(DEEPKS_UNIT_LIBS
76+
deepks_unit_support
77+
base
78+
device
79+
parameter
80+
deepks
81+
psi
82+
planewave
83+
neighbor
84+
container
85+
orb
86+
gint
87+
numerical_atomic_orbitals
88+
symmetry
89+
${math_libs}
90+
)
91+
92+
set(DEEPKS_UNIT_PHIALPHA_SOURCES
93+
deepks_test_phialpha.cpp
94+
)
95+
set(DEEPKS_UNIT_PDM_SOURCES
96+
${DEEPKS_UNIT_PHIALPHA_SOURCES}
97+
deepks_test_pdm.cpp
98+
)
99+
set(DEEPKS_UNIT_DESCRIPTOR_SOURCES
100+
${DEEPKS_UNIT_PDM_SOURCES}
101+
deepks_test_descriptor.cpp
102+
)
103+
set(DEEPKS_UNIT_GDMX_SOURCES
104+
${DEEPKS_UNIT_PDM_SOURCES}
105+
deepks_test_gdmx.cpp
106+
)
107+
set(DEEPKS_UNIT_GVX_SOURCES
108+
${DEEPKS_UNIT_DESCRIPTOR_SOURCES}
109+
deepks_test_gdmx.cpp
110+
deepks_test_gvx.cpp
111+
)
112+
set(DEEPKS_UNIT_GDMEPSL_SOURCES
113+
${DEEPKS_UNIT_PDM_SOURCES}
114+
deepks_test_gdmepsl.cpp
115+
)
116+
set(DEEPKS_UNIT_GVEPSL_SOURCES
117+
${DEEPKS_UNIT_DESCRIPTOR_SOURCES}
118+
deepks_test_gdmepsl.cpp
119+
deepks_test_gvepsl.cpp
120+
)
121+
set(DEEPKS_UNIT_ORBPRE_SOURCES
122+
${DEEPKS_UNIT_DESCRIPTOR_SOURCES}
123+
deepks_test_orbpre.cpp
124+
)
125+
set(DEEPKS_UNIT_VDPRE_SOURCES
126+
${DEEPKS_UNIT_DESCRIPTOR_SOURCES}
127+
deepks_test_vdpre.cpp
128+
)
129+
set(DEEPKS_UNIT_VDRPRE_SOURCES
130+
${DEEPKS_UNIT_DESCRIPTOR_SOURCES}
131+
deepks_test_vdrpre.cpp
132+
)
133+
set(DEEPKS_UNIT_EDELTA_SOURCES
134+
${DEEPKS_UNIT_DESCRIPTOR_SOURCES}
135+
deepks_test_edelta.cpp
136+
)
137+
set(DEEPKS_UNIT_E_DELTABANDS_SOURCES
138+
${DEEPKS_UNIT_EDELTA_SOURCES}
139+
deepks_test_e_deltabands.cpp
140+
)
141+
set(DEEPKS_UNIT_FORCE_STRESS_DELTA_SOURCES
142+
${DEEPKS_UNIT_EDELTA_SOURCES}
143+
deepks_test_force_stress_delta.cpp
144+
)
145+
set(DEEPKS_UNIT_O_DELTA_SOURCES
146+
${DEEPKS_UNIT_E_DELTABANDS_SOURCES}
147+
deepks_test_o_delta.cpp
148+
)
149+
150+
function(configure_deepks_unit_target TARGET_NAME CHECK_NAME CASE_DIR)
151+
target_compile_definitions(
152+
${TARGET_NAME}
153+
PRIVATE
154+
DEEPKS_UT_CHECK_NAME="${CHECK_NAME}"
155+
DEEPKS_UT_CASE_DIR="${CASE_DIR}"
156+
DEEPKS_UT_RUNNER=run_deepks_unit_${CHECK_NAME}
157+
)
158+
endfunction()
159+
160+
AddTest(
161+
TARGET MODULE_LCAO_DEEPKS_phialpha_gamma
162+
LIBS ${DEEPKS_UNIT_LIBS}
163+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_PHIALPHA_SOURCES}
164+
)
165+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_phialpha_gamma phialpha NO_GO_deepks_UT)
166+
167+
AddTest(
168+
TARGET MODULE_LCAO_DEEPKS_pdm_gamma
169+
LIBS ${DEEPKS_UNIT_LIBS}
170+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_PDM_SOURCES}
171+
)
172+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_pdm_gamma pdm NO_GO_deepks_UT)
173+
174+
AddTest(
175+
TARGET MODULE_LCAO_DEEPKS_descriptor_gamma
176+
LIBS ${DEEPKS_UNIT_LIBS}
177+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_DESCRIPTOR_SOURCES}
178+
)
179+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_descriptor_gamma descriptor NO_GO_deepks_UT)
180+
181+
AddTest(
182+
TARGET MODULE_LCAO_DEEPKS_gdmx_gamma
183+
LIBS ${DEEPKS_UNIT_LIBS}
184+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_GDMX_SOURCES}
185+
)
186+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gdmx_gamma gdmx NO_GO_deepks_UT)
187+
188+
AddTest(
189+
TARGET MODULE_LCAO_DEEPKS_gvx_gamma
190+
LIBS ${DEEPKS_UNIT_LIBS}
191+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_GVX_SOURCES}
192+
)
193+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gvx_gamma gvx NO_GO_deepks_UT)
194+
195+
AddTest(
196+
TARGET MODULE_LCAO_DEEPKS_gdmepsl_gamma
197+
LIBS ${DEEPKS_UNIT_LIBS}
198+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_GDMEPSL_SOURCES}
199+
)
200+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gdmepsl_gamma gdmepsl NO_GO_deepks_UT)
201+
202+
AddTest(
203+
TARGET MODULE_LCAO_DEEPKS_gvepsl_gamma
204+
LIBS ${DEEPKS_UNIT_LIBS}
205+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_GVEPSL_SOURCES}
206+
)
207+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gvepsl_gamma gvepsl NO_GO_deepks_UT)
208+
209+
AddTest(
210+
TARGET MODULE_LCAO_DEEPKS_orbpre_gamma
211+
LIBS ${DEEPKS_UNIT_LIBS}
212+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_ORBPRE_SOURCES}
213+
)
214+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_orbpre_gamma orbpre NO_GO_deepks_UT)
215+
216+
AddTest(
217+
TARGET MODULE_LCAO_DEEPKS_vdpre_gamma
218+
LIBS ${DEEPKS_UNIT_LIBS}
219+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_VDPRE_SOURCES}
220+
)
221+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_vdpre_gamma vdpre NO_GO_deepks_UT)
222+
223+
AddTest(
224+
TARGET MODULE_LCAO_DEEPKS_vdrpre_gamma
225+
LIBS ${DEEPKS_UNIT_LIBS}
226+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_VDRPRE_SOURCES}
227+
)
228+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_vdrpre_gamma vdrpre NO_GO_deepks_UT)
229+
230+
AddTest(
231+
TARGET MODULE_LCAO_DEEPKS_edelta_gamma
232+
LIBS ${DEEPKS_UNIT_LIBS}
233+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_EDELTA_SOURCES}
234+
)
235+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_edelta_gamma edelta NO_GO_deepks_UT)
236+
237+
AddTest(
238+
TARGET MODULE_LCAO_DEEPKS_e_deltabands_gamma
239+
LIBS ${DEEPKS_UNIT_LIBS}
240+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_E_DELTABANDS_SOURCES}
241+
)
242+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_e_deltabands_gamma e_deltabands NO_GO_deepks_UT)
243+
244+
AddTest(
245+
TARGET MODULE_LCAO_DEEPKS_force_stress_delta_gamma
246+
LIBS ${DEEPKS_UNIT_LIBS}
247+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_FORCE_STRESS_DELTA_SOURCES}
248+
)
249+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_force_stress_delta_gamma force_stress_delta NO_GO_deepks_UT)
250+
251+
AddTest(
252+
TARGET MODULE_LCAO_DEEPKS_o_delta_gamma
253+
LIBS ${DEEPKS_UNIT_LIBS}
254+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_O_DELTA_SOURCES}
255+
)
256+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_o_delta_gamma o_delta NO_GO_deepks_UT)
257+
258+
AddTest(
259+
TARGET MODULE_LCAO_DEEPKS_phialpha_multik
260+
LIBS ${DEEPKS_UNIT_LIBS}
261+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_PHIALPHA_SOURCES}
262+
)
263+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_phialpha_multik phialpha NO_KP_deepks_UT)
264+
265+
AddTest(
266+
TARGET MODULE_LCAO_DEEPKS_pdm_multik
267+
LIBS ${DEEPKS_UNIT_LIBS}
268+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_PDM_SOURCES}
269+
)
270+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_pdm_multik pdm NO_KP_deepks_UT)
271+
272+
AddTest(
273+
TARGET MODULE_LCAO_DEEPKS_descriptor_multik
274+
LIBS ${DEEPKS_UNIT_LIBS}
275+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_DESCRIPTOR_SOURCES}
276+
)
277+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_descriptor_multik descriptor NO_KP_deepks_UT)
278+
279+
AddTest(
280+
TARGET MODULE_LCAO_DEEPKS_gdmx_multik
281+
LIBS ${DEEPKS_UNIT_LIBS}
282+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_GDMX_SOURCES}
283+
)
284+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gdmx_multik gdmx NO_KP_deepks_UT)
285+
286+
AddTest(
287+
TARGET MODULE_LCAO_DEEPKS_gvx_multik
288+
LIBS ${DEEPKS_UNIT_LIBS}
289+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_GVX_SOURCES}
290+
)
291+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gvx_multik gvx NO_KP_deepks_UT)
292+
293+
AddTest(
294+
TARGET MODULE_LCAO_DEEPKS_gdmepsl_multik
295+
LIBS ${DEEPKS_UNIT_LIBS}
296+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_GDMEPSL_SOURCES}
297+
)
298+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gdmepsl_multik gdmepsl NO_KP_deepks_UT)
299+
300+
AddTest(
301+
TARGET MODULE_LCAO_DEEPKS_gvepsl_multik
302+
LIBS ${DEEPKS_UNIT_LIBS}
303+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_GVEPSL_SOURCES}
304+
)
305+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_gvepsl_multik gvepsl NO_KP_deepks_UT)
306+
307+
AddTest(
308+
TARGET MODULE_LCAO_DEEPKS_orbpre_multik
309+
LIBS ${DEEPKS_UNIT_LIBS}
310+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_ORBPRE_SOURCES}
311+
)
312+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_orbpre_multik orbpre NO_KP_deepks_UT)
313+
314+
AddTest(
315+
TARGET MODULE_LCAO_DEEPKS_vdpre_multik
316+
LIBS ${DEEPKS_UNIT_LIBS}
317+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_VDPRE_SOURCES}
318+
)
319+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_vdpre_multik vdpre NO_KP_deepks_UT)
320+
321+
AddTest(
322+
TARGET MODULE_LCAO_DEEPKS_vdrpre_multik
323+
LIBS ${DEEPKS_UNIT_LIBS}
324+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_VDRPRE_SOURCES}
325+
)
326+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_vdrpre_multik vdrpre NO_KP_deepks_UT)
327+
328+
AddTest(
329+
TARGET MODULE_LCAO_DEEPKS_edelta_multik
330+
LIBS ${DEEPKS_UNIT_LIBS}
331+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_EDELTA_SOURCES}
332+
)
333+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_edelta_multik edelta NO_KP_deepks_UT)
334+
335+
AddTest(
336+
TARGET MODULE_LCAO_DEEPKS_e_deltabands_multik
337+
LIBS ${DEEPKS_UNIT_LIBS}
338+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_E_DELTABANDS_SOURCES}
339+
)
340+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_e_deltabands_multik e_deltabands NO_KP_deepks_UT)
341+
342+
AddTest(
343+
TARGET MODULE_LCAO_DEEPKS_force_stress_delta_multik
344+
LIBS ${DEEPKS_UNIT_LIBS}
345+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_FORCE_STRESS_DELTA_SOURCES}
346+
)
347+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_force_stress_delta_multik force_stress_delta NO_KP_deepks_UT)
59348

60-
install(
61-
TARGETS test_deepks
62-
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/../../../../tests
349+
AddTest(
350+
TARGET MODULE_LCAO_DEEPKS_o_delta_multik
351+
LIBS ${DEEPKS_UNIT_LIBS}
352+
SOURCES main_deepks.cpp ${DEEPKS_UNIT_O_DELTA_SOURCES}
63353
)
354+
configure_deepks_unit_target(MODULE_LCAO_DEEPKS_o_delta_multik o_delta NO_KP_deepks_UT)

0 commit comments

Comments
 (0)