{
int fd,x,y,z;
int count,offset;
- char file[16];
-
- if(ac_distr==1) strcpy(file,"a.plot");
- if(ac_distr==2) strcpy(file,"c.plot");
- if(ac_distr==3) strcpy(file,"b.plot");
+ char file[32];
+ int si_count;
+
+ si_count=d3_l->max_x*d3_l->max_y*SI_PER_VOLUME;
+ if(ac_distr==1) strcpy(file,"carbon_in_av.plot");
+ if(ac_distr==2) strcpy(file,"carbon_in_cv.plot");
+ if(ac_distr==3) strcpy(file,"carbon.plot");
+ if(ac_distr==4) strcpy(file,"amorphous_volumes.plot");
if((fd=open(file,O_WRONLY|O_CREAT))<0)
{
if(ac_distr==2)
if(!(*(d3_l->status+offset)&AMORPH)) count+=*(d3_l->extra+offset);
if(ac_distr==3) count+=*(d3_l->extra+offset);
+ if(ac_distr==4)
+ if(*(d3_l->status+offset)&AMORPH) count+=1;
}
}
- dprintf(fd,"%d %d\n",z,count);
+ if(ac_distr==4) dprintf(fd,"%d %d\n",z*CELL_LENGTH,count);
+ else dprintf(fd,"%d %f\n",z*CELL_LENGTH,100.0*count/si_count);
}
close(fd);
arg_v[25]=NULL;
#endif
+ /* compute graphs for random number rejection method */
+ if((c_profile=(u32 *)malloc(d3_l.max_z*sizeof(unsigned int)))==NULL)
+ {
+ puts("failed allocating memory for carbon profile graph");
+ return -1;
+ }
+ if((n_e_loss=(u32 *)malloc(d3_l.max_z*sizeof(unsigned int)))==NULL)
+ {
+ puts("failed allocating memory for nuclear energy loss graph");
+ return -1;
+ }
+ ip_max=get_reject_graph(&my_info,&d3_l,p_file,c_profile);
+ ne_max=get_reject_graph(&my_info,&d3_l,n_e_file,n_e_loss);
+
if((!strcmp(l_file,""))||(c_step))
{
/* calculate ratio of c_simwindow / c_total */
puts("failed calculating ratio");
return -1;
}
- /* compute graphs for random number rejection method */
- if((c_profile=(u32 *)malloc(d3_l.max_z*sizeof(unsigned int)))==NULL)
- {
- puts("failed allocating memory for carbon profile graph");
- return -1;
- }
- if((n_e_loss=(u32 *)malloc(d3_l.max_z*sizeof(unsigned int)))==NULL)
- {
- puts("failed allocating memory for nuclear energy loss graph");
- return -1;
- }
- ip_max=get_reject_graph(&my_info,&d3_l,p_file,c_profile);
- ne_max=get_reject_graph(&my_info,&d3_l,n_e_file,n_e_loss);
#ifdef DEBUG_RAND
+ i=0;
while(1)
{
#ifdef DEBUG_CP
#ifdef DEBUG_NORM
printf("%d\n",get_rand(d3_l.max_z));
#endif
+ if(i==10000000) return 1;
+ i++;
}
#endif
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,25,arg_v,mode,0);
+ d3_lattice_draw(&d3_l,x,y,z,25,arg_v,mode,0,NULL,0,NULL,0);
}
#endif
if(i%resave==0 && strcmp(s_file,"") && resave!=0 && i!=0)
if(switchmode==0) mode=0;
if(switchmode==1) mode=1;
if(switchmode==2) mode=2;
+ if(switchmode==3) mode=3;
/* end of bahh! */
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');
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,25,arg_v,mode,max_extra);
+ if(switchmode==3) strcpy(mode_txt,"view: a/c + profiles mode");
+ d3_lattice_draw(&d3_l,x,y,z,25,arg_v,mode,max_extra,c_profile,ip_max,n_e_loss,ne_max);
bmp=0;
ac_distr=0;
scan_event(&d3_l,&x,&y,&z,&quit,&escape,&switchmode,&bmp,&ac_distr);