← Back to team overview

dolfin team mailing list archive

Re: [Viper-dev] C++ plotting broken (even in serial)

 

On Mon, Sep 21, 2009 at 9:00 PM, Johan Hake <hake@xxxxxxxxx> wrote:
> On Monday 21 September 2009 20:32:41 Garth N. Wells wrote:
>> This issue has returned.
>
> I think the issue is at the viper side this time.
>
>  f = File(filename)
>  data = FunctionPlotData()
>  f >> data
>
> works fine.
>
> Johan

The general problem with DOLFIN and Viper is the changing interface of
DOLFIN. This, together with the desired viper use of

viper some_plot_data.xml

which essentially leads to Python code a-la

try:
 plot_function_plot_data()
except:
 pass
try:
 plot_mesh_function()
except:
 pass
try:
 plot_mesh()
except:
 raise IOError("Could not find anything to plot")

makes life hard.

In general, the problem as seen from the Python side is that we need
to spesify the type of object read from file. Being a dynamically
typed language, the following code (or similar) is possible:

plot(File(filename).read())

which would make is much simpler to issue a sound error message from Viper.

In my view, the problem is that we haven't code for extracting type
info from a DOLFIN xml file. A simple reader that extracts and reports
this would be nice to have.

f = File(filename)
info = XMLFileInfo(f)
print info
(FunctionPlotData, Mesh)
data = info[0]() # Construct an empty FunctionPlotData instance
mesh = info[1]() # Construct an empty Mesh.
[...]



>> Garth
>>
>> Ola Skavhaug wrote:
>> > On Tue, Sep 15, 2009 at 2:48 PM, Johan Hake <hake@xxxxxxxxx> wrote:
>> >> On Tuesday 15 September 2009 14:31:22 Ola Skavhaug wrote:
>> >>> On Tue, Sep 15, 2009 at 1:03 PM, Anders Logg <logg@xxxxxxxxx> wrote:
>> >>>> On Tue, Sep 15, 2009 at 12:59:24PM +0200, Garth N. Wells wrote:
>> >>>>> Anders Logg wrote:
>> >>>>>> When plotting a <function_plot_data> object from file, Viper just
>> >>>>>> plots the mesh, not the function.
>> >>>>>>
>> >>>>>> Is this a bug in Viper?
>> >>>>>
>> >>>>> I don't know. It's a pain to find out because there is no error
>> >>>>> message and DOLFIN cleans up the plot files afterwards. It happens to
>> >>>>> me so often that I'm not going to bother fixing it any more.
>> >>>>>
>> >>>>> Garth
>> >>>>
>> >>>> I don't think DOLFIN cleans up the plot files. The file is created in
>> >>>> the current directory and is named dolfin_plot_data.xml.
>> >>>
>> >>> The problem here is the restructuring of the swig interface; the
>> >>> rshift operator on FunctionPlotData is defined before the definition
>> >>> of FunctionPlotData. This causes swig to ignore the rshift (and
>> >>> lshift) operator for FunctionPlotData, and hence the lines
>> >>>
>> >>> f = File(filename)
>> >>> f >> FunctionPlotData()
>> >>
>> >> Should be fixed now
>> >>
>> >> Johan
>> >
>> > Latest viper commit should make things work again.
>> >
>> > Ola
>> >
>> >>> fails.
>> >>>
>> >>> Ola
>> >>>
>> >>>> --
>> >>>> Anders
>> >>>>
>> >>>> -----BEGIN PGP SIGNATURE-----
>> >>>> Version: GnuPG v1.4.9 (GNU/Linux)
>> >>>>
>> >>>> iEYEARECAAYFAkqvdHQACgkQTuwUCDsYZdE7QACfeE0YBtDkgF8UCT98L/XrTijV
>> >>>> esUAn3+GtnSrAMEiS6s8bfiFJT4gVPU+
>> >>>> =fclj
>> >>>> -----END PGP SIGNATURE-----
>> >>>>
>> >>>> _______________________________________________
>> >>>> Viper-dev mailing list
>> >>>> Viper-dev@xxxxxxxxxx
>> >>>> http://fenics.org/mailman/listinfo/viper-dev
>>
>



-- 
Ola Skavhaug


Follow ups

References