You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/FITK_Component/FITKFlowOFIOHDF5/FITKFlowOFHDF5AdaptorMesh.h

124 lines
3.6 KiB
C

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