@@ -9,7 +9,6 @@ NVT_NHC::NVT_NHC(MD_parameters& MD_para_in, UnitCell_pseudo &unit_in) : Verlet(M
99{
1010 if (mdp.md_tfirst == 0 )
1111 {
12- std::cout << " md_tfirst must be larger than 0 in NHC !!! " << std::endl;
1312 ModuleBase::WARNING_QUIT (" NVT_NHC" , " md_tfirst must be larger than 0 in NHC !!! " );
1413 }
1514
@@ -122,35 +121,59 @@ void NVT_NHC::write_restart()
122121
123122void NVT_NHC::restart ()
124123{
124+ bool ok = true ;
125+ bool ok2 = true ;
126+
125127 if (!GlobalV::MY_RANK)
126128 {
127- std::stringstream ssc;
128- ssc << GlobalV::global_out_dir << " Restart_md.dat" ;
129- std::ifstream file (ssc.str ().c_str ());
129+ std::stringstream ssc;
130+ ssc << GlobalV::global_readin_dir << " Restart_md.dat" ;
131+ std::ifstream file (ssc.str ().c_str ());
130132
131133 if (!file)
132- {
133- std::cout<< " Please ensure whether 'Restart_md.dat' exists !" << std::endl;
134- ModuleBase::WARNING_QUIT (" NVT_NHC" , " no Restart_md.dat !" );
135- }
136- double Mnum;
137- file >> step_rst_ >> Mnum;
138- if (Mnum != mdp.md_mnhc )
139- {
140- std::cout<< " Num of NHC is not the same !" << std::endl;
141- ModuleBase::WARNING_QUIT (" NVT_NHC" , " no Restart_md.dat !" );
142- }
143- for (int i=0 ; i<mdp.md_mnhc ; ++i)
144134 {
145- file >> eta[i] ;
135+ ok = false ;
146136 }
147- for (int i=0 ; i<mdp.md_mnhc ; ++i)
137+
138+ if (ok)
148139 {
149- file >> veta[i];
140+ double Mnum;
141+ file >> step_rst_ >> Mnum;
142+
143+ if ( Mnum != mdp.md_mnhc )
144+ {
145+ ok2 = false ;
146+ }
147+
148+ if (ok2)
149+ {
150+ for (int i=0 ; i<mdp.md_mnhc ; ++i)
151+ {
152+ file >> eta[i];
153+ }
154+ for (int i=0 ; i<mdp.md_mnhc ; ++i)
155+ {
156+ file >> veta[i];
157+ }
158+ }
159+
160+ file.close ();
150161 }
162+ }
151163
152- file.close ();
153- }
164+ #ifdef __MPI
165+ MPI_Bcast (&ok, 1 , MPI_INT, 0 , MPI_COMM_WORLD);
166+ MPI_Bcast (&ok2, 1 , MPI_INT, 0 , MPI_COMM_WORLD);
167+ #endif
168+
169+ if (!ok)
170+ {
171+ ModuleBase::WARNING_QUIT (" verlet" , " no Restart_md.dat !" );
172+ }
173+ if (!ok2)
174+ {
175+ ModuleBase::WARNING_QUIT (" verlet" , " Num of NHC is not the same !" );
176+ }
154177
155178#ifdef __MPI
156179 MPI_Bcast (&step_rst_, 1 , MPI_INT, 0 , MPI_COMM_WORLD);
@@ -196,7 +219,6 @@ void NVT_NHC::integrate()
196219 scale *= exp (-veta[0 ]*delta/2.0 );
197220 if (!isfinite (scale))
198221 {
199- std::cout << " Please set a proper md_tfreq !!! " << std::endl;
200222 ModuleBase::WARNING_QUIT (" NVT_NHC" , " Please set a proper md_tfreq !!! " );
201223 }
202224
0 commit comments