/** * 求解器-数值方法 */ #ifndef CFDSTRUCTDATASOLVERNUMERICALMETHODEMANAGER_H #define CFDSTRUCTDATASOLVERNUMERICALMETHODEMANAGER_H #include #include "CFDStructDataManager_global.h" class CUIConfig; class CFDSTRUCTDATAMANAGER_EXPORT CFDStructDataSolverNumericalMethodManager : public CFDStructDataManagerBase { Q_OBJECT public: explicit CFDStructDataSolverNumericalMethodManager(QObject *parent = nullptr); ~CFDStructDataSolverNumericalMethodManager(); CUIConfig* getParamUIConfig(); void saveDataToDom(rapidjson::Document &dom); private: // 生成Jameson的界面配置 CUIConfig* genJamesonModeUIConfig(); // 生成Roe界面配置 CUIConfig* genRoeModeUIConfig(); // 生成AUSMDY界面配置 CUIConfig* genAUSMDYModeUIConfig(); // 生成AUSMPWP界面配置 CUIConfig* genAUSMPWPModeUIConfig(); signals: private: // 通量格式 /** * @brief m_fluxFormat * * 0. Jameson * 1. Roe * 2. AUSMDY * 3. AUSMPWP */ int m_fluxFormat = 0; // 二阶人工粘性 double m_secondOrderArtificialViscosity = 0.5; // 四阶人工粘性 double m_fourthOrderArtificialViscosity = 0.5; // 空间精度 /** * @brief m_spaceAccuracy 0.一阶迎风 1.二阶迎风差分 2.二阶迎风偏置 3.三阶迎风偏置 */ int m_spaceAccuracy = 2; // 限制器 /** * @brief m_limiter * 0.none * 1.Vanalbda 2.Minmod */ int m_limiter = 0; // 时间格式 /** * @brief m_timeFormat * 0-隐式 * 1-隐式二阶差分 */ int m_timeFormat = 0; // 迭代方法 /** * @brief m_iterationMethod * 0-LUSGS */ int m_iterationMethod = 0; // 松弛因子 double m_relaxationFactor = 0.5; // 多重网格层数 int m_multigridLevels = 0; // 循环类型 /** * @brief m_cycleType * 1-V循环 2-W循环 */ int m_cycleType = 0; // 粗网格CFL数 double m_coarseGridCFL = 1.0; // 细网格CFL数 double m_fineGridCFL = 1.0; // 湍流CFL数 double m_turbulentCFL = 1.0; //熵修正类型 /** * @brief m_EntropyCorrectionType * 0-Harten-Hyman * 1-Harten-Yee * */ int m_EntropyCorrectionType; //收敛稳定化 int m_ConvergenceStabilization = 0; }; #endif // CFDSTRUCTDATASOLVERNUMERICALMETHODMANAGER_H