@@ -111,24 +111,36 @@ void RDMFT<TK, TR>::init(Gint_Gamma& GG_in, Gint_k& GK_in, Parallel_Orbitals& Pa
111111 // create desc[] and something about MPI to Eij(nbands*nbands)
112112 std::ofstream ofs_running;
113113 std::ofstream ofs_warning;
114- para_Eij.set_block_size (GlobalV::NB2D);
115- para_Eij.set_proc_dim (GlobalV::DSIZE);
116- para_Eij.comm_2D = ParaV->comm_2D ;
117- para_Eij.blacs_ctxt = ParaV->blacs_ctxt ;
118- para_Eij.set_local2global ( GlobalV::NBANDS, GlobalV::NBANDS, ofs_running, ofs_warning );
119- para_Eij.set_desc ( GlobalV::NBANDS, GlobalV::NBANDS, para_Eij.get_row_size (), false );
114+ // para_Eij.set_block_size(GlobalV::NB2D);
115+ // para_Eij.set_proc_dim(GlobalV::DSIZE);
116+ // para_Eij.comm_2D = ParaV->comm_2D;
117+ // para_Eij.blacs_ctxt = ParaV->blacs_ctxt;
118+ // para_Eij.set_local2global( GlobalV::NBANDS, GlobalV::NBANDS, ofs_running, ofs_warning );
119+ // para_Eij.set_desc( GlobalV::NBANDS, GlobalV::NBANDS, para_Eij.get_row_size(), false );
120+ para_Eij.set (nbands_total, nbands_total, PARAM.inp .nb2d , ParaV->blacs_ctxt );
121+
122+ // // learn from "module_hamilt_lcao/hamilt_lcaodft/LCAO_init_basis.cpp"
123+ // int try_nb = para_Eij.init(GlobalV::NBANDS, GlobalV::NBANDS, PARAM.inp.nb2d, DIAG_WORLD); // DIAG_WORLD is wrong
124+ // try_nb += para_Eij.set_nloc_wfc_Eij(GlobalV::NBANDS, ofs_running, ofs_warning);
125+ // if (try_nb != 0)
126+ // {
127+ // para_Eij.set(GlobalV::NBANDS, GlobalV::NBANDS, 1, para_Eij.blacs_ctxt);
128+ // try_nb = para_Eij.set_nloc_wfc_Eij(GlobalV::NBANDS, GlobalV::ofs_running, GlobalV::ofs_warning);
129+ // }
130+ // para_Eij.set_desc_wfc_Eij(GlobalV::NBANDS, GlobalV::NBANDS, para_Eij.nrow);
131+
120132
121133 //
122- occ_number.create (nk_total, GlobalV::NBANDS );
123- wg.create (nk_total, GlobalV::NBANDS );
124- wk_fun_occNum.create (nk_total, GlobalV::NBANDS );
125- occNum_wfcHamiltWfc.create (nk_total, GlobalV::NBANDS );
126- Etotal_n_k.create (nk_total, GlobalV::NBANDS );
127- wfcHwfc_TV.create (nk_total, GlobalV::NBANDS );
128- wfcHwfc_hartree.create (nk_total, GlobalV::NBANDS );
129- wfcHwfc_XC.create (nk_total, GlobalV::NBANDS );
130- wfcHwfc_exx_XC.create (nk_total, GlobalV::NBANDS );
131- wfcHwfc_dft_XC.create (nk_total, GlobalV::NBANDS );
134+ occ_number.create (nk_total, nbands_total );
135+ wg.create (nk_total, nbands_total );
136+ wk_fun_occNum.create (nk_total, nbands_total );
137+ occNum_wfcHamiltWfc.create (nk_total, nbands_total );
138+ Etotal_n_k.create (nk_total, nbands_total );
139+ wfcHwfc_TV.create (nk_total, nbands_total );
140+ wfcHwfc_hartree.create (nk_total, nbands_total );
141+ wfcHwfc_XC.create (nk_total, nbands_total );
142+ wfcHwfc_exx_XC.create (nk_total, nbands_total );
143+ wfcHwfc_dft_XC.create (nk_total, nbands_total );
132144
133145 //
134146 wfc.resize (nk_total, ParaV->ncol_bands , ParaV->nrow ); // test ParaV->nrow
@@ -189,12 +201,12 @@ void RDMFT<TK, TR>::init(Gint_Gamma& GG_in, Gint_k& GK_in, Parallel_Orbitals& Pa
189201 if (GlobalC::exx_info.info_ri .real_number )
190202 {
191203 Vxc_fromRI_d = new Exx_LRI<double >(GlobalC::exx_info.info_ri );
192- Vxc_fromRI_d->init (MPI_COMM_WORLD, *kv);
204+ Vxc_fromRI_d->init (MPI_COMM_WORLD, *kv, *orb );
193205 }
194206 else
195207 {
196208 Vxc_fromRI_c = new Exx_LRI<std::complex <double >>(GlobalC::exx_info.info_ri );
197- Vxc_fromRI_c->init (MPI_COMM_WORLD, *kv);
209+ Vxc_fromRI_c->init (MPI_COMM_WORLD, *kv, *orb );
198210 }
199211 }
200212
@@ -349,7 +361,7 @@ void RDMFT<TK, TR>::update_charge()
349361 Symmetry_rho srho;
350362 for (int is = 0 ; is < nspin; is++)
351363 {
352- srho.begin (is, *(this ->charge ), rho_basis, GlobalC::Pgrid, GlobalC:: ucell.symm );
364+ srho.begin (is, *(this ->charge ), rho_basis, GlobalC::ucell.symm );
353365 }
354366 /* ********** what's this? When we use PBE-functional, this can't be deleted *************/
355367
0 commit comments