ImagesList::ImagesList(int iminW, QSize isize, QWidget *parent, ListDir orient) :QScrollArea(parent) { #ifdef __images_list_debug qDebug("ImagesList()"); #endif iconw = isize.width(); iconh = isize.height(); minW = qMax(iconw+4, iminW); winit(orient); }
ImagesList::ImagesList(int iminW, int iw, int ih, QWidget *parent, ListDir orient) :QScrollArea(parent) { #ifdef __images_list_debug qDebug("ImagesList()"); #endif iconw = iw; iconh = ih; minW = qMax(iconw+4, iminW); winit(orient); }
void init(int argc, char **argv, t_data *data) { data->size = argc - 1; data->words = (t_word *)malloc(sizeof(t_word)); winit(argc, argv, data->words); data->current = 0; data->tsel = 0; data->cpage = 1; data->tpage = 0; data->maxl = 0; data->maxc = 0; data->maxwpp = 0; data->colwid = 30; tinit(data); }
rt_public void eif_rtinit(int argc, EIF_NATIVE_CHAR **argv, EIF_NATIVE_CHAR **envp) { char *eif_timeout; /* Retrieve root argument if any and update `argc' accordingly. */ eif_retrieve_root(&argc, argv); #ifdef EIF_WINDOWS set_windows_exception_filter(); #if defined(_MSC_VER) && _MSC_VER >= 1400 /* version 14.0+ (MSVC 8.0+) */ /* Ensures consistent behavior across all our platforms where we * get 2-digit exponent up to 99 and then 3-digit exponent for 100 and * above. */ (void) _set_output_format(_TWO_DIGIT_EXPONENT); #endif #endif #ifdef BOEHM_GC GC_register_displacement (OVERHEAD); #endif ieee_init(); starting_working_directory = (char *) eif_malloc (PATH_MAX + 1); /* Initialize directory to an empty string by default. */ starting_working_directory [0] = '\0'; ufill(); /* Get urgent memory chunks */ #if defined(DEBUG) && (EIF_OS != EIF_OS_VXWORKS) && !defined(EIF_WINDOWS) /* The following install signal handlers for signals USR1 and USR2. Both * raise an immediate scanning of memory and dumping of the free list usage * and other statistics. The difference is that USR1 also performrs a full * GC cycle before runnning the diagnosis. If memck() is programmed to * panic when inconsistencies are detected, this may raise a system failure * due to race condition. There is nothing the user can do about it, except * pray--RAM. */ esignal(SIGUSR1, mem_diagnose); esignal(SIGUSR2, mem_diagnose); #endif /* Check if the user wants to override the default timeout value * for interprocess communications (IPC). This new value is specified in * the ISE_TIMEOUT environment variable */ eif_timeout = getenv("ISE_TIMEOUT"); if ((eif_timeout != NULL) && (strlen(eif_timeout) > 0)) { /* Environment variable set */ TIMEOUT = (unsigned) atoi(eif_timeout); } else { TIMEOUT = 30; } eoption = egc_foption; #ifdef WORKBENCH xinitint(); /* Interpreter initialization */ esystem = egc_fsystem; eif_par_table = egc_partab; eif_par_table_size = egc_partab_size; eorg_table = egc_forg_table; pattern = egc_fpattern; debug_initialize(); /* Initialize debug information (breakpoints ...) */ /* In workbench mode, we have a slight problem: when we link ewb in * workbench mode, since ewb is a child from ised, the run-time will * assume, wrongly, that the executable is started in debug mode. Therefore, * we need a special run-time, with no debugging hooks involved. */ #ifndef NOHOOK winit(); /* Did we start under ewb control? */ #endif /* Initialize dynamically computed variables (i.e. system dependent) * Then we may call update. Eventually, when debugging the * application, the values loaded from the update file will be overridden * by the workbench (via winit). */ egc_einit(); /* Various static initializations */ fcount = scount; { char temp = 0; int i; for (i=1;i<argc;i++) { if (0 == rt_nstrcmp (argv[i], rt_nmakestr("-ignore_updt"))) { temp = (char) 1; break; } } update(temp, argv[0]); } /* Read melted information * Note: the `update' function takes * care of the initialization of the * temporary descriptor structures */ create_desc(); /* Create descriptor (call) tables */ #else /* * Initialize the finalized system with the static data structures. */ esystem = egc_fsystem; eif_par_table = egc_partab; eif_par_table_size = egc_partab_size; eif_gen_conf_init (eif_par_table_size); nbref = egc_fnbref; esize = egc_fsize; #endif #if !defined CUSTOM || defined NEED_UMAIN_H umain(argc, argv, envp); /* User's initializations */ #endif #if !defined CUSTOM || defined NEED_ARGV_H rt_arg_init(argc, argv); /* Save copy for class ARGUMENTS */ #endif eif_environ = envp; /* Save pointer to environment variable storage */ once_init(); #if defined(EIF_THREADS) && defined(WORKBENCH) notify_root_thread(); #endif initprf(); /* Initialize profiler. */ init_emnger(); /* Initialize ISE_EXCEPTION_MANAGER */ init_scp_manager(); /* Initialize ISE_SCOOP_MANAGER */ /* Initialize our root class. */ eif_init_root(); }
int main (int argc, char *argv[]) { struct parms parms; struct timeval start; int i, rank, size, ncy, cyc; int freq[5]={PHI,P,V,C}; double *data, *phi0, *kr, *r, *dr, *phit, *dphi; double telp, time, tcyc, havg, vavg, delh; char *wkdir=0; char input[64]={"init/input.dat"}; char phichek[64]={"init/phi.chk"}; //char phii[Nimob][64]; //for (i = 0; i < Nimob; i++){ // sprintf(phii[i],"data/phi%d.",(i+1)); //} char phii[64] = {"data/phi."}; char p[64] = {"data/p."}; char vx[64] = {"data/vx."}; char vy[64] = {"data/vy."}; char vz[64] = {"data/vz."}; char c[64] = {"data/c."}; char avname[64]={"data/avg."}; char fname[64]; FILE *fileptr; if (argc > 1) cyc = atoi(argv[1]); if (argc > 2) wkdir = argv[2]; winit(&start); // MPI Initialization MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); parms.rank = rank; parms.size = size; parms.V0 = 0; parms.nsten = (2*Dim)+1; parms.Nvar = Dim + 3; nameinput(fname, input, wkdir); fileptr = fopen(fname, "r"); // Read input data fscanf(fileptr, "%*s %*s %*s %*s %*s %*s %*s"); fscanf(fileptr, "%d %lf %lf %lf %lf %lf %lf", &ncy, &parms.Re, &parms.Pe, &parms.Da, &parms.pow, &parms.dx, &parms.dt); fclose(fileptr); // Reading the initial porosity profile #ifdef SEED char phseed[64] = {"init/phi.dat-seed"}; filename(fname, phseed, wkdir, parms); #endif #ifndef SEED char phinit[64] = {"init/phi.dat"}; filename(fname, phinit, wkdir, parms); #endif fileptr = fopen(fname, "r"); fscanf(fileptr, "%5d %5d %5d %5d %5d %5d %lf", &parms.Nx, &parms.Ny, &parms.nx, &parms.ny, &parms.Nz, &parms.cyc, &parms.t); fclose(fileptr); // 2D Domain decomposition parms = mapping(parms); parms.N = (parms.nx*parms.ny*parms.Nz); // Initialize pointers phi0 = (double *) calloc(parms.N, sizeof(double)); data = (double *) calloc(parms.N*parms.Nvar, sizeof(double)); dphi = (double *) calloc(parms.N, sizeof(double)); phit = (double *) calloc(parms.N, sizeof(double)); kr = (double *) calloc(parms.N, sizeof(double)); r = (double *) calloc(parms.N, sizeof(double)); dr = (double *) calloc(parms.N, sizeof(double)); // Create Spiral indexing int *sp = spiral(parms); readf(fname, phi0, parms); // Read from the input porosity profile writedata(phi0, data, 0, 0, parms); // Write the input porosity to pointer "data" @ 0 for(i = 0; i < parms.N; i++){ data[(i*parms.Nvar)+Dim+2] = 1.0; // Initialize c = 1.0 kr[i] = 1.0; } erode(data, kr, r, dr, sp, parms); // Intial fields parms.V0 = avgf(data, 2, parms); if (cyc > 0){ parms.cyc = cyc; filename(fname, phichek, wkdir, parms); readb(fname, phi0, parms); } writedata(phi0, data, 0, 0, parms); // Write the input porosity to pointer "data" @ 0 telp = wtime(&start); time = telp; if (parms.rank == 0){ fprintf(stdout, "Initialization; elapsed time: % .3e\n\n", telp); } while (parms.cyc <= ncy){ erode(data, kr, r, dr, sp, parms); havg = avgf(data, 0, parms); vavg = avgf(data, 2, parms); vavg = vavg*parms.Ny; delh = havg - parms.havg; parms.havg = havg; if (parms.rank == 0){ filename(fname, avname, wkdir, parms); fileptr = fopen(fname, "w"); if (parms.cyc == 0) fprintf(fileptr, " cycle time havg qavg delh\n"); fprintf(fileptr, "%5d % .3e % .3e % .3e % .3e\n", parms.cyc, parms.t, havg, vavg, delh); fclose(fileptr); } //for (i = 0; i < Nimob; i++){ // filename(fname, phii[i], wkdir, parms); // Write data files // writef(fname, data, i, parms, freq[0]); //} filename(fname, phii, wkdir, parms); // Write data files writef(fname, data, 0, parms, freq[0]); filename(fname, p, wkdir, parms); writef(fname, data, 1, parms, freq[1]); filename(fname, vx, wkdir, parms); writef(fname, data, 2, parms, freq[2]); filename(fname, vy, wkdir, parms); writef(fname, data, 3, parms, freq[2]); filename(fname, vz, wkdir, parms); writef(fname, data, 4, parms, freq[2]); filename(fname, c, wkdir, parms); writef(fname, data, Dim+2, parms, freq[3]); // Calculate erosion during dt double dt = parms.dt/parms.Da; #ifdef EULER for (i = 0; i < parms.N; i++) dphi[i] = r[i]*dt; #endif #ifdef MIDPT for (i = 0; i < parms.N; i++){ phit[i] = phi0[i] + 0.5*r[i]*dt; } writedata(phit, data, 0, 0, parms); erode (data, kr, r, dr, sp, parms); for (i = 0; i < parms.N; i++) dphi[i] = r[i]*dt; #endif #ifdef RK4 for (i = 0; i < parms.N; i++){ phit[i] = phi0[i] + 0.5*r[i]*dt; dphi[i] = r[i]*dt/6.0; } writedata(phit, data, 0, 0, parms); erode (data, kr, r, dr, sp, parms); for (i = 0; i < parms.N; i++){ phit[i] = phi0[i] + 0.5*r[i]*dt; dphi[i]+= r[i]*dt/3.0; } writedata(phit, data, 0, 0, parms); erode (data, kr, r, dr, sp, parms); for (i = 0; i < parms.N; i++){ phit[i] = phi0[i] + r[i]*dt; dphi[i]+= r[i]*dt/3.0; } writedata(phit, data, 0, 0, parms); erode (data, kr, r, dr, sp, parms); for (i = 0; i < parms.N; i++) dphi[i]+= r[i]*dt/6.0; #endif // Update height profile for (i = 0; i < parms.N; i++){ phi0[i] += dphi[i]; #ifdef APLIM if (phi0[i] >= AMAX){ phi0[i] = AMAX; kr[i] = 0.0; } #endif } writedata(phi0, data, 0, 0, parms); telp = wtime(&start); tcyc = time; time += telp; tcyc = time - tcyc; if (parms.rank == 0){ fprintf(stdout, "Cycle %6d; cycle time: % .3e total time: % .3e\n\n", parms.cyc, tcyc, time); } parms.cyc++; parms.t += parms.dt; #if CHEK > 0 if ((parms.cyc-1)%CHEK == 0){ filename(fname, phichek, wkdir, parms); writeb(fname, data, 0, parms); /* Checkpoint aperture */ } #endif } // Free memory free(phit); free(r); free(dr); free(kr); free (dphi); free(phi0); free(data); free(sp); // Finalize MPI MPI_Finalize(); return (0); }