Skip to content

Commit 1c1d006

Browse files
committed
save
1 parent 0040b42 commit 1c1d006

File tree

4 files changed

+30
-19
lines changed

4 files changed

+30
-19
lines changed

abaInstall_HZWpara.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
rm -rf build
22

3-
#cmake -B build -DCMAKE_INSTALL_PREFIX=/public1/home/t6s000394/jghan/software/abacus-develop/rdmft-abacus/ -DCMAKE_CXX_COMPILER=icpx -DMPI_CXX_COMPILER=mpiicpc -DELPA_DIR=/public1/home/t6s000394/jghan/software/elpa-2021.11/ -DLIBCOMM_DIR=/public1/home/t6s000394/jghan/software/LibComm -DCEREAL_INCLUDE_DIR=/public1/home/t6s000394/jghan/software/cereal/cereal-1.3.2/include
4-
cmake -B build -DCMAKE_INSTALL_PREFIX=/public1/home/t6s000394/jghan/software/abacus-develop/rdmft-abacus/ -DCMAKE_CXX_COMPILER=icpx -DMPI_CXX_COMPILER=mpiicpc -DELPA_DIR=/public1/home/t6s000394/jghan/software/elpa-2021.11/ -DLibxc_DIR=/public1/home/t6s000394/jghan/software/libxc/ -DLIBRI_DIR=/public1/home/t6s000394/jghan/software/LibRI -DLIBCOMM_DIR=/public1/home/t6s000394/jghan/software/LibComm -DCEREAL_INCLUDE_DIR=/public1/home/t6s000394/jghan/software/cereal/cereal-1.3.2/include
3+
cmake -B build -DCMAKE_INSTALL_PREFIX=/public1/home/t6s000394/jghan/software/abacus-develop/rdmft-abacus/ -DCMAKE_CXX_COMPILER=icpx -DMPI_CXX_COMPILER=mpiicpc -DELPA_DIR=/public1/home/t6s000394/jghan/software/elpa-2021.11/ -DLIBCOMM_DIR=/public1/home/t6s000394/jghan/software/LibComm -DCEREAL_INCLUDE_DIR=/public1/home/t6s000394/jghan/software/cereal/cereal-1.3.2/include
4+
#cmake -B build -DCMAKE_INSTALL_PREFIX=/public1/home/t6s000394/jghan/software/abacus-develop/rdmft-abacus/ -DCMAKE_CXX_COMPILER=icpx -DMPI_CXX_COMPILER=mpiicpc -DELPA_DIR=/public1/home/t6s000394/jghan/software/elpa-2021.11/ -DLibxc_DIR=/public1/home/t6s000394/jghan/software/libxc/ -DLIBRI_DIR=/public1/home/t6s000394/jghan/software/LibRI -DLIBCOMM_DIR=/public1/home/t6s000394/jghan/software/LibComm -DCEREAL_INCLUDE_DIR=/public1/home/t6s000394/jghan/software/cereal/cereal-1.3.2/include
55

66
#cmake --build build -j 52 2>job.err
77
cmake --build build -j 52

source/module_esolver/esolver_ks_lcao.cpp

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -952,11 +952,27 @@ void ESolver_KS_LCAO<TK, TR>::iter_finish(int& iter)
952952
}
953953
}
954954

955-
// 2.5) determine whether to update exx, added by jghan, 2024-10-25
955+
// 2.5) determine whether rdmft needs to get the initial value, added by jghan, 2024-10-25
956956
bool one_step_exx = false;
957-
if( GlobalC::exx_info.info_global.cal_exx && this->conv_esolver ) one_step_exx = true;
957+
bool get_init_value_rdmft = false;
958+
// the case without hybrid functionals
959+
if( iter == 1 ) get_init_value_rdmft = true;
960+
961+
#ifdef __EXX
962+
if( GlobalC::exx_info.info_global.cal_exx )
963+
{
964+
if( this->conv_esolver ) one_step_exx = true;
965+
966+
// the case with hybrid functionals
967+
if( one_step_exx && iter==1 ) get_init_value_rdmft = true;
968+
else get_init_value_rdmft = false;
969+
}
970+
#endif
958971

