X-Git-Url: https://hackdaworld.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=moldyn.c;h=92c4e58f3d78957a03704c40fbe62af686155a9b;hb=fd4ecbff76b2e4fc70ca88e64fb76c85fa953888;hp=7d2796507452a5f49dc3082f152677d5ca533d05;hpb=20409ee0c545235c9246edde2d3cda5de0ddabde;p=physik%2Fposic.git diff --git a/moldyn.c b/moldyn.c index 7d27965..92c4e58 100644 --- a/moldyn.c +++ b/moldyn.c @@ -13,6 +13,8 @@ #include #include #include +#include +#include #include #include "moldyn.h" @@ -24,6 +26,9 @@ int moldyn_init(t_moldyn *moldyn,int argc,char **argv) { memset(moldyn,0,sizeof(t_moldyn)); + moldyn->argc=argc; + moldyn->args=argv; + rand_init(&(moldyn->random),NULL,1); moldyn->random.status|=RAND_STAT_VERBOSE; @@ -1345,6 +1350,7 @@ int moldyn_integrate(t_moldyn *moldyn) { char dir[128]; double ds; double energy_scale; + struct timeval t1,t2; //double tp; sched=&(moldyn->schedule); @@ -1368,6 +1374,9 @@ int moldyn_integrate(t_moldyn *moldyn) { /* energy scaling factor */ energy_scale=moldyn->count*EV; + /* get current time */ + gettimeofday(&t1,NULL); + /* calculate initial forces */ potential_force_calc(moldyn); #ifdef DEBUG @@ -1461,7 +1470,8 @@ return 0; if(!(i%s)) { snprintf(dir,128,"%s/s-%07.f.save", moldyn->vlsdir,moldyn->time); - fd=open(dir,O_WRONLY|O_TRUNC|O_CREAT); + fd=open(dir,O_WRONLY|O_TRUNC|O_CREAT, + S_IRUSR|S_IWUSR); if(fd<0) perror("[moldyn] save fd open"); else { write(fd,moldyn,sizeof(t_moldyn)); @@ -1480,12 +1490,19 @@ return 0; /* display progress */ if(!(i%10)) { - printf("\rsched:%d, steps:%d, T:%3.1f/%3.1f P:%4.1f/%4.1f V:%6.1f", + /* get current time */ + gettimeofday(&t2,NULL); + + printf("\rsched:%d, steps:%d, T:%3.1f/%3.1f P:%4.1f/%4.1f V:%6.1f (%d)", sched->count,i, moldyn->t,moldyn->t_avg, - moldyn->p_avg/BAR,moldyn->p/BAR, - moldyn->volume); + moldyn->p_avg/BAR,moldyn->gp_avg/BAR, + moldyn->volume, + (int)(t2.tv_sec-t1.tv_sec)); fflush(stdout); + + /* copy over time */ + t1=t2; } /* increase absolute time */ @@ -1920,6 +1937,17 @@ int moldyn_bc_check(t_moldyn *moldyn) { return 0; } +/* + * restore function + */ + +int moldyn_load(t_moldyn *moldyn) { + + // later ... + + return 0; +} + /* * post processing functions */ @@ -1942,3 +1970,11 @@ int get_line(int fd,char *line,int max) { } } +int analyze_bonds(t_moldyn *moldyn) { + + + + + return 0; +} +