@@ -39,11 +39,7 @@ void Driver::driver_run()
3939 ModuleBase::TITLE (" Driver" , " driver_run" );
4040
4141 const std::string cal = PARAM .inp .calculation ;
42- if (cal == " socket" )
43- {
44- this ->driver_ipi_run ();
45- return ;
46- }
42+ const bool socket_mode = (cal == " socket" );
4743
4844 // ! 1: setup cell and atom information
4945 // this warning should not be here, mohan 2024-05-22
@@ -66,12 +62,20 @@ void Driver::driver_run()
6662 unitcell::check_atomic_stru (ucell, PARAM .inp .min_dist_coef );
6763
6864 // ! 2: initialize the ESolver (depends on a set-up ucell after `setup_cell`)
65+ Input_para esolver_inp = PARAM .inp ;
66+ Input_para driver_inp = PARAM .inp ;
67+ if (socket_mode)
68+ {
69+ esolver_inp.calculation = " scf" ;
70+ driver_inp.calculation = cal;
71+ }
72+
6973 this ->init_hardware ();
7074
71- ModuleESolver::ESolver* p_esolver = ModuleESolver::init_esolver (PARAM . inp , ucell);
75+ ModuleESolver::ESolver* p_esolver = ModuleESolver::init_esolver (esolver_inp , ucell);
7276
7377 // ! 3: initialize Esolver and fill json-structure
74- p_esolver->before_all_runners (ucell, PARAM . inp );
78+ p_esolver->before_all_runners (ucell, esolver_inp );
7579
7680 // this Json part should be moved to before_all_runners, mohan 2024-05-12
7781#ifdef __RAPIDJSON
@@ -83,10 +87,10 @@ void Driver::driver_run()
8387 {
8488 Run_MD::md_line (ucell, p_esolver, PARAM );
8589 }
86- else if (cal == " scf" || cal == " relax" || cal == " cell-relax" || cal == " nscf" )
90+ else if (cal == " scf" || cal == " relax" || cal == " cell-relax" || cal == " nscf" || cal == " socket " )
8791 {
8892 Relax_Driver rl_driver;
89- rl_driver.relax_driver (p_esolver, ucell, PARAM . inp , GlobalV::ofs_running);
93+ rl_driver.relax_driver (p_esolver, ucell, driver_inp , GlobalV::ofs_running);
9094 }
9195 else if (cal == " get_s" )
9296 {
0 commit comments