[petsc-users] PetscInitalize() and console output

Thomas Leissing thomas.leissing at cstb.fr
Tue Dec 13 08:43:07 CST 2011


Dear all,

Somewhere in my boundary element solver I have a console progress bar
which prints to screen the progress of an operation.
It looks like this:
INFO    :     50%  [------------>                   ]

The function is very simple:
//i is the current iteration number 
//n is the total number of iterations
void progressBar(int x, int n)
{

    if ( x % (n/100) != 0 ) return;

    // Calculate the ratio of complete-to-incomplete.
    float ratio = x/(float)n;
    int   c     = ratio * 80

    // Show the percentage complete.
    printf("INFO      :\t%3d%% [", (int)(ratio*100) );

    // Show the load bar.
    for (int x=0; x<c-1; x++)
       printf("-");

    printf(">");

    for (int x=c; x<pBarWidth; x++)
       printf(" ");

    // ANSI Control codes to go back to the
    // previous line and clear it.
    printf("]\n\033[F\033[J");
}


My problem is that the progress bar doesn't print to screen as soon as I
call the PetscInitialize() function (it works fine otherwise).
I tried to play with fflush(stdout) commands without any success.

Any ideas ?

Thanks,
Thomas Leissing

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20111213/48344417/attachment.htm>


More information about the petsc-users mailing list