Ejemplo n.º 1
0
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);

}
Ejemplo n.º 2
0
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);

}
Ejemplo n.º 3
0
Archivo: init.c Proyecto: Strade288/42
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);
}
Ejemplo n.º 4
0
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();
}
Ejemplo n.º 5
0
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);
}