如何为Paraview的XDMF + HDF5文件写一个不连续的galerkin字段(DG-FiniteElementFunction)?

时间:2018-06-08 12:26:42

标签: xml matlab hdf5 paraview

我正在尝试为Matlab开发一个xdmf + hdf5 API,以便将有限元数据转换为Paraview的可读格式。虽然当我在同一个文件中写入不同的字段时遇到一些问题,特别是当我尝试可视化来自高斯点的字段时。

到目前为止,我能够编写节点数据{Scalar,Vector,Tensor和Tensor6}和单元数据{Scalar,Vector,Tensor和Tensor6},如下所示:

<Attribute Name="Phi" Center="Node" AttributeType="Scalar">
    <DataItem Format="HDF" NumberType="Float" Precision="8" Dimensions="16">
        h5Data_test4_v1.h5:/FIELDS/1/processor1/Phi
    </DataItem>
</Attribute>

<Attribute Name="Material" Center="Cell" AttributeType="Scalar">
    <DataItem Format="HDF" NumberType="Float" Precision="8" Dimensions="18">
        h5Data_test4_v1.h5:/FIELDS/1/processor1/Material
    </DataItem>
</Attribute>

根据http://www.xdmf.org/index.php/XDMF_Model_and_Format对有限元函数的要求,我已经实现了一个Matlab函数来将不连续的galerkin(DG)字段写入xdmf文件,如下所示:

<Attribute ItemType="FiniteElementFunction" ElementFamily="DG" ElementDegree="1" ElementCell="triangle" Name="Sclng_cell" Center="Other" AttributeType="Scalar">
    <DataItem Name="Index" Format="HDF" NumberType="Int" Precision="8" Dimensions="18 3">
        h5Data_test4_v2.h5:/FIELDS/1/processor1/Sclng_cell/Sclng_cell_Dofmap
    </DataItem>
    <DataItem Name="Value" Format="HDF" DataType="Float" Precision="8" Dimensions="54">
        h5Data_test4_v2.h5:/FIELDS/1/processor1/Sclng_cell/Sclng_cell_Valmap
    </DataItem>
</Attribute>

这个字段来自于正交高斯点到节点的插值,它应该用有限元形状函数可视化。

如果我只写这个字段,Paraview会正确读取信息,我能够看到不连续的字段。但是,当我在同一个xdmf文件(节点字段和DG字段)中写入多个字段时,它会抛出错误,表示尺寸与元素数量不匹配。

我在互联网上搜索过,但XDMF.org提供的信息很差。我找不到任何帮助。我应该如何将“FiniteElementFunction”类型的信息传递给Paraview?我做错了吗?

我在Windows 10和Matlab 2016b上使用Paraview 5.5.1 64位。

提前致谢。

0 个答案:

没有答案