projects
/
physik
/
posic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
implemented continue featue + skipped d calc in bond_analyze function
[physik/posic.git]
/
mdrun.c
diff --git
a/mdrun.c
b/mdrun.c
index
bd045fe
..
d99bd7a
100644
(file)
--- a/
mdrun.c
+++ b/
mdrun.c
@@
-141,7
+141,7
@@
int mdrun_parse_config(t_mdrun *mdrun) {
char error[128];
char line[128];
char *wptr;
char error[128];
char line[128];
char *wptr;
- char word[16][
32
];
+ char word[16][
64
];
int wcnt;
int i,o;
int wcnt;
int i,o;
@@
-189,7
+189,7
@@
int mdrun_parse_config(t_mdrun *mdrun) {
wptr=strtok(line," \t");
if(wptr==NULL)
break;
wptr=strtok(line," \t");
if(wptr==NULL)
break;
- strncpy(word[wcnt],wptr,
32
);
+ strncpy(word[wcnt],wptr,
64
);
wcnt+=1;
}
wcnt+=1;
}
@@
-203,6
+203,8
@@
int mdrun_parse_config(t_mdrun *mdrun) {
if(!strncmp(word[1],"lj",2))
mdrun->potential=MOLDYN_POTENTIAL_LJ;
}
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))
else if(!strncmp(word[0],"cutoff",6))
mdrun->cutoff=atof(word[1]);
else if(!strncmp(word[0],"nnd",3))
@@
-876,9
+878,16
@@
int main(int argc,char **argv) {
/* sanity check! */
/* prepare simulation */
/* sanity check! */
/* prepare simulation */
+
moldyn_init(&moldyn,argc,argv);
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;
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;
set_cutoff(&moldyn,mdrun.cutoff);
if(set_potential(&moldyn,mdrun.potential)<0)
return -1;
@@
-904,6
+913,14
@@
int main(int argc,char **argv) {
ME,mdrun.potential);
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) {
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) {
@@
-933,10
+950,17
@@
int main(int argc,char **argv) {
return -1;
}
moldyn_bc_check(&moldyn);
return -1;
}
moldyn_bc_check(&moldyn);
+
+ /* temperature and pressure */
set_temperature(&moldyn,mdrun.temperature);
set_pressure(&moldyn,mdrun.pressure);
thermal_init(&moldyn,TRUE);
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);
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)
moldyn_set_log_dir(&moldyn,mdrun.sdir);
moldyn_set_report(&moldyn,"CHANGE ME","CHANGE ME TOO");
if(mdrun.elog)