]> hackdaworld.org Git - physik/ising.git/commitdiff
added display rate & max_T -> 3.0 * S
authorhackbard <hackbard>
Mon, 12 May 2003 17:19:27 +0000 (17:19 +0000)
committerhackbard <hackbard>
Mon, 12 May 2003 17:19:27 +0000 (17:19 +0000)
ising.c

diff --git a/ising.c b/ising.c
index b92cf99b34567812e23314cc4505f311cc1de08f..b6c3a8721e8d1bc52d2f96a4d46901827601c016 100644 (file)
--- a/ising.c
+++ b/ising.c
@@ -36,6 +36,7 @@ int usage(void)
  puts("-y <value> \t # y lattice sites");
  puts("-s <value> \t spin interaction strength");
  puts("-r \t run in interactive mode (still in work)");
+ puts("-d <value> \t refresh display rate");
 
  return 1;
 }
@@ -61,6 +62,7 @@ int main(int argc, char **argv)
  double delta_e;
  int runfree=0;
  double max_T;
+ int dr=1;
 
  /* random stuff*/
  srand(time(0));
@@ -98,6 +100,9 @@ int main(int argc, char **argv)
     case 'r':
      runfree=1;
      break;
+    case 'd':
+     dr=atoi(argv[++i]);
+     break;
     default:
      usage();
      return -1;
@@ -123,7 +128,7 @@ int main(int argc, char **argv)
  /* begin at T=0 M=1 situation */
  memset(atom,0,max_x*max_y*sizeof(unsigned char));
  
- max_T=1.3*s;
+ max_T=3.0*s;
 
  for(T=.05;T<max_T;T+=.05)
  {
@@ -153,6 +158,8 @@ int main(int argc, char **argv)
   }
  }
  
+ if(i%dr==0)
+ {
   sprintf(t_text," temp: %.3f",T);
   arg_v[1]=t_text;
   sprintf(b_text," beta: %.3f",beta);
@@ -164,6 +171,7 @@ int main(int argc, char **argv)
   sprintf(m_text," magnetization: %.3f",1.0-2.0*M/(max_x*max_y));
   arg_v[6]=m_text;
   d2_lattice_draw(&d2_l,0,0,6,arg_v);
+ }
 
   }
   if(of_fd) dprintf(of_fd,"%f %f\n",T,1.0-2.0*M/(max_x*max_y));
@@ -197,6 +205,8 @@ int main(int argc, char **argv)
   }
  }
 
+ if(i%dr==0)
+ {
   sprintf(t_text," temp = %.3f",T);
   arg_v[1]=t_text;
   sprintf(b_text," beta = %.3f",beta);
@@ -208,6 +218,7 @@ int main(int argc, char **argv)
   sprintf(m_text," magnetization: %.3f",1.0-2.0*M/(max_x*max_y));
   arg_v[6]=m_text;
   d2_lattice_draw(&d2_l,0,0,6,arg_v);
+ }
   
   }
   if(of_fd) dprintf(of_fd,"%f %f\n",T,1.0-2.0*M/(max_x*max_y));