← Back to team overview

dolfin team mailing list archive

Re: silent log

 

Jake Ostien wrote:
Garth N. Wells wrote:
Alessio Quaglino wrote:
Alessio Quaglino wrote:
I'd like to turn off the progress bars for the assembly, I'm trying
something like this:

set("OutputDestination", "silent");
assembler.assemble(load, L, mesh);
set("OutputDestination", "terminal");

but it doesn't seem to work. Do I forget something?

Thanks,
Alessio Quaglino
It should be "output destination" (not "OutputDestination").

It should also work setting "debug level" to -1.

Perhaps we should increase the debug level for progress bars to 1. They
are currently at 0 and will thus be printed on the default debug level
which is 0. Thoughts?

/Anders
I've tried:

set("output destination", "silent");
assembler.assemble(load, L, mesh);
set("output destination", "terminal");

but the progress bars are still printed out. I think it's a good idea to
move them to level 1.

Alessio
Apart from this, I've got another problem with the output. It seems that
for both uBlas matrices and vectors disp() prints only a short block of
each row of the matrix or a short block of the whole vector. The output
for a matrix looks like this (first and second rows):

| (0, 0, 3.66e-01) (0, 1, -8.33e-03) (0, 11, -4.17e-03) (0, 12, -5.69e-06)
(0, 121, -2.67e-01) (0, 122, 5.18e-07) (0, 132, 6.70e-07) (0, 133,
4.98e-06) (0, 242, -5.99e-07) (0, 243, 1.02e-07) (0, 253, 2.08e-03) (0,
254, -2.08e-03) (0, 363, 6.00e-07) (0, 36

| (1, 0, -8.33e-03) (1, 1, 5.38e-01) (1, 2, -8.33e-03) (1, 12, -6.25e-03)
(1, 13, -2.21e-05) (1, 122, -4.00e-01) (1, 123, 6.08e-06) (1, 133,
8.36e-06) (1, 134, 5.75e-06) (1, 242, 2.08e-03) (1, 243, -2.08e-03) (1,
244, -2.72e-07) (1, 254, 2.09e-03) (1, 255

This problem was introduced by the new log system. It cuts things off after 256 character (which is set by DOFLIN_LINELENGTH). Anyone know how to fix this?

Garth

I couldn't tell if this ever got discussed again, but if there is a fix or a work around, I'd like to hear it, too.

Jake

There's no simple fix. The log system needs to have a buffer of some size when calling vsnprintf(). (Used for parsing variable number of arguments for dolfin::message().)

If the matrix is big, just print it to file and then look at it:

File file("matrix.m");
file << A;

or

File file("matrix.xml");
file << A;

/Anders


Follow ups

References