X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=nlsop.c;h=243cd9207ea90677c010cda6ebc9c7bfe6eb1a5b;hb=14f4760167409b235fb1d03e1f12733c85037eb6;hp=1635bb084683608b4847143b09e7674a425e172e;hpb=f34bfc6756a52ea6bfdd42016499228473029655;p=physik%2Fnlsop.git diff --git a/nlsop.c b/nlsop.c index 1635bb0..243cd92 100644 --- a/nlsop.c +++ b/nlsop.c @@ -1,7 +1,7 @@ /* * nlsop.c * - * author: frank zirkelbach (frank@xeen.net) + * author: frank zirkelbach (frank.zirkelbach@physik.uni-augsburg.de) * * this program tries helping to understand the amorphous depuration * and recrystallization of SiCx while ion implantation at temperatures @@ -336,26 +336,51 @@ int calc_max_extra(d3_lattice *d3_l) int write_bmp(d3_lattice *d3_l,int window,u32 x,u32 y,u32 z) { - int fd,i,j,size=0,foo=0; + int fd,i,j,size=0,foo=0,end=0; int width=0,height=0; char bmpfile[MAX_CHARS]; char buf[128]; - if(window==1) + if(((window==4)||(window==5))&&(d3_l->max_zmax_x; - size=(foo+(4-foo%4))*d3_l->max_z; + if(window==1) + { + size=(foo+(4-foo%4))*d3_l->max_z; + height=d3_l->max_z; + } + else + { + size=(foo+(4-foo%4))*FFT_HEIGHT; + end=d3_l->max_z-FFT_HEIGHT; + height=FFT_HEIGHT; + } width=d3_l->max_x; - height=d3_l->max_z; } - if(window==2) + if(window%3==2) { sprintf(bmpfile,"y-z_%d.bmp",x); foo=3*d3_l->max_y; - size=(foo+(4-foo%4))*d3_l->max_z; + if(window==2) + { + size=(foo+(4-foo%4))*d3_l->max_z; + height=d3_l->max_z; + } + else + { + size=(foo+(4-foo%4))*FFT_HEIGHT; + end=d3_l->max_z-FFT_HEIGHT; + height=FFT_HEIGHT; + } width=d3_l->max_y; - height=d3_l->max_z; } if(window==3) { @@ -409,9 +434,9 @@ int write_bmp(d3_lattice *d3_l,int window,u32 x,u32 y,u32 z) puts("failed writing bmp header"); return -1; } - if(window==1) + if(window%3==1) { - for(j=0;jmax_z;j++) + for(j=0;jmax_z-end;j++) { for(i=0;imax_x;i++) { @@ -434,9 +459,9 @@ int write_bmp(d3_lattice *d3_l,int window,u32 x,u32 y,u32 z) } } } - if(window==2) + if(window%3==2) { - for(j=0;jmax_z;j++) + for(j=0;jmax_z-end;j++) { for(i=0;imax_y;i++) { @@ -746,6 +771,7 @@ int main(int argc,char **argv) break; case 'i': c_diff=0; + my_info.dr_cc=0; break; case 's': my_info.steps=atoi(argv[++i]); @@ -874,7 +900,8 @@ int main(int argc,char **argv) sprintf(cd_txt,"a_cd: %.3f b_cd: %.3f",my_info.a_cd,my_info.b_cd); sprintf(cp_txt,"a_cp: %.4f",my_info.a_cp); sprintf(dr_ac_txt,"a/c diffusion rate: %.4f",my_info.dr_ac); - sprintf(dr_cc_txt,"c/c diffusion rate: %.4f",my_info.dr_cc); + if(my_info.dr_cc!=0) sprintf(dr_cc_txt,"c/c diffusion rate: %.4f",my_info.dr_cc); + else sprintf(dr_cc_txt,"c/c diffusion rate: none"); sprintf(zdiff_txt,"diffusion in z direction: %c",my_info.z_diff?'y':'n'); sprintf(diff_txt,"diffusion every %d steps",my_info.diff_rate); strcpy(mode_txt,"view: a/c mode");