char error[128];
char line[128];
char *wptr;
- char word[16][32];
+ char word[16][64];
int wcnt;
int i,o;
wptr=strtok(line," \t");
if(wptr==NULL)
break;
- strncpy(word[wcnt],wptr,32);
+ strncpy(word[wcnt],wptr,64);
wcnt+=1;
}
if(!strncmp(word[1],"lj",2))
mdrun->potential=MOLDYN_POTENTIAL_LJ;
}
+ else if(!strncmp(word[0],"continue",8))
+ strncpy(mdrun->continue_file,word[1],128);
else if(!strncmp(word[0],"cutoff",6))
mdrun->cutoff=atof(word[1]);
else if(!strncmp(word[0],"nnd",3))
/* sanity check! */
/* prepare simulation */
+
moldyn_init(&moldyn,argc,argv);
+
+ if(mdrun.continue_file)
+ moldyn_read_save_file(&moldyn,mdrun.continue_file);
+
if(set_int_alg(&moldyn,mdrun.intalgo)<0)
return -1;
+
+ /* potential */
set_cutoff(&moldyn,mdrun.cutoff);
if(set_potential(&moldyn,mdrun.potential)<0)
return -1;
ME,mdrun.potential);
return -1;
}
+
+ /* if it is a continue run, reset schedule and skip lattice init */
+ if(mdrun.continue_file) {
+ memset(&(moldyn.schedule),0,sizeof(t_moldyn_schedule));
+ goto addsched;
+ }
+
+ /* initial lattice and dimensions */
set_dim(&moldyn,mdrun.dim.x,mdrun.dim.y,mdrun.dim.z,mdrun.vis);
set_pbc(&moldyn,mdrun.pbcx,mdrun.pbcy,mdrun.pbcz);
switch(mdrun.lattice) {
return -1;
}
moldyn_bc_check(&moldyn);
+
+ /* temperature and pressure */
set_temperature(&moldyn,mdrun.temperature);
set_pressure(&moldyn,mdrun.pressure);
thermal_init(&moldyn,TRUE);
+
+addsched:
+ /* first schedule */
moldyn_add_schedule(&moldyn,mdrun.prerun,mdrun.timestep);
+
+ /* log */
moldyn_set_log_dir(&moldyn,mdrun.sdir);
moldyn_set_report(&moldyn,"CHANGE ME","CHANGE ME TOO");
if(mdrun.elog)