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.
164 lines
4.7 KiB
C++
164 lines
4.7 KiB
C++
/**
|
|
*
|
|
* @file FITKUnstructuredFulidMeshVTK.h
|
|
* @brief 非结构化流体网格声明,包含边界网格
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*
|
|
*/
|
|
#ifndef _FITKUNSTRUCTMESH_FLUID_H___
|
|
#define _FITKUNSTRUCTMESH_FLUID_H___
|
|
|
|
#include "FITKInterfaceMeshAPI.h"
|
|
#include "FITK_Interface/FITKInterfaceModel/FITKElementList.h"
|
|
#include "FITK_Kernel/FITKCore/FITKAbstractDataManager.hpp"
|
|
#include "FITK_Kernel/FITKCore/FITKAbstractNDataObject.h"
|
|
#include <QList>
|
|
|
|
class vtkUnstructuredGrid;
|
|
|
|
namespace Interface
|
|
{
|
|
class FITKUnstructuredMeshVTK;
|
|
class FITKBoundaryMeshVTKManager;
|
|
|
|
/**
|
|
* @brief 非结构化流体网格,包含边界网格
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
class FITKInterfaceMeshAPI FITKUnstructuredFluidMeshVTK : public Core::FITKAbstractNDataObject
|
|
{
|
|
public:
|
|
/**
|
|
* @brief 构造函数
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
explicit FITKUnstructuredFluidMeshVTK();
|
|
/**
|
|
* @brief Destroy the FITKUnstructuredFluidMeshVTK object
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
virtual ~FITKUnstructuredFluidMeshVTK();
|
|
/**
|
|
* @brief 获取流体域网格
|
|
* @return FITKUnstructuredMeshVTK*
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
FITKUnstructuredMeshVTK* getFieldMesh();
|
|
/**
|
|
* @brief 获取边界网格管理器
|
|
* @return FITKBoundaryMeshVTKManager*
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
FITKBoundaryMeshVTKManager* getBoundaryMeshManager();
|
|
|
|
/**
|
|
* @brief 清空网格
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-26
|
|
*/
|
|
void clearMesh();
|
|
|
|
private:
|
|
/**
|
|
* @brief 流体域网格
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
FITKUnstructuredMeshVTK* _fieldMesh{};
|
|
/**
|
|
* @brief 边界网格
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
FITKBoundaryMeshVTKManager* _boundaryMeshManager{};
|
|
};
|
|
|
|
/**
|
|
* @brief 边界网格
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
class FITKInterfaceMeshAPI FITKBoundaryMeshVTK :public Core::FITKAbstractNDataObject,
|
|
public FITKElementList
|
|
{
|
|
FITKCLASS(Interface, FITKBoundaryMeshVTK);
|
|
public:
|
|
/**
|
|
* @brief Construct a new FITKBoundaryMeshVTK object
|
|
* @param[i] fieldmesh 流体域网格,使用其节点
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
explicit FITKBoundaryMeshVTK(FITKUnstructuredMeshVTK* fieldmesh);
|
|
/**
|
|
* @brief Destroy the FITKBoundaryMeshVTK object
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
virtual ~FITKBoundaryMeshVTK();
|
|
|
|
/**
|
|
* @brief 追加单元
|
|
* @param[i] element 单元指针
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
virtual void appendElement(FITKAbstractElement* element) override;
|
|
|
|
/**
|
|
* @brief 获取边界网格vtk数据集。
|
|
* @return 数据集
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
vtkUnstructuredGrid* getGrid();
|
|
|
|
private:
|
|
/**
|
|
* @brief 流体域网格
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
FITKUnstructuredMeshVTK* _fieldMesh{};
|
|
/**
|
|
* @brief VTK表示的网格
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
vtkUnstructuredGrid* _vtkDataSet{};
|
|
};
|
|
|
|
/**
|
|
* @brief 边界网格管理器
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
class FITKInterfaceMeshAPI FITKBoundaryMeshVTKManager
|
|
: public Core::FITKAbstractDataManager<FITKBoundaryMeshVTK>
|
|
{
|
|
public:
|
|
/**
|
|
* @brief Construct a new FITKBoundaryMeshVTKManager object
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
explicit FITKBoundaryMeshVTKManager() = default;
|
|
/**
|
|
* @brief Destroy the FITKBoundaryMeshVTKManager object
|
|
* @author libaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
virtual ~FITKBoundaryMeshVTKManager() = default;
|
|
|
|
};
|
|
}
|
|
|
|
|
|
#endif
|