/********************************************************************** * @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