[Paraview] [Xdmf] Problem when loading parallel data (SOS and XDMF)

Jerry Clarke clarke at arl.army.mil
Wed Jul 30 16:15:17 EDT 2008


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