|
|
|
|
/**********************************************************************
|
|
|
|
|
* @file FITKFlowPhysicsHandlerFactory.h
|
|
|
|
|
* @brief 物理场数据搬运工厂
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-21
|
|
|
|
|
*********************************************************************/
|
|
|
|
|
#ifndef FITKFLOWPHYSICSHANDLERFACTORY_H_
|
|
|
|
|
#define FITKFLOWPHYSICSHANDLERFACTORY_H_
|
|
|
|
|
|
|
|
|
|
#include "FITKInterfaceFlowOFAPI.h"
|
|
|
|
|
#include "FITKOFEnum.hpp"
|
|
|
|
|
#include "FITK_Kernel/FITKAppFramework/FITKComponentInterface.h"
|
|
|
|
|
|
|
|
|
|
namespace Interface
|
|
|
|
|
{
|
|
|
|
|
class FITKAbstractOFSolver;
|
|
|
|
|
class FITKAbstractOFTurbulence;
|
|
|
|
|
class FITKOFBoundary;
|
|
|
|
|
/**
|
|
|
|
|
* @brief 物理场数据搬运工厂
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-21
|
|
|
|
|
*/
|
|
|
|
|
class FITKInterfaceFlowOFAPI FITKFlowPhysicsHandlerFactory : public AppFrame::FITKComponentInterface
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
explicit FITKFlowPhysicsHandlerFactory() = default;
|
|
|
|
|
virtual ~FITKFlowPhysicsHandlerFactory() = default;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 获取部件名称,不能重复 return "FITKFlowPhysicsHandlerFactory"
|
|
|
|
|
* @return QString
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-04
|
|
|
|
|
*/
|
|
|
|
|
virtual QString getComponentName() override;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置求解器
|
|
|
|
|
* @param[i] solverName 求解器名称
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-21
|
|
|
|
|
*/
|
|
|
|
|
void setSolver(QString solverName);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置湍流模型
|
|
|
|
|
* @param[i] turbulenceName 湍流模型名称
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-21
|
|
|
|
|
*/
|
|
|
|
|
void setTurbence(QString turbulenceName);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置SolutionSolver
|
|
|
|
|
* @param[i] index 变量标号
|
|
|
|
|
* @param[i] solutionSolverName solution名称
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-23
|
|
|
|
|
*/
|
|
|
|
|
void setSolutionSolver(int vIndex, QString solutionSolverName);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置TransportModel
|
|
|
|
|
* @param[i] phaseIndex
|
|
|
|
|
* @param[i] modelName
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void setTransportModel(int phaseIndex, QString modelName);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置边界
|
|
|
|
|
* @param[i] meshBoundaryId 网格边界Id
|
|
|
|
|
* @param[i] bType 边界类型
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void setBoundary(int meshBoundaryId, FITKOFSolverTypeEnum::FITKOFBoundaryType bType);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置边界类型
|
|
|
|
|
* @param[i] boundaryIndex
|
|
|
|
|
* @param[i] bType
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void setBoundaryType(int boundaryIndex, FITKOFSolverTypeEnum::FITKOFBoundaryType bType);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置变量边界类型
|
|
|
|
|
* @param[i] boundaryId
|
|
|
|
|
* @param[i] variableName
|
|
|
|
|
* @param[i] boundaryType
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void setVariableBoundaryType(int boundaryId, QString variableName, QString boundaryType);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 边界记录一下网格边界的名称,确保新边界网格复用
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-09-18
|
|
|
|
|
*/
|
|
|
|
|
void recordBoundaryMeshName();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 更新边界与边界网格的对应关系, 必须记录网格边界的名称才能使用
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-09-18
|
|
|
|
|
*/
|
|
|
|
|
void resetBoundaryMesh();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置几何补丁
|
|
|
|
|
* @param[i] geometryId
|
|
|
|
|
* @param[i] vNameList
|
|
|
|
|
* @param[i] type
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-09-04
|
|
|
|
|
*/
|
|
|
|
|
void setPatch(int geometryId, QStringList vNameList, FITKOFSolverInitialEnum::FITKPatchApplyObjectType type);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 筛选器-补丁类型
|
|
|
|
|
* @return QStringList
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-09-11
|
|
|
|
|
*/
|
|
|
|
|
QStringList filterPatchFieldsType();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 是否启用setFields
|
|
|
|
|
* @return bool
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-09-05
|
|
|
|
|
*/
|
|
|
|
|
bool isExecuteSetFields();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 清理物理数据
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-09-11
|
|
|
|
|
*/
|
|
|
|
|
void clearPhysicsData();
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置求解器动作 - 初始化物理场数据
|
|
|
|
|
* @param[i] solver
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void actionSetSolver(FITKAbstractOFSolver* solver);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置湍流模型动作
|
|
|
|
|
* @param[i] turbulence
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void actionSetTurbulence(FITKAbstractOFTurbulence* turbulence);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置物理场离散数据
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void setPhysicsDiscretization();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置物理场solution
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void setPhysicsSolution();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置物理场Initial
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void setPhysicsInitialConditions();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置物理场材料
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void setPhysicsTransportProp();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置物理场求解运行配置
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-31
|
|
|
|
|
*/
|
|
|
|
|
void setPhysicsRunControl();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置物理场求解工作条件
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-09-04
|
|
|
|
|
*/
|
|
|
|
|
void setPhysicsOperatingConditions();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 更新物理场离散变量数据
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void updatePhysicsDiscretization();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 更新物理场solution变量数据
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void updatePhysicsSolution();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 更新物理场initial变量数据
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void updatePhysicsInitialConditions();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 更新物理场Boundary变量数据
|
|
|
|
|
* @return void
|
|
|
|
|
* @author liuzhonghua (liuzhonghuaszch@163.com)
|
|
|
|
|
* @date 2024-08-26
|
|
|
|
|
*/
|
|
|
|
|
void updatePhysicsBoundaryConditions();
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif // !FITKFLOWPHYSICSHANDLERFACTORY_H_
|