/** * * @file FITKUnstructuredMesh.h * @brief 非结构网格声明 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-07 * */ #ifndef __FITKABSTRUCTUNSTRUCTED_MESH_H__ #define __FITKABSTRUCTUNSTRUCTED_MESH_H__ #include "FITKInterfaceModelAPI.h" #include "FITKNodeList.h" #include "FITKElementList.h" #include "FITKAbstractMesh.h" namespace Interface { /** * @brief 非结构化网格 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-07 */ class FITKInerfaceModelAPI FITKUnstructuredMesh : public FITKAbstractMesh, public FITKNodeList, public FITKElementList { public: /** * @brief Construct a new FITKUnstructuredMesh object * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-07 */ explicit FITKUnstructuredMesh(); /** * @brief Destroy the FITKUnstructuredMesh object * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-03-07 */ virtual ~FITKUnstructuredMesh(); /** * @brief 获取模型类型 * @return AbsModelType * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-02-27 */ virtual FITKModelEnum::AbsModelType getAbsModelType() override; /** * @brief 更新数据 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-02-27 */ virtual void update() override; /** * @brief 获取网格维度 * @return FITKModelEnum::FITKMeshDim * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-04-03 */ virtual FITKModelEnum::FITKMeshDim getMeshDim() override; /** * @brief 评判网格质量 * @param[i] eleIndex 单元索引 * @return FITKElemntQuality * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-23 */ FITKElemntQuality checkElementQuality(const int eleIndex); /** * @brief 获取单元方向,支持线单元与壳单元 * @param[o] dir 单元方向 * @param[i] id 单元ID * @return bool 是否获取成功 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-09 */ bool getElementDirection(double* dir , const int id); private: /** * @brief 计算边的长度 * @param[i] edge 边的节点ID * @return double * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-23 */ double calMeshEdgeLength(const QList & edge); /** * @brief 获取线单元方向 * @param[o] dir 单元方向 * @param[i] ele 单元对象 * @return bool 是否获取成功 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-09 */ bool getLineEleDirection(double* dir, FITKAbstractElement* ele); /** * @brief 获取壳单元方向 * @param[o] dir 单元方向 * @param[i] ele 单元对象指针 * @return bool 是否获取成功 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-09 */ bool getShellEleDirection(double* dir, FITKAbstractElement* ele); }; } #endif