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); } }
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); }