Skip to content

Commit e5500e5

Browse files
authored
Fix : add overlap output for deepks_out_freq_elec (#6505)
1 parent 338dffa commit e5500e5

File tree

4 files changed

+27
-14
lines changed

4 files changed

+27
-14
lines changed

source/source_lcao/module_deepks/LCAO_deepks_interface.cpp

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,24 @@ void LCAO_Deepks_Interface<TK, TR>::out_deepks_labels(const double& etot,
618618
// 7. atom.npy, box.npy, overlap.npy
619619
//================================================================================
620620

621+
if( ((PARAM.inp.deepks_out_labels == 2) && is_after_scf )
622+
|| ( PARAM.inp.deepks_out_freq_elec ) )// need overlap when deepks_out_freq_elec
623+
{
624+
if (PARAM.inp.deepks_v_delta > 0)
625+
{
626+
// prepare for overlap.npy, very much like h_tot except for p_ham->getSk()
627+
std::vector<TH> s_tot(nks);
628+
DeePKS_domain::get_h_tot<TK, TH, TR>(*ParaV, p_ham, s_tot, nlocal, nks, 'S');
629+
const std::string file_stot = get_filename("overlap", PARAM.inp.deepks_out_labels, iter);
630+
LCAO_deepks_io::save_npy_h<TK, TH>(s_tot,
631+
file_stot,
632+
nlocal,
633+
nks,
634+
rank,
635+
1.0); // don't need unit_scale for overlap
636+
}
637+
}
638+
621639
if ( is_after_scf ) // don't need to output in multiple electronic steps
622640
{
623641
if (PARAM.inp.deepks_out_labels == 2)
@@ -632,20 +650,6 @@ void LCAO_Deepks_Interface<TK, TR>::out_deepks_labels(const double& etot,
632650
DeePKS_domain::prepare_box(ucell, box_out);
633651
const std::string file_box = PARAM.globalv.global_out_dir + "deepks_box.npy";
634652
LCAO_deepks_io::save_tensor2npy<double>(file_box, box_out, rank);
635-
636-
if (PARAM.inp.deepks_v_delta > 0)
637-
{
638-
// prepare for overlap.npy, very much like h_tot except for p_ham->getSk()
639-
std::vector<TH> s_tot(nks);
640-
DeePKS_domain::get_h_tot<TK, TH, TR>(*ParaV, p_ham, s_tot, nlocal, nks, 'S');
641-
const std::string file_stot = PARAM.globalv.global_out_dir + "deepks_overlap.npy";
642-
LCAO_deepks_io::save_npy_h<TK, TH>(s_tot,
643-
file_stot,
644-
nlocal,
645-
nks,
646-
rank,
647-
1.0); // don't need unit_scale for overlap
648-
}
649653
}
650654

651655
//================================================================================

tests/09_DeePKS/103_NO_GO_deepks_out_freq_elec/result.ref

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@ deepks_f_label_elec .06676003678176294
2222
deepks_fdelta_elec .017979102769780632
2323
deepks_s_label_elec .06851710382835817
2424
deepks_sdelta_elec .013725178909672755
25+
deepks_overlap 61.931587180384426
26+
deepks_overlap_elec 309.657935901922130
2527
totaltimeref 3.76

tests/09_DeePKS/103_NO_KP_deepks_out_freq_elec/result.ref

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@ deepks_f_label_elec .0667600367817765
2222
deepks_fdelta_elec .017979102769778977
2323
deepks_s_label_elec .06851710382837811
2424
deepks_sdelta_elec .013725178909649378
25+
deepks_overlap 61.931587180384426
26+
deepks_overlap_elec 309.657935901922130
2527
totaltimeref 3.52

tests/integrate/tools/catch_deepks_properties.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,11 @@ if ! test -z "$deepks_out_labels" && [ $deepks_out_labels == 1 ]; then
203203
# Process deepks_out_freq_elec > 0
204204
if [ ! -z "$deepks_out_freq_elec" ] && [ $deepks_out_freq_elec -gt 0 ]; then
205205
process_many_npys "multi" "_elec" "$1"
206+
if ! test -z "$deepks_v_delta" && [[ $deepks_v_delta -gt 0 ]]; then
207+
process_npy "single" "abs" "overlap" "" "deepks_overlap" "$1"
208+
process_npy "multi" "abs" "overlap" "" "deepks_overlap_elec" "$1"
209+
210+
fi
206211
fi
207212
fi
208213

0 commit comments

Comments
 (0)