Exemplo n.º 1
0
void verlet(const char* filename){
dictionary* ini;
    ini = iniparser_load(filename);

    iniparser_dump(ini, stdout);
    FILE *file;
    file = fopen(LOGFILE, "a");
    iniparser_dump(ini, file);
    fclose(file);
    ReportMessage("\n");

    t_key       key  = key_init(ini);
    t_pSys      pSys = pSys_init (ini);
    t_opts      opts = opts_init (ini);
    t_pair      p    = t_pair_init(ini);
    t_dump      dump = dump_init(ini);
    t_fix       fix  = fix_init(ini);
    t_compute   compute = compute_init(ini, &key);

    init (&key, &pSys, &opts, &p, &compute);
    if(key.dump) dump_run(&key, &pSys, &opts, &dump); // Make initial snapshot.
    while(opts.thisIter < opts.targIters){  // Repeat until iterational limit.
        verlet_iter (&key, &pSys, &opts, &p, &fix, &compute);
        if(key.dump) dump_run(&key, &pSys, &opts, &dump);
        resetStep(&pSys);
    }
}
Exemplo n.º 2
0
void		compute_rt(t_all *all, char *path)
{
  t_info	*result;
  int		fd_isback[2];
  t_coor	coord;
  time_t	begin;
  t_image	*ldbar;

  ldbar = get_loadimage(all);
  begin = compute_init(all, fd_isback, path, &result);
  coord.y = -1;
  while (++(coord.y) < WIN_Y && fd_isback[0])
    {
      coord.x = -1;
      while (++(coord.x) < WIN_X)
	{
	  print_loadbar(all, ldbar,
			(((((coord.y * WIN_X) + (coord.x))) * 100) /
			 (WIN_X * WIN_Y)), begin);
	  if (!(back_is_right(&fd_isback[1], &result, fd_isback[0])))
	    back_is_wrong(fd_isback[0], &result, all, &coord);
	  my_pixel_put_to_image(all->result, coord.x, coord.y,
				(result) ? result->color : all->sc->bg_color);
	}
    }
  compute_free(all, ldbar, &coord, fd_isback[0]);
  xfree(result);
}