//t_si *c;
int i,j,runs,amount_si;
double time;
- int fd;
+ int fd1,fd2;
+ unsigned char xyz[128];
+ unsigned char scr[128];
+ unsigned char ppm[128];
double tau,tau2,m,m2;
double deltax,deltay,deltaz,distance;
tau=TAU;
tau2=tau*tau;
- /* rasmol */
- printf("opening the rasmol file\n");
- fd=open("rasmol.xyz",O_WRONLY);
- if(fd<0) {
- perror("rasmol file open");
- return -1;
- }
printf("starting velocity verlet: ");
fflush(stdout);
si[i].vz+=(tau*si[i].fz/m2);
}
- time+=tau;
+ if(!(runs%10)) {
- /* print out positions in rasmol format */
- dprintf(fd,"%d\nTime %f\n",amount_si,time);
+ /* rasmol script & xyz file */
+ sprintf(xyz,"./saves/si-%.15f.xyz",time);
+ sprintf(scr,"./saves/si-%.15f.scr",time);
+ sprintf(ppm,"./video/si-%.15f.ppm",time);
+ fd1=open(xyz,O_WRONLY|O_CREAT|O_TRUNC);
+ fd2=open(scr,O_WRONLY|O_CREAT|O_TRUNC);
+ if((fd1<0)||(fd2<0)) {
+ perror("rasmol file open");
+ return -1;
+ }
+ dprintf(fd2,"load xyz %s\n",xyz);
+ dprintf(fd2,"spacefill 200\n");
+ dprintf(fd2,"rotate x 11\n");
+ dprintf(fd2,"rotate y 13\n");
+ dprintf(fd2,"set ambient 20\n");
+ dprintf(fd2,"set specular on\n");
+ dprintf(fd2,"set write on\n");
+ dprintf(fd2,"write ppm %s\n",ppm);
+ dprintf(fd1,"%d\nsilicon\n",amount_si);
for(i=0;i<amount_si;i++)
- dprintf(fd,"Si %f %f %f %f\n",
+ dprintf(fd1,"Si %f %f %f %f\n",
si[i].x,si[i].y,si[i].z,time);
+ close(fd1);
+ close(fd2);
+
+ }
+
+ /* increase time */
+ time+=tau;
printf(".");
fflush(stdout);
- dprintf(fd,"\n");
}
- printf("done\n");
- close(fd);
+ printf(" done\n");
free(si);
return 0;