X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=mdrun.c;h=062224b99f65ff80a9b5f97c338ed184e9524538;hb=f0e4c6422ec1aff0cf86597fef919335bba75c1b;hp=f0edd0bac7546bed88625c1d7a3242a0a2632650;hpb=03dbca0a50d2f2e929c1feac3b145abf5575490b;p=physik%2Fposic.git diff --git a/mdrun.c b/mdrun.c index f0edd0b..062224b 100644 --- a/mdrun.c +++ b/mdrun.c @@ -393,6 +393,14 @@ int mdrun_parse_config(t_mdrun *mdrun) { continue; } + // offset + if(word[i][0]=='o') { + fp.o_params.o.x=atof(word[++i])*fp.lc; + fp.o_params.o.y=atof(word[++i])*fp.lc; + fp.o_params.o.z=atof(word[++i])*fp.lc; + fp.o_params.use=1; + continue; + } i+=1; } add_stage(mdrun,STAGE_FILL,&fp); @@ -420,12 +428,12 @@ int mdrun_parse_config(t_mdrun *mdrun) { } i=2; if(cap.type&CHAATTR_REGION) { - cap.x0=atof(word[1]); - cap.y0=atof(word[2]); - cap.z0=atof(word[3]); - cap.x1=atof(word[4]); - cap.y1=atof(word[5]); - cap.z1=atof(word[6]); + cap.x0=atof(word[2]); + cap.y0=atof(word[3]); + cap.z0=atof(word[4]); + cap.x1=atof(word[5]); + cap.y1=atof(word[6]); + cap.z1=atof(word[7]); i+=6; } if(cap.type&CHAATTR_ELEMENT) { @@ -1095,22 +1103,27 @@ int chaatr(t_moldyn *moldyn,t_mdrun *mdrun) { continue; } if(cap->type&CHAATTR_REGION) { - if(cap->x0r.x) + if(cap->x0>atom->r.x) continue; - if(cap->y0r.y) + if(cap->y0>atom->r.y) continue; - if(cap->z0r.z) + if(cap->z0>atom->r.z) continue; - if(cap->x1>atom->r.x) + if(cap->x1r.x) continue; - if(cap->y1>atom->r.y) + if(cap->y1r.y) continue; - if(cap->z1>atom->r.z) + if(cap->z1r.z) continue; } + if(!(cap->type&CHAATTR_TOTALV)) + printf(" changing attributes of atom %d (0x%x)\n", + i,cap->attr); atom->attr=cap->attr; } + printf("\n\n"); + return 0; } @@ -1312,7 +1325,8 @@ int mdrun_hook(void *ptr1,void *ptr2) { fp->lx,fp->ly,fp->lz, &o, &(fp->p_params), - &(fp->d_params)); + &(fp->d_params), + &(fp->o_params)); o.x+=0.25*fp->lc; o.y=o.x; o.z=o.x; @@ -1323,7 +1337,8 @@ int mdrun_hook(void *ptr1,void *ptr2) { fp->lx,fp->ly,fp->lz, &o, &(fp->p_params), - &(fp->d_params)); + &(fp->d_params), + &(fp->o_params)); break; default: @@ -1336,7 +1351,8 @@ int mdrun_hook(void *ptr1,void *ptr2) { fp->lx,fp->ly,fp->lz, NULL, &(fp->p_params), - &(fp->d_params)); + &(fp->d_params), + &(fp->o_params)); break; } moldyn_bc_check(moldyn);