959972
#ifdef __EXX
973+
974+
if( GlobalC::exx_info.info_global.cal_exx && this->conv_esolver ) one_step_exx = true;
975+
960976
// 3) save exx matrix
961977
int two_level_step = GlobalC::exx_info.info_ri.real_number ? this->exd->two_level_step : this->exc->two_level_step;
962978

@@ -1111,7 +1127,8 @@ void ESolver_KS_LCAO<TK, TR>::iter_finish(int& iter)
11111127
ModuleBase::timer::tick("RDMFT", "E & Egradient");
11121128

11131129
// if ( (!GlobalC::exx_info.info_global.cal_exx && iter == 1) || one_step_exx )
1114-
if ( !GlobalC::exx_info.info_global.cal_exx || (GlobalC::exx_info.info_global.cal_exx && one_step_exx) )
1130+
// if ( !GlobalC::exx_info.info_global.cal_exx || (GlobalC::exx_info.info_global.cal_exx && one_step_exx) )
1131+
if( get_init_value_rdmft )
11151132
{
11161133
ModuleBase::matrix occ_number_ks(this->pelec->wg);
11171134
for(int ik=0; ik < occ_number_ks.nr; ++ik)
@@ -1131,7 +1148,6 @@ void ESolver_KS_LCAO<TK, TR>::iter_finish(int& iter)
11311148
ModuleBase::timer::tick("RDMFT", "E & Egradient");
11321149

11331150
// break;
1134-
one_step_exx = false;
11351151
}
11361152
}
11371153

source/module_rdmft/rdmft.cpp

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -850,26 +850,18 @@ void RDMFT<TK, TR>::cal_Energy(const int cal_type)
850850
E_RDMFT[1] = getEnergy(Ehartree_n_k);
851851

852852
// for Exc
853+
#ifdef __EXX
853854
if( GlobalC::exx_info.info_global.cal_exx )
854855
{
855-
// E_RDMFT[2] = 0.0;
856856
ModuleBase::matrix Exc_n_k(wg.nr, wg.nc, true);
857857
// because we have got wk_fun_occNum, we can use symbol=1 realize it
858858
occNum_Mul_wfcHwfc(wk_fun_occNum, wfcHwfc_exx_XC, Exc_n_k, 1);
859859
E_RDMFT[2] = getEnergy(Exc_n_k);
860860
Parallel_Reduce::reduce_all(E_RDMFT[2]);
861-
862-
// // test
863-
// std::cout << "\n\n\n******\nE_exx-type in rdmft: " << E_RDMFT[2] << "\n******\n\n" << std::endl;
864-
// std::cout << "\n\n\n******\nE_dft-xc in rdmft: " << etxc << "\n******\n\n" << std::endl;
865-
866-
// if E_XC is hybrid functional
867-
E_RDMFT[2] += etxc;
868-
}
869-
else
870-
{
871-
E_RDMFT[2] = etxc;
872861
}
862+
#endif
863+
// the initial value of E_RDMFT[2] is 0.0
864+
E_RDMFT[2] += etxc;
873865

874866
// add up the results obtained by all processors, or we can do reduce_all(wfcHwfc_) before add_wg() used for Etotal to replace it
875867
Parallel_Reduce::reduce_all(E_RDMFT[0]);
@@ -902,8 +894,9 @@ void RDMFT<TK, TR>::cal_Energy(const int cal_type)
902894

903895
// print results
904896
std::cout << "\n\nfrom class RDMFT: \nXC_fun: " << XC_func_rdmft << std::endl;
897+
#ifdef __EXX
905898
if( GlobalC::exx_info.info_global.cal_exx ) std::cout << "alpha_power: " << alpha_power << std::endl;
906-
899+
#endif
907900
std::cout << std::fixed << std::setprecision(10)
908901
<< "******\nE(TV + Hartree + XC) by RDMFT: " << E_RDMFT[3]
909902
<< "\n\nE_TV_RDMFT: " << E_RDMFT[0]

source/module_rdmft/rdmft_tools.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,10 @@
3131
#include "module_hamilt_lcao/hamilt_lcaodft/hs_matrix_k.hpp"
3232

3333
// used by Exx&LRI
34+
#ifdef __EXX
3435
#include "module_ri/RI_2D_Comm.h"
3536
#include "module_ri/Exx_LRI.h"
37+
#endif
3638

3739
// there are some operator reload to print data in different formats
3840
#include "module_ri/test_code/test_function.h"

0 commit comments

Comments
 (0)