|
|
/**********************************************************************
|
|
|
* @file FITKFlowOFHDF5AdaptorMesh.h
|
|
|
* @brief hdf5 网格数据读写接口
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
* @date 2024-09-13
|
|
|
*********************************************************************/
|
|
|
#ifndef __FITKFLOWOFHDF5ADAPTORMESH_R_H__
|
|
|
#define __FITKFLOWOFHDF5ADAPTORMESH_R_H__
|
|
|
|
|
|
#include "FITKFlowOFIOHDF5API.h"
|
|
|
#include "FITKFlowOFHDF5AbstractAdaptor.h"
|
|
|
#include "FITK_Kernel/FITKCore/FITKCoreMacros.h"
|
|
|
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"
|
|
|
|
|
|
//前置声明
|
|
|
ForwardDeclarNS(Interface, FITKUnstructuredFluidMeshVTK)
|
|
|
ForwardDeclarNS(Interface, FITKUnstructuredMesh)
|
|
|
ForwardDeclarNS(Interface, FITKElementList)
|
|
|
ForwardDeclarNS(Interface, FITKNodeList)
|
|
|
ForwardDeclarNS(H5, Group)
|
|
|
|
|
|
namespace IO
|
|
|
{
|
|
|
/**
|
|
|
* @brief HDF5 Geometry 读写适配器
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-05-30
|
|
|
*/
|
|
|
class FITKFLOWOFIOHDF5API FITKFlowOFHDF5AdaptorMesh : public FITKFlowOFHDF5AbstractAdaptor
|
|
|
{
|
|
|
public:
|
|
|
explicit FITKFlowOFHDF5AdaptorMesh() = default;
|
|
|
~FITKFlowOFHDF5AdaptorMesh() = default;
|
|
|
|
|
|
/**
|
|
|
* @brief 获取适配器数据类型名
|
|
|
* @return 适配器数据类型名
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-05-30
|
|
|
*/
|
|
|
QString getAdaptorClass() override;
|
|
|
|
|
|
/**
|
|
|
* @brief 适配器读取
|
|
|
* @return 状态 true成功, false失败
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-05-30
|
|
|
*/
|
|
|
bool adaptR() override;
|
|
|
|
|
|
/**
|
|
|
* @brief 适配器写出
|
|
|
* @return 状态 true成功, false失败
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-05-30
|
|
|
*/
|
|
|
bool adaptW() override;
|
|
|
|
|
|
private:
|
|
|
bool fieldMeshW();
|
|
|
bool fieldMeshR();
|
|
|
|
|
|
bool boundaryMeshW();
|
|
|
bool boundaryMeshR();
|
|
|
|
|
|
/**
|
|
|
* @brief 读取网格节点
|
|
|
* @param mesh 网格数据结构
|
|
|
* @param h5Group HDF5块结构
|
|
|
* @return 是否写出成功
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-05-29
|
|
|
*/
|
|
|
bool readNode(Interface::FITKNodeList* mesh, H5::Group& h5Group);
|
|
|
|
|
|
/**
|
|
|
* @brief 读取单元节点
|
|
|
* @param mesh 网格数据结构
|
|
|
* @param h5Group HDF5块结构
|
|
|
* @return 是否写出成功
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-05-29
|
|
|
*/
|
|
|
bool readElement(Interface::FITKElementList* mesh, H5::Group& h5Group);
|
|
|
|
|
|
|
|
|
/**
|
|
|
* @brief 写出网格节点
|
|
|
* @param mesh 网格数据结构
|
|
|
* @param h5Group HDF5块结构
|
|
|
* @return 是否写出成功
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-05-29
|
|
|
*/
|
|
|
bool writeNode(Interface::FITKNodeList* mesh, H5::Group& h5Group);
|
|
|
|
|
|
/**
|
|
|
* @brief 写出单元节点
|
|
|
* @param mesh 网格数据结构
|
|
|
* @param h5Group HDF5块结构
|
|
|
* @return 是否写出成功
|
|
|
* @author fulipeng (fulipengqd@yeah.net)
|
|
|
* @date 2024-05-29
|
|
|
*/
|
|
|
bool writeElement(Interface::FITKElementList* mesh, H5::Group& h5Group);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
/**
|
|
|
* @brief 网格数据
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
* @date 2024-09-09
|
|
|
*/
|
|
|
Interface::FITKUnstructuredFluidMeshVTK* _unstructuredMesh{};
|
|
|
};
|
|
|
|
|
|
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKUnstructuredFluidMeshVTK, FITKFlowOFHDF5AdaptorMesh)
|
|
|
}
|
|
|
|
|
|
|
|
|
#endif // !1
|
|
|
|