2424 * the configuration-changing subroutine takes force and stress and updates the
2525 * configuration
2626 */
27- void Driver::driver_run () {
27+ void Driver::driver_run (UnitCell& ucell)
28+ {
2829 ModuleBase::TITLE (" Driver" , " driver_line" );
2930 ModuleBase::timer::tick (" Driver" , " driver_line" );
3031
@@ -39,37 +40,35 @@ void Driver::driver_run() {
3940#endif
4041
4142 // the life of ucell should begin here, mohan 2024-05-12
42- // delete ucell as a GlobalC in near future
43- GlobalC::ucell.setup_cell (PARAM.globalv .global_in_stru , GlobalV::ofs_running);
44- Check_Atomic_Stru::check_atomic_stru (GlobalC::ucell,
45- PARAM.inp .min_dist_coef );
43+ ucell.setup_cell (PARAM.globalv .global_in_stru , GlobalV::ofs_running);
44+ Check_Atomic_Stru::check_atomic_stru (ucell, PARAM.inp .min_dist_coef );
4645
4746 // ! 2: initialize the ESolver (depends on a set-up ucell after `setup_cell`)
48- ModuleESolver::ESolver* p_esolver = ModuleESolver::init_esolver (PARAM.inp , GlobalC:: ucell);
47+ ModuleESolver::ESolver* p_esolver = ModuleESolver::init_esolver (PARAM.inp , ucell);
4948
5049 // ! 3: initialize Esolver and fill json-structure
51- p_esolver->before_all_runners (PARAM.inp , GlobalC::ucell );
50+ p_esolver->before_all_runners (ucell, PARAM.inp );
5251
5352 // this Json part should be moved to before_all_runners, mohan 2024-05-12
5453#ifdef __RAPIDJSON
55- Json::gen_stru_wrapper (&GlobalC:: ucell);
54+ Json::gen_stru_wrapper (&ucell);
5655#endif
5756
5857 const std::string cal_type = PARAM.inp .calculation ;
5958
6059 // ! 4: different types of calculations
6160 if (cal_type == " md" )
6261 {
63- Run_MD::md_line (GlobalC:: ucell, p_esolver, PARAM);
62+ Run_MD::md_line (ucell, p_esolver, PARAM);
6463 }
6564 else if (cal_type == " scf" || cal_type == " relax" || cal_type == " cell-relax" || cal_type == " nscf" )
6665 {
6766 Relax_Driver rl_driver;
68- rl_driver.relax_driver (p_esolver);
67+ rl_driver.relax_driver (p_esolver, ucell );
6968 }
7069 else if (cal_type == " get_S" )
7170 {
72- p_esolver->runner (0 , GlobalC::ucell );
71+ p_esolver->runner (ucell, 0 );
7372 }
7473 else
7574 {
@@ -79,11 +78,11 @@ void Driver::driver_run() {
7978 // ! test_neighbour(LCAO),
8079 // ! gen_bessel(PW), et al.
8180 const int istep = 0 ;
82- p_esolver->others (istep);
81+ p_esolver->others (ucell, istep);
8382 }
8483
8584 // ! 5: clean up esolver
86- p_esolver->after_all_runners ();
85+ p_esolver->after_all_runners (ucell );
8786
8887 ModuleESolver::clean_esolver (p_esolver);
8988
0 commit comments