#define MAKE_AMORPH(N) *(N)|=AMORPH
#define MAKE_CRYST(N) *(N)&=~AMORPH
+/* test globals - get removed or included in my_info struct later */
+int amorph_count;
+int cryst_count;
+
int usage(void)
{
puts("usage:");
}
}
p+=*conc*my_info->a_cp*URAND_MAX;
- printf("debug: %f - %u\n",p,URAND_MAX);
if(!(*thiz&AMORPH))
{
- if(get_rand(URAND_MAX)<=p) MAKE_AMORPH(thiz);
+ if(get_rand(URAND_MAX)<=p)
+ {
+ MAKE_AMORPH(thiz);
+ amorph_count++;
+ }
} else
{
/* assume 1-p probability */
- if(get_rand(URAND_MAX)>p) MAKE_CRYST(thiz);
+ if(get_rand(URAND_MAX)>p)
+ {
+ MAKE_CRYST(thiz);
+ cryst_count++;
+ }
}
return 1;
}
}
*c_ratio=d/all;
+ close(p_fd);
return 1;
}
char diff_txt[MAX_TXT];
char dr_ac_txt[MAX_TXT];
char dr_cc_txt[MAX_TXT];
+ char dose_txt[MAX_TXT];
char mode_txt[MAX_TXT];
char *arg_v[MAX_ARGV];
#endif
strcpy(r_file,"");
mode=0;
+ amorph_count=0;
+ cryst_count=0;
+
for(i=1;i<argc;i++)
{
if(argv[i][0]=='-')
#ifdef USE_DFB_API
strcpy(a_txt,"args:");
sprintf(s_txt,"steps: %d",my_info.steps);
+ sprintf(dose_txt,"dose: %.2fe+17 C/cm²",my_info.steps*1.0/(d3_l.max_x*d3_l.max_y*CELL_LENGTH*CELL_LENGTH*1000));
sprintf(r_txt,"pressure range: %d",my_info.range);
sprintf(ap_txt,"a_ap: %.2f b_ap: %.3f",my_info.a_ap,my_info.b_ap);
sprintf(el_txt,"a_el: %.2f b_el: %.3f",my_info.a_el,my_info.b_el);
arg_v[12]=zdiff_txt;
arg_v[13]=NULL;
arg_v[14]=a_txt;
- arg_v[15]=NULL;
- arg_v[16]=s_txt;
- arg_v[17]=r_txt;
- arg_v[18]=NULL;
+ arg_v[15]=s_txt;
+ arg_v[16]=dose_txt;
+ arg_v[17]=NULL;
+ arg_v[18]=r_txt;
arg_v[19]=ap_txt;
arg_v[20]=el_txt;
arg_v[21]=cd_txt;
sprintf(xyz_txt,"x: %d y: %d z: %d",x+1,y+1,z+1);
sprintf(status_txt,"status: %c",(*(d3_l.status+x+y*d3_l.max_x+z*d3_l.max_x*d3_l.max_y)&AMORPH)?'a':'c');
sprintf(conc_txt,"conc: %d",*(d3_l.extra+x+y*d3_l.max_x+z*d3_l.max_x*d3_l.max_y));
- sprintf(steps_txt,"step: %d",i);
- sprintf(cc_txt,"total c: %d",my_info.cc);
- d3_lattice_draw(&d3_l,x,y,z,24,arg_v,mode);
+ sprintf(steps_txt,"step: %d a_count: %d",i,amorph_count);
+ sprintf(cc_txt,"total c: %d c_count: %d",my_info.cc,cryst_count);
+ d3_lattice_draw(&d3_l,x,y,z,25,arg_v,mode);
}
#endif
if(i%resave==0 && strcmp(s_file,"") && resave!=0 && i!=0)
sprintf(xyz_txt,"x: %d y: %d z: %d",x+1,y+1,z+1);
sprintf(status_txt,"status: %c",(*(d3_l.status+x+y*d3_l.max_x+z*d3_l.max_x*d3_l.max_y)&AMORPH)?'a':'c');
sprintf(conc_txt,"conc: %d",*(d3_l.extra+x+y*d3_l.max_x+z*d3_l.max_x*d3_l.max_y));
- strcpy(steps_txt,"step: end!");
- sprintf(cc_txt,"total c: %d",my_info.cc);
+ sprintf(steps_txt,"step: end! a_count: %d",amorph_count);
+ sprintf(cc_txt,"total c: %d c_count: %d",my_info.cc,cryst_count);
if(switchmode==0) strcpy(mode_txt,"view: a/c mode");
if(switchmode==1) strcpy(mode_txt,"view: c conc mode");
if(switchmode==2) strcpy(mode_txt,"view: a pressure mode");
- d3_lattice_draw(&d3_l,x,y,z,24,arg_v,mode);
+ d3_lattice_draw(&d3_l,x,y,z,25,arg_v,mode);
scan_event(&d3_l,&x,&y,&z,&quit,&escape,&switchmode);
}