- if(atom[i].r.x>=dim->x/2||-atom[i].r.x>dim->x/2) {
- printf("FATAL: atom %d: x: %.20f (%.20f)\n",
- i,atom[i].r.x,dim->x/2);
- printf("diagnostic:\n");
- printf("-----------\natom.r.x:\n");
- for(j=0;j<8;j++) {
- memcpy(&byte,(u8 *)(&(atom[i].r.x))+j,1);
- for(k=0;k<8;k++)
- printf("%d%c",
- ((byte)&(1<<k))?1:0,
- (k==7)?'\n':'|');
- }
- printf("---------------\nx=dim.x/2:\n");
- for(j=0;j<8;j++) {
- memcpy(&byte,(u8 *)(&x)+j,1);
- for(k=0;k<8;k++)
- printf("%d%c",
- ((byte)&(1<<k))?1:0,
- (k==7)?'\n':'|');
- }
- if(atom[i].r.x==x) printf("the same!\n");
- else printf("different!\n");
- }
- if(atom[i].r.y>=dim->y/2||-atom[i].r.y>dim->y/2)
- printf("FATAL: atom %d: y: %.20f (%.20f)\n",
- i,atom[i].r.y,dim->y/2);
- if(atom[i].r.z>=dim->z/2||-atom[i].r.z>dim->z/2)
- printf("FATAL: atom %d: z: %.20f (%.20f)\n",
- i,atom[i].r.z,dim->z/2);
+ v3_sub(&strain,&(atom[i].r),&(atom[i].r_0));
+ check_per_bound(moldyn,&strain);
+ // atom type, positions, color and kinetic energy
+ dprintf(vb.fd,"%s %f %f %f %s %f\n",pse_name[atom[i].element],
+ atom[i].r.x,
+ atom[i].r.y,
+ atom[i].r.z,
+ pse_col[atom[i].element],
+ //atom[i].ekin);
+ sqrt(v3_absolute_square(&strain)));
+ }
+
+ // bonds between atoms
+#ifndef VISUAL_THREAD
+ process_2b_bonds(moldyn,&vb,visual_bonds_process);
+#endif
+
+ // boundaries
+ if(dim.x) {
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ -dim.x/2,-dim.y/2,-dim.z/2,
+ dim.x/2,-dim.y/2,-dim.z/2);
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ -dim.x/2,-dim.y/2,-dim.z/2,
+ -dim.x/2,dim.y/2,-dim.z/2);
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ dim.x/2,dim.y/2,-dim.z/2,
+ dim.x/2,-dim.y/2,-dim.z/2);
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ -dim.x/2,dim.y/2,-dim.z/2,
+ dim.x/2,dim.y/2,-dim.z/2);
+
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ -dim.x/2,-dim.y/2,dim.z/2,
+ dim.x/2,-dim.y/2,dim.z/2);
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ -dim.x/2,-dim.y/2,dim.z/2,
+ -dim.x/2,dim.y/2,dim.z/2);
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ dim.x/2,dim.y/2,dim.z/2,
+ dim.x/2,-dim.y/2,dim.z/2);
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ -dim.x/2,dim.y/2,dim.z/2,
+ dim.x/2,dim.y/2,dim.z/2);
+
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ -dim.x/2,-dim.y/2,dim.z/2,
+ -dim.x/2,-dim.y/2,-dim.z/2);
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ -dim.x/2,dim.y/2,dim.z/2,
+ -dim.x/2,dim.y/2,-dim.z/2);
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ dim.x/2,-dim.y/2,dim.z/2,
+ dim.x/2,-dim.y/2,-dim.z/2);
+ dprintf(vb.fd,"# [D] %f %f %f %f %f %f\n",
+ dim.x/2,dim.y/2,dim.z/2,
+ dim.x/2,dim.y/2,-dim.z/2);