static void init_data_sheet (PsppireDataEditor *de) { GtkAdjustment *vadj0, *hadj0; GtkAdjustment *vadj1, *hadj1; GtkWidget *sheet ; de->vaxis[0] = psppire_axis_new (); de->vaxis[1] = psppire_axis_new (); /* There's only one horizontal axis, since the column widths are parameters of the variables */ de->haxis = psppire_axis_new (); de->split = TRUE; de->paned = gtk_xpaned_new (); init_sheet (de, 0, NULL, NULL, de->vaxis[0], de->haxis); gtk_widget_show (de->sheet_bin[0]); vadj0 = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (de->sheet_bin[0])); hadj0 = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (de->sheet_bin[0])); g_object_set (de->sheet_bin[0], "vscrollbar-policy", GTK_POLICY_NEVER, NULL); g_object_set (de->sheet_bin[0], "hscrollbar-policy", GTK_POLICY_NEVER, NULL); init_sheet (de, 1, NULL, vadj0, de->vaxis[0], de->haxis); gtk_widget_show (de->sheet_bin[1]); sheet = gtk_bin_get_child (GTK_BIN (de->sheet_bin[1])); psppire_sheet_hide_row_titles (PSPPIRE_SHEET (sheet)); hadj1 = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (de->sheet_bin[1])); g_object_set (de->sheet_bin[1], "vscrollbar-policy", GTK_POLICY_ALWAYS, NULL); g_object_set (de->sheet_bin[1], "hscrollbar-policy", GTK_POLICY_NEVER, NULL); init_sheet (de, 2, hadj0, NULL, de->vaxis[1], de->haxis); gtk_widget_show (de->sheet_bin[2]); sheet = gtk_bin_get_child (GTK_BIN (de->sheet_bin[2])); psppire_sheet_hide_column_titles (PSPPIRE_SHEET (sheet)); g_object_set (de->sheet_bin[2], "vscrollbar-policy", GTK_POLICY_NEVER, NULL); g_object_set (de->sheet_bin[2], "hscrollbar-policy", GTK_POLICY_ALWAYS, NULL); vadj1 = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (de->sheet_bin[2])); init_sheet (de, 3, hadj1, vadj1, de->vaxis[1], de->haxis); gtk_widget_show (de->sheet_bin[3]); sheet = gtk_bin_get_child (GTK_BIN (de->sheet_bin[3])); psppire_sheet_hide_column_titles (PSPPIRE_SHEET (sheet)); psppire_sheet_hide_row_titles (PSPPIRE_SHEET (sheet)); g_object_set (de->sheet_bin[3], "vscrollbar-policy", GTK_POLICY_ALWAYS, NULL); g_object_set (de->sheet_bin[3], "hscrollbar-policy", GTK_POLICY_ALWAYS, NULL); gtk_xpaned_pack_top_left (GTK_XPANED (de->paned), de->sheet_bin[0], TRUE, TRUE); gtk_xpaned_pack_top_right (GTK_XPANED (de->paned), de->sheet_bin[1], TRUE, TRUE); gtk_xpaned_pack_bottom_left (GTK_XPANED (de->paned), de->sheet_bin[2], TRUE, TRUE); gtk_xpaned_pack_bottom_right (GTK_XPANED (de->paned), de->sheet_bin[3], TRUE, TRUE); gtk_xpaned_set_position_y (GTK_XPANED (de->paned), 150); gtk_xpaned_set_position_x (GTK_XPANED (de->paned), 350); }
int main() { int np = 9; /* number of points on the sheet */ double dt = .005; int step = 0; double time = 0.0; double *de, *x, *y, *gamma; double c[4]; /* int j; */ /* double sumg; */ char fname[30]; int dump_num = 0; double dump_time = 1; /* double max; */ /* double sum; */ /* FILE *dump; */ /* double mindist = SQR(.5/np); */ /* double maxdist = SQR(1.5/np); */ get_physical_params(c); de = vector(np); x = vector(np); y = vector(np); gamma = vector(np); init_sheet(de, x, y, gamma, np, 2.0*c[3]); /* getchar(); */ /* dump = fopen("max2.dat", "w"); */ while(1) { if(time >= dump_time * dump_num) { sprintf(fname, "sheet_%03i.dat", dump_num); dump_data(de, x, y, gamma, np, c, time, dt, fname); dump_num++; } step++; time += dt; /*printf("\x1B[2J");*/ /* printf("**** ");*/ /* printf("Step: %5i Time: %8.5f (%8.5f s) (dt = %9.4g)\n", */ /* step, time, realtime, dt); */ /* printf(" *****\n");*/ /* printf("Gamma before step:\t%f\n", integral(gamma,de,np)-1.0); */ dt = do_timestep(de, &x, &y, &gamma, c, np, dt); /* printf("Gamma before trim:\t%f\n", integral(gamma,de,np)-1.0); */ /* np = trim_distances(&de, &x, &y, &gamma, mindist, maxdist, np); */ /* printf("Gamma after (%i):\t%f\n\n", np,integral(gamma,de,np)-1.0); */ /* printf("Smooth x: "); */ /* fourier_smooth(x, np); */ /* printf("Smooth y: "); */ /* fourier_smooth(y, np); */ /* sum = integral(gamma,de,np)-1.0; */ /* if(fabs(sum) > 1e-12) { */ /* printf("Step: %i Gamma: %e\n", step, sum); */ /* getchar(); */ /* } */ /* getchar(); */ /* sumg = 0.0; */ /* for(j = 0; j < np; j++) */ /* sumg += gamma[j]*de[j]; */ /* printf("np: %3i\nSum g: %9.5e\n", np, sumg-1); */ /* max = dump_data(x, y, gamma, np, "sheet2.dat"); */ /* fprintf(dump, "%f\t%f\n", realtime, max); */ /* getchar(); */ } /* fclose(dump); */ return 0; }