]> hackdaworld.org Git - physik/nlsop.git/commitdiff
finished random reject method
authorhackbard <hackbard>
Thu, 17 Jun 2004 06:30:33 +0000 (06:30 +0000)
committerhackbard <hackbard>
Thu, 17 Jun 2004 06:30:33 +0000 (06:30 +0000)
.cvsignore
nlsop.c
random_parse.sh

index 2e9473b55264b711c20602a5b581b8eacdd1d2d2..259d33bc1cd344d7b841274878412c79cca33e3a 100644 (file)
@@ -1,4 +1,3 @@
 *data*
-Makefile
 nlsop
 conv_fg_tif
diff --git a/nlsop.c b/nlsop.c
index 10a3f2f067d1638fd07c69417e1729586da4ae33..11f81f5f569e26c02024a23ebe6fc091713f8c3e 100644 (file)
--- a/nlsop.c
+++ b/nlsop.c
@@ -118,7 +118,7 @@ int process_cell(d3_lattice *d3_l,u32 x,u32 y,u32 z,info *my_info)
  return 1;
 }
 
-int distrib_c(d3_lattice *d3_l,info *my_info,int step,double c_ratio)
+int distrib_c(d3_lattice *d3_l,info *my_info,int step,double c_ratio,u32 rj_m,u32 *rj_g)
 {
  u32 x,y,z;
  int i,j,k,c;
@@ -131,8 +131,9 @@ int distrib_c(d3_lattice *d3_l,info *my_info,int step,double c_ratio)
   x=get_rand(d3_l->max_x);
   y=get_rand(d3_l->max_y);
   // printf("nd: %d %d\n",x,y);
-  z=get_rand_lgp(d3_l->max_z,my_info->a_cd,my_info->b_cd);
-  // printf("ld: %d\n",z);
+  // z=get_rand_lgp(d3_l->max_z,my_info->a_cd,my_info->b_cd);
+  z=get_rand_reject(d3_l->max_z,rj_m,rj_g);
+  // printf("%d\n",z);
   *(d3_l->extra+x+y*d3_l->max_x+z*d3_l->max_x*d3_l->max_y)+=1;
   (my_info->cc)++;
  }
@@ -747,13 +748,15 @@ u32 get_reject_graph(info *my_info,d3_lattice *d3_l,char *file,u32 *graph) {
   j=i;
   i++;
   while(flag[i]==0&&i<d3_l->max_z) i++;
-  printf("debug: i = %d j = %d\n",i,j);
   for(k=j+1;k<i;k++) graph[k]=(int)((k-j)*((int)graph[i]-(int)graph[j])/(i-j))+graph[j];
   if(graph[i]>max) max=graph[i];
  }
 
  free(flag);
 
+ // printf("debug: (interpolated c profile)\n");
+ // for(i=0;i<d3_l->max_z;i++) printf("%d %d\n",i,graph[i]);
+
  return max;
 }
 
@@ -800,6 +803,7 @@ int main(int argc,char **argv)
 #endif
  u32 *c_profile;
  u32 *n_e_loss;
+ u32 ne_max,ip_max;
 
  d3_l.max_x=X;
  d3_l.max_y=Y;
@@ -834,7 +838,8 @@ int main(int argc,char **argv)
  convert=0;
  strcpy(r_file,"");
  mode=0;
- u32 ne_max;
+ ne_max=0;
+ ip_max=0;
 
  for(i=1;i<argc;i++)
  {
@@ -1051,10 +1056,14 @@ int main(int argc,char **argv)
    puts("failed allocating memory for nuclear energy loss graph");
    return -1;
   }
-  ne_max=get_reject_graph(&my_info,&d3_l,p_file,c_profile);
+  ip_max=get_reject_graph(&my_info,&d3_l,p_file,c_profile);
 
-  /* break here for testing ... */
-  return 23;
+#ifdef DEBUG_RAND
+ while(1)
+ {
+  printf("%d\n",get_rand_reject(d3_l.max_z,ip_max,c_profile));
+ }
+#endif
 
   i=(c_step?c_step:0);
   while((i<my_info.steps) && (quit==0) && (escape==0))
@@ -1064,9 +1073,10 @@ int main(int argc,char **argv)
     x_c=get_rand(d3_l.max_x);
     y_c=get_rand(d3_l.max_y);
     z_c=get_rand_lgp(d3_l.max_z,my_info.a_el,my_info.b_el);
+    printf("%d\n",z_c);
     process_cell(&d3_l,x_c,y_c,z_c,&my_info);
    }
-   distrib_c(&d3_l,&my_info,i,c_ratio);
+   distrib_c(&d3_l,&my_info,i,c_ratio,ip_max,c_profile);
 #ifdef USE_DFB_API
    if(i%refresh==0)
    {
index 729a2947d98f0a74a37964cee97559df0970c4b2..d4380e1ecffc90b3f5331028064b408530fda1ce 100755 (executable)
@@ -3,7 +3,7 @@ if [ ! -f $1 ]; then
 echo "$1 not a file"
 else
 count=0
-while [ "$count" -le "99" ]
+while [ "$count" -le "232" ]
 do
 echo "$count $(grep -c -w $count $1)"
 let "count+=1"