int main(int argc,char **argv) {
- int i,j,k,l,cnt;
+ int i,j,k,l,cnt,estimated;
int x,y,z;
t_3dvec basis[3];
t_3dvec o[3];
cnt=0;
+ estimated=1;
+ if(fccdia=='1') estimated*=2;
+ if(type=='1') estimated*=2;
+ if(type=='2') estimated*=4;
+ estimated*=x*y*z;
+
+ // print POSCAR 'header'
+
+ printf("cubic diamond\n");
+ printf(" 5.429\n");
+
+ v3_scale(&h,&basis[0],x);
+ printf(" %.5f %.5f %.5f\n",h.x,h.y,h.z);
+ v3_scale(&h,&basis[1],y);
+ printf(" %.5f %.5f %.5f\n",h.x,h.y,h.z);
+ v3_scale(&h,&basis[2],z);
+ printf(" %.5f %.5f %.5f\n",h.x,h.y,h.z);
+
+ printf(" %d\n",estimated);
+ printf("selective dynamics\n");
+ printf("direct\n");
+
+ // now print the coordinates
+
for(i=0;i<x;i++) {
for(j=0;j<y;j++) {
for(k=0;k<z;k++) {
// first atom (all types)
- v3_scale(&r,&basis[0],i);
- v3_scale(&h,&basis[1],j);
- v3_add(&r,&r,&h);
- v3_scale(&h,&basis[2],k);
- v3_add(&r,&r,&h);
+ r.x=i;
+ r.y=j;
+ r.z=k;
printf(" %.5f %.5f %.5f T T T\n",r.x/x,r.y/y,r.z/z);
cnt+=1;
for(k=0;k<z;k++) {
// first atom (all types)
- v3_scale(&r,&basis[0],i);
- v3_scale(&h,&basis[1],j);
- v3_add(&r,&r,&h);
- v3_scale(&h,&basis[2],k);
- v3_add(&r,&r,&h);
+ r.x=i;
+ r.y=j;
+ r.z=k;
// add the diagonal
v3_add(&r,&r,&dia);
}
- printf("\ntotal: %d ions\n\n",cnt);
+ if(estimated!=cnt) {
+ printf("\nWARNING! counted %d ions and estimated %d ions\n\n",
+ cnt,estimated);
+ }
return 0;
}