2 * code searching for special types of bonds
4 * author: frank.zirkelbach@physik.uni-augsburg.de
13 //#include <sys/types.h>
14 //#include <sys/stat.h>
18 #include "potentials/albe.h"
20 int usage(char *prog) {
23 printf(" %s <file> <type> <bondlen> <+->\n",prog);
24 printf(" type: a - 0-0 bond\n");
25 printf(" type: b - 1-1 bond\n");
26 printf(" type: c - 0-1 / 1-0 bond\n\n");
31 int main(int argc,char **argv) {
41 double d,bondlen,bondpm;
48 bondlen=atof(argv[3]);
51 memset(&moldyn,0,sizeof(t_moldyn));
53 printf("[search bonds] reading save file ...\n");
54 ret=moldyn_read_save_file(&moldyn,argv[1]);
56 printf("[search bonds] exit!\n");
61 moldyn.cutoff=bondlen+bondpm;
62 link_cell_init(&moldyn,VERBOSE);
66 for(i=0;i<moldyn.count;i++) {
67 itom=&(moldyn.atom[i]);
68 link_cell_neighbour_index(&moldyn,
69 (itom->r.x+moldyn.dim.x/2)/lc->x,
70 (itom->r.y+moldyn.dim.y/2)/lc->y,
71 (itom->r.z+moldyn.dim.z/2)/lc->z,
82 jtom=this->current->data;
101 if(itom->brand==jtom->brand)
106 v3_sub(&dist,&(itom->r),&(jtom->r));
107 check_per_bound(&moldyn,&dist);
110 if((d<=bondlen+bondpm)&(d>=bondlen-bondpm)) {
112 printf(" # atoms %d/%d %d/%d - %f\n",
113 itom->tag,itom->brand,
114 jtom->tag,jtom->brand,d);
118 } while(list_next_f(this)!=L_NO_NEXT_ELEMENT);
122 link_cell_shutdown(&moldyn);
124 moldyn_free_save_file(&moldyn);