[Paraview] [Xdmf] Problem when loading parallel data (SOS and XDMF)
Renato N. Elias
rnelias at nacad.ufrj.br
Wed Jul 30 16:32:05 EDT 2008
*It seems that "spatial" collection of "temporal" grids is problematic*
It's really a very important note at this stage of Xdmf implementation
in ParaView. I naively found that both options would be equivalent (and
should be as you pointed out) and had bad luck in choosing the wrong one
(Murphy's law, probably).
Now, I'm afraid that without using the XInclude clauses and without
wildcards the master Xdmf file will be really huge. 1000 timesteps
running on 1000 CPU's will give rise to a XML file with at least 1E6
lines. Parse 1E6 ASCII lines does not seem to be a good choice.
Thanks so much for your help Jerry.
Renato.
Jerry Clarke wrote:
> Renato,
>
> I have a temporary work around while I'm investigating.
> It seems that "spatial" collection of "temporal" grids is
> problematic. But a "temporal" collection of "spatial" grids
> works fine. I re-wrote your collection file with a little more
> xpointer magic and this will animate correctly in paraview.
>
> I left your individual files intact but I had to move the
> time element into the spatial collection grid for paraview
> to read it correctly.
>
> Here's the xml (xpointer indexes are 1 based)
> -----------------------
> <?xml version="1.0" ?>
> <Xdmf xmlns:xi="http://www.w3.org/2001/XInclude" Version="2.0">
> <Domain>
> <Grid Name="cav_000_collection" GridType="Collection"
> CollectionType="Temporal">
> <Grid Name="cav1" GridType="Collection" CollectionType="Spatial">
> <Time Type="Single" Value=" 0.0"/>
> <xi:include href="cav_4_000.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[1])" />
> <xi:include href="cav_4_001.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[1])" />
> <xi:include href="cav_4_002.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[1])" />
> <xi:include href="cav_4_003.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[1])" />
> </Grid>
> <Grid Name="cav2" GridType="Collection" CollectionType="Spatial">
> <Time Type="Single" Value=" 0.1"/>
> <xi:include href="cav_4_000.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[2])" />
> <xi:include href="cav_4_001.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[2])" />
> <xi:include href="cav_4_002.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[2])" />
> <xi:include href="cav_4_003.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[2])" />
> </Grid>
> <Grid Name="cav3" GridType="Collection" CollectionType="Spatial">
> <Time Type="Single" Value=" 1.1"/>
> <xi:include href="cav_4_000.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[3])" />
> <xi:include href="cav_4_001.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[3])" />
> <xi:include href="cav_4_002.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[3])" />
> <xi:include href="cav_4_003.xmf"
> xpointer="xpointer(//Xdmf/Domain/Grid/Grid[3])" />
> </Grid>
> </Grid>
> </Domain>
> </Xdmf>
>
> I'm still investigating what's going wrong with "spatial" collections of
> "temporal" grids.
>
> Jerry
>
>
>
>
> Jerry Clarke wrote:
>> Renato,
>>
>> OK, first mystery is solved. cav_4_full.xmf had wrong dimensions in
>> grids cav_00[1,2,3]. I copied the first grid from each individual file
>> and it worked. Also XDMF_TET should have been "Tetrahedron" like it
>> was in the individual files.
>>
>> Now on to the XInclude file .....
>>
>> Here is new car_4_full.xmf that works in Paraview 3.3
>> --------------------------------------------------------
>> <?xml version="1.0" ?>
>> <!-- <!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []> -->
>> <Xdmf xmlns:xi="http://www.w3.org/2001/XInclude" Version="2.0">
>> <Domain>
>> <Grid Name= "cav" GridType="Collection" CollectionType="Spatial">
>> <Grid Name="cav_000" Type="Uniform">
>> <Time Type="Single" Value=" 0.00000000"/>
>> <Topology Type="Tetrahedron" NumberOfElements=" 27215
>> " BaseOffset="1">
>> <DataItem Dimensions=" 108860 " NumberType="Int"
>> Format="HDF">cav_4_000_00000.h5:/incid</DataItem>
>> </Topology>
>> <Geometry Type="XYZ">
>> <DataItem Dimensions=" 18726" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_000_00000.h5:/coords</DataItem>
>> </Geometry>
>> <Attribute Name="velocity" AttributeType="Vector"
>> Center="Node">
>> <DataItem Dimensions=" 18726" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_000_00000.h5:/velocity</DataItem>
>> </Attribute>
>> <Attribute Name="pressure" AttributeType="Scalar"
>> Center="Node">
>> <DataItem Dimensions=" 6242" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_000_00000.h5:/pressure</DataItem>
>> </Attribute>
>> </Grid>
>>
>> <Grid Name="cav_001" Type="Uniform">
>> <Time Type="Single" Value=" 0.00000000"/>
>> <Topology Type="Tetrahedron" NumberOfElements=" 26616
>> " BaseOffset="1">
>> <DataItem Dimensions=" 106464 " NumberType="Int"
>> Format="HDF">cav_4_001_00000.h5:/incid</DataItem>
>> </Topology>
>> <Geometry Type="XYZ">
>> <DataItem Dimensions=" 18510" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_001_00000.h5:/coords</DataItem>
>> </Geometry>
>> <Attribute Name="velocity" AttributeType="Vector"
>> Center="Node">
>> <DataItem Dimensions=" 18510" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_001_00000.h5:/velocity</DataItem>
>> </Attribute>
>> <Attribute Name="pressure" AttributeType="Scalar"
>> Center="Node">
>> <DataItem Dimensions=" 6170" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_001_00000.h5:/pressure</DataItem>
>> </Attribute>
>> </Grid>
>>
>> <Grid Name="cav_002" Type="Uniform">
>> <Time Type="Single" Value=" 0.00000000"/>
>> <Topology Type="Tetrahedron" NumberOfElements=" 27709
>> " BaseOffset="1">
>> <DataItem Dimensions=" 110836 " NumberType="Int"
>> Format="HDF">cav_4_002_00000.h5:/incid</DataItem>
>> </Topology>
>> <Geometry Type="XYZ">
>> <DataItem Dimensions=" 18849" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_002_00000.h5:/coords</DataItem>
>> </Geometry>
>> <Attribute Name="velocity" AttributeType="Vector"
>> Center="Node">
>> <DataItem Dimensions=" 18849" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_002_00000.h5:/velocity</DataItem>
>> </Attribute>
>> <Attribute Name="pressure" AttributeType="Scalar"
>> Center="Node">
>> <DataItem Dimensions=" 6283" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_002_00000.h5:/pressure</DataItem>
>> </Attribute>
>> </Grid>
>>
>>
>> <Grid Name="cav_003" Type="Uniform">
>> <Time Type="Single" Value=" 0.00000000"/>
>> <Topology Type="Tetrahedron" NumberOfElements=" 26564
>> " BaseOffset="1">
>> <DataItem Dimensions=" 106256 " NumberType="Int"
>> Format="HDF">cav_4_003_00000.h5:/incid</DataItem>
>> </Topology>
>> <Geometry Type="XYZ">
>> <DataItem Dimensions=" 18498" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_003_00000.h5:/coords</DataItem>
>> </Geometry>
>> <Attribute Name="velocity" AttributeType="Vector"
>> Center="Node">
>> <DataItem Dimensions=" 18498" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_003_00000.h5:/velocity</DataItem>
>> </Attribute>
>> <Attribute Name="pressure" AttributeType="Scalar"
>> Center="Node">
>> <DataItem Dimensions=" 6166" NumberType="Float"
>> Precision="8" Format="HDF">cav_4_003_00000.h5:/pressure</DataItem>
>> </Attribute>
>> </Grid>
>>
>>
>> </Grid>
>> </Domain>
>> </Xdmf>
>>
>>
>> Renato N. Elias wrote:
>>> Some progress here...
>>>
>>> Ok, I named all grids with different names and tested with and
>>> without the XInclude clause.
>>>
>>> *Without XInclude* I've got a catastrophic error and PV closed MPI
>>> connection. The output message was:
>>> ERROR: In
>>> ..\..\..\ParaView3_CVS\Servers\Common\vtkServerConnection.cxx, line 67
>>>
>>> vtkServerConnection (07981BF0): Server Connection Closed!
>>>
>>> ERROR: In
>>> ..\..\..\ParaView3_CVS\Servers\ServerManager\vtkSMArraySelectionInformationHelper.cxx,
>>> line 79
>>>
>>> vtkSMArraySelectionInformationHelper (07804578): Error getting array
>>> settings from server.
>>>
>>> ERROR: In
>>> ..\..\..\ParaView3_CVS\Servers\ServerManager\vtkSMXDMFInformationHelper.cxx,
>>> line 135
>>>
>>> vtkSMXDMFInformationHelper (07C7BBD8): Error getting domains from
>>> server.
>>>
>>> (and much more...)
>>>
>>>
>>> *Using XInclude* I've got:
>>> XDMF Error in
>>> ..\..\..\..\ParaView3_CVS\Utilities\Xdmf2\vtk\vtkXdmfReader.cxx line
>>> 2129 (Unknown Topology Type = 0)
>>> XDMF Error in
>>> ..\..\..\..\ParaView3_CVS\Utilities\Xdmf2\vtk\vtkXdmfReader.cxx line
>>> 2129 (Unknown Topology Type = 0)
>>> XDMF Error in
>>> ..\..\..\..\ParaView3_CVS\Utilities\Xdmf2\vtk\vtkXdmfReader.cxx line
>>> 2129 (Unknown Topology Type = 0)
>>> XDMF Error in
>>> ..\..\..\..\ParaView3_CVS\Utilities\Xdmf2\vtk\vtkXdmfReader.cxx line
>>> 2129 (Unknown Topology Type = 0)
>>>
>>> Easy to understand if we look the source code. vtkXdmfReader.cxx was
>>> expecting XDMF_TET and my file had Tetrahedron. Quite weird since it
>>> works fine when running in serial mode, or loading the model pieces
>>> one by one. In fact, it seems like a bug. Nevertheless, I've made
>>> the substitutions I tried again. Now, I have the same error message
>>> that I've got in the first case (without the XInclude).
>>>
>>> Jerry, I've made my files available in
>>> http://www.nacad.ufrj.br/~rnelias/transfer/xdfm-test.zip (13.4 MB).
>>> Just to make the debug process easier. It seems that the Xdmf
>>> support in ParaView is still a bit fragile.
>>>
>>> Renato.
>>>
>>> p.s.: I wildcard would help us a lot when writing transient files ;o)
>>>
>>> Jerry Clarke wrote:
>>>> Renato,
>>>>
>>>> I think it is a bug .... If the Collection Grid does not have
>>>> a "Name" nothing is read. Just give your Collection Grid a Name
>>>> and it should work.
>>>>
>>>> Here's an example that works :
>>>>
>>>> Spatial.xmf :::
>>>> <?xml version="1.0" ?>
>>>> <Xdmf xmlns:xi="http://www.w3.org/2001/XInclude" Version="2.0">
>>>> <Domain>
>>>> <Grid Name="MyCollection" GridType="Collection"
>>>> CollectionType="Spatial" >
>>>> <xi:include href="cube1.xmf"
>>>> xpointer="xpointer(//Xdmf/Domain/Grid)" />
>>>> <xi:include href="cube2.xmf"
>>>> xpointer="xpointer(//Xdmf/Domain/Grid)" />
>>>> </Grid>
>>>> </Domain>
>>>> </Xdmf>
>>>> ---------------------------------------------------
>>>> cube1.xmf :::
>>>> <?xml version="1.0" ?>
>>>> <Xdmf>
>>>> <Domain>
>>>> <Grid Name="one">
>>>> <Topology Type="3DCORECTMESH" Dimensions="2 2 2"/>
>>>> <Geometry Type="ORIGIN_DXDYDZ">
>>>> <DataItem DataType="Float" Dimensions="3" Format="XML">
>>>> 0.0 0.0 0.0
>>>> </DataItem>
>>>> <DataItem DataType="Float" Dimensions="3" Format="XML">
>>>> 1.0 1.0 1.0
>>>> </DataItem>
>>>> </Geometry>
>>>> </Grid>
>>>> </Domain>
>>>> </Xdmf>
>>>> --------------------------------------------------------
>>>> cube2.xmf :::
>>>> <?xml version="1.0" ?>
>>>> <Xdmf>
>>>> <Domain>
>>>> <Grid Name="two">
>>>> <Topology Type="3DCORECTMESH" Dimensions="2 2 2"/>
>>>> <Geometry Type="ORIGIN_DXDYDZ">
>>>> <DataItem DataType="Float" Dimensions="3" Format="XML">
>>>> 5.0 0.0 0.0
>>>> </DataItem>
>>>> <DataItem DataType="Float" Dimensions="3" Format="XML">
>>>> 1.0 1.0 1.0
>>>> </DataItem>
>>>> </Geometry>
>>>> </Grid>
>>>> </Domain>
>>>> </Xdmf>
>>>>
>>>> Renato N. Elias wrote:
>>>>> So, I suppose it's not possible to load parallel xdmf files in PV
>>>>> yet :o(
>>>>>
>>>>> Renato.
>>>>>
>>>>> Jerry Clarke wrote:
>>>>>> I think what is happening is that the Xinclude/XPointer
>>>>>> interfaces are more particular. Technically, if the
>>>>>> XML specifies a DTD it should be there, but it had been ignored
>>>>>> in the
>>>>>> past. So I guess we're all doing it wrong, technically.
>>>>>>
>>>>>> Jerry
>>>>>>
>>>>>> Renato N. Elias wrote:
>>>>>>> Ok, I commented all <!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []> clauses
>>>>>>> and now PV does not complain about DTD anymore but nothing is
>>>>>>> loaded :o(
>>>>>>>
>>>>>>> Am I doing something wrong? I can load the domain pieces
>>>>>>> individually which make me believe that the XDMF files are correct.
>>>>>>>
>>>>>>> Renato.
>>>>>>>
>>>>>>>
>>>>>>> Jerry Clarke wrote:
>>>>>>>> Renato,
>>>>>>>>
>>>>>>>> I think I've seen this before. The XML parser is trying to
>>>>>>>> validate
>>>>>>>> the XML.
>>>>>>>>
>>>>>>>> As a test, try removing "<!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>"
>>>>>>>> from the
>>>>>>>> xml file or creating an empty Xdmf.dtd (I'll dig up the actual
>>>>>>>> DTD).
>>>>>>>>
>>>>>>>> Jerry
>>>>>>>>
>>>>>>>>
>>>>>>>> Renato N. Elias wrote:
>>>>>>>>> Oops, my mistake Berk. It's not the first time I mismatch
>>>>>>>>> versions... (it's easy to get confused when you have 6
>>>>>>>>> different PV versions installed).
>>>>>>>>>
>>>>>>>>> Ok, now I can load SOS but it seems that time support is not
>>>>>>>>> available yet (besides some important parallel filters such as
>>>>>>>>> "clean to grid"). Is it correct?!
>>>>>>>>>
>>>>>>>>> For the XDMF file I've had no success. I've tried to load the
>>>>>>>>> following file:
>>>>>>>>>
>>>>>>>>> <?xml version="1.0" ?>
>>>>>>>>> <!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
>>>>>>>>> <Xdmf xmlns:xi="http://www.w3.org/2001/XInclude" Version="2.0">
>>>>>>>>> <Domain>
>>>>>>>>> <Grid GridType="Collection" CollectionType="Spatial">
>>>>>>>>> <xi:include href="cav_4_000.xmf"
>>>>>>>>> xpointer="xpointer(//Xdmf/Domain/Grid)" />
>>>>>>>>> <xi:include href="cav_4_001.xmf"
>>>>>>>>> xpointer="xpointer(//Xdmf/Domain/Grid)" />
>>>>>>>>> <xi:include href="cav_4_002.xmf"
>>>>>>>>> xpointer="xpointer(//Xdmf/Domain/Grid)" />
>>>>>>>>> <xi:include href="cav_4_003.xmf"
>>>>>>>>> xpointer="xpointer(//Xdmf/Domain/Grid)" />
>>>>>>>>> </Grid>
>>>>>>>>> </Domain>
>>>>>>>>> </Xdmf>
>>>>>>>>>
>>>>>>>>> Started PV client and launched PV server with the command
>>>>>>>>> (mpiexec -n 4 pvserver -rc -ch=localhost) and got the
>>>>>>>>> following error:
>>>>>>>>>
>>>>>>>>> file:///C%3A/users/Renato/svn/EdgeCFD-HEAD/bin/cav31/P2P/cav_4_000.xmf:2:
>>>>>>>>> I/O wa
>>>>>>>>> rning : failed to load external entity
>>>>>>>>> "file:///C%3A/users/Renato/svn/EdgeCFD-HEAD/bin/cav31/P2P/Xdmf.dtd"
>>>>>>>>>
>>>>>>>>> <!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
>>>>>>>>> ^
>>>>>>>>> file:///C%3A/users/Renato/svn/EdgeCFD-HEAD/bin/cav31/P2P/cav_4_001.xmf:2:
>>>>>>>>> I/O wa
>>>>>>>>> rning : failed to load external entity
>>>>>>>>> "file:///C%3A/users/Renato/svn/EdgeCFD-HEAD/bin/cav31/P2P/Xdmf.dtd"
>>>>>>>>>
>>>>>>>>> <!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
>>>>>>>>> ^
>>>>>>>>> file:///C%3A/users/Renato/svn/EdgeCFD-HEAD/bin/cav31/P2P/cav_4_002.xmf:2:
>>>>>>>>> I/O wa
>>>>>>>>> rning : failed to load external entity
>>>>>>>>> "file:///C%3A/users/Renato/svn/EdgeCFD-HEAD/bin/cav31/P2P/Xdmf.dtd"
>>>>>>>>>
>>>>>>>>> <!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
>>>>>>>>> ^
>>>>>>>>> file:///C%3A/users/Renato/svn/EdgeCFD-HEAD/bin/cav31/P2P/cav_4_003.xmf:2:
>>>>>>>>> I/O wa
>>>>>>>>> rning : failed to load external entity
>>>>>>>>> "file:///C%3A/users/Renato/svn/EdgeCFD-HEAD/bin/cav31/P2P/Xdmf.dtd"
>>>>>>>>>
>>>>>>>>> <!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
>>>>>>>>> ^
>>>>>>>>> file:///C%3A/users/Renato/svn/EdgeCFD-HEAD/bin/cav31/P2P/cav_4_000.xmf:2:
>>>>>>>>> I/O wa
>>>>>>>>> rning : failed to load external entity
>>>>>>>>> "file:///C%3A/users/Renato/svn/EdgeCFD-HEAD/bin/cav31/P2P/Xdmf.dtd"
>>>>>>>>>
>>>>>>>>> <!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
>>>>>>>>>
>>>>>>>>> ...
>>>>>>>>>
>>>>>>>>> I also tried substituting the "xi:include..." statements by
>>>>>>>>> the corresponding XML extended portions. The model was not
>>>>>>>>> loaded, but the error message disappeared ;o)
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>>
>>>>>>>>> Renato.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Berk Geveci wrote:
>>>>>>>>>> I am pretty sure this is due to client/server version
>>>>>>>>>> incompatibility.
>>>>>>>>>>
>>>>>>>>>> -berk
>>>>>>>>>>
>>>>>>>>>> On Tue, Jul 29, 2008 at 3:42 PM, Renato N. Elias
>>>>>>>>>> <rnelias at nacad.ufrj.br> wrote:
>>>>>>>>>>
>>>>>>>>>>> I'm trying to load XDMF and Ensight SOS parallel data in PV3
>>>>>>>>>>> (CVS's HEAD)
>>>>>>>>>>> which is returning me the following error message:
>>>>>>>>>>>
>>>>>>>>>>> ERROR: In
>>>>>>>>>>> C:\berk\ReleaseBuilds\ParaView3\Servers\Common\vtkPVDataInformation.cxx,
>>>>>>>>>>>
>>>>>>>>>>> line 991
>>>>>>>>>>> vtkPVDataInformation (062A6ED8): Error parsing bounds.
>>>>>>>>>>> (...It's funny read error messages pointing to Berk's paths
>>>>>>>>>>> :oD )
>>>>>>>>>>>
>>>>>>>>>>> The same problem occur with SOS and XDMF as well. Any hint?
>>>>>>>>>>>
>>>>>>>>>>> Regards
>>>>>>>>>>>
>>>>>>>>>>> Renato.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> ParaView mailing list
>>>>>>>>>>> ParaView at paraview.org
>>>>>>>>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> ParaView mailing list
>>>>>>>>> ParaView at paraview.org
>>>>>>>>> http://www.paraview.org/mailman/listinfo/paraview
>>
>> _______________________________________________
>> Xdmf mailing list
>> Xdmf at lists.kitware.com
>> https://www.kitware.com/cgi-bin/mailman/listinfo/xdmf
>
More information about the ParaView
mailing list