X-Git-Url: https://hackdaworld.org/gitweb/?p=physik%2Fposic.git;a=blobdiff_plain;f=vasp_tools%2Fvisualize_contcar;fp=vasp_tools%2Fvisualize_contcar;h=61ed14382264ab1c5b77bd9596023752d740e276;hp=611ed6dd74b7f6f3984be43405dc99df7f6d0865;hb=8524173a28f2c22a539ef1b0910a1136d9cb254b;hpb=40f91e7d7cb98fedd86bc4e3178021f687190550 diff --git a/vasp_tools/visualize_contcar b/vasp_tools/visualize_contcar index 611ed6d..61ed143 100755 --- a/vasp_tools/visualize_contcar +++ b/vasp_tools/visualize_contcar @@ -49,6 +49,7 @@ mx1=0; mx2=0; mx3=0; my1=0; my2=0; my3=0; mz1=0; mz2=0; mz3=0; ab=0 +sym=0 # parse argv @@ -81,6 +82,7 @@ while [ "$1" ]; do ((cnt+=1)) done cutoff=$1; shift 1;; + -s) sym=$2; shift 2;; *) echo "options:" echo "########" @@ -107,6 +109,9 @@ while [ "$1" ]; do echo " -l (light source)" echo "bonds:" echo " -ab (auto bonds)" + echo "symmetry:" + echo " -s " + echo " 1: sym by <1 -1 0> at 1/4 <1 1 0>" exit 1;; esac done @@ -221,6 +226,8 @@ EOF export x0 y0 z0 x1 y1 z1 radius + export sym + # atoms ((count=1)) checktsd=`sed -n 7p $file | awk '{ print $1 }'` @@ -263,6 +270,7 @@ EOF Z1=ENVIRON["Z1"]; Z2=ENVIRON["Z2"]; Z3=ENVIRON["Z3"]; radius=ENVIRON["radius"]; scale=ENVIRON["scale"]; color=ENVIRON["color"] + sym=ENVIRON["sym"] x=0; y=0; z=0; xt=0; yt=0; zt=0; i=0; j=0; k=0; @@ -274,6 +282,15 @@ EOF nx=$1+i; ny=$2+j; nz=$3+k; + if(sym==1) { + xt=nx-1.0/12.0; + yt=ny-1.0/12.0; + nx=-yt; + ny=-xt; + nx+=1.0/12.0; + ny+=1.0/12.0; + } + xt=nx*X1+ny*Y1+nz*Z1; yt=nx*X2+ny*Y2+nz*Z2; zt=nx*X3+ny*Y3+nz*Z3; @@ -347,6 +364,7 @@ EOF Y1=ENVIRON["Y1"]; Y2=ENVIRON["Y2"]; Y3=ENVIRON["Y3"]; Z1=ENVIRON["Z1"]; Z2=ENVIRON["Z2"]; Z3=ENVIRON["Z3"]; bcr=ENVIRON["bcr"]; scale=ENVIRON["scale"]; + sym=ENVIRON["sym"]; } { for(i=-1;i<=1;i++) { @@ -358,6 +376,16 @@ EOF for(ik=-1;ik<=1;ik++) { nx=$1+i; ny=$2+j; nz=$3+k; + + if(sym==1) { + xt=nx-1.0/12.0; + yt=ny-1.0/12.0; + nx=-yt; + ny=-xt; + nx+=1.0/12.0; + ny+=1.0/12.0; + } + xt=nx*X1+ny*Y1+nz*Z1; yt=nx*X2+ny*Y2+nz*Z2; zt=nx*X3+ny*Y3+nz*Z3; @@ -369,6 +397,16 @@ EOF (xt<=x1)&&(yt<=y1)&&(zt<=z1)) { inx=$4+ii; iny=$5+ij; inz=$6+ik; + + if(sym==1) { + ixt=inx-1.0/12.0; + iyt=iny-1.0/12.0; + inx=-iyt; + iny=-ixt; + inx+=1.0/12.0; + iny+=1.0/12.0; + } + ixt=inx*X1+iny*Y1+inz*Z1; iyt=inx*X2+iny*Y2+inz*Z2; izt=inx*X3+iny*Y3+inz*Z3; @@ -378,6 +416,9 @@ EOF dist=sqrt((xt-ixt)^2+(yt-iyt)^2+(zt-izt)^2); + if((ixt>=x0)&&(iyt>=y0)&&(izt>=z0)&&\ + (ixt<=x1)&&(iyt<=y1)&&(izt<=z1)) { + #if((xt>=x0)&&(yt>=y0)&&(zt>=z0)&&\ # (xt<=x1)&&(yt<=y1)&&(zt<=z1)) { if(dist<=$7) { @@ -389,6 +430,8 @@ EOF } #} + } + } }