/** * 求解器-数值方法 */ #ifndef CFDSTRUCTDATASOLVERNUMERICALMETHODEMANAGER_H #define CFDSTRUCTDATASOLVERNUMERICALMETHODEMANAGER_H #include "CFDStructDataManager_global.h" #include class CUIConfig; class CFDSTRUCTDATAMANAGER_EXPORT CFDStructDataSolverNumericalMethodManager : public CFDStructDataManagerBase { Q_OBJECT public: explicit CFDStructDataSolverNumericalMethodManager(QObject *parent = nullptr); ~CFDStructDataSolverNumericalMethodManager(); CUIConfig *getParamUIConfig(); void saveDataToDom(rapidjson::Document &dom); void readDataFromDom(rapidjson::Document &dom); private: // 生成Jameson的界面配置 CUIConfig *genJamesonModeUIConfig(); // 生成Roe界面配置 CUIConfig *genRoeModeUIConfig(); // 生成AUSMDY界面配置 CUIConfig *genAUSMDYModeUIConfig(); // 生成AUSMPWP界面配置 CUIConfig *genAUSMPWPModeUIConfig(); signals: private: // 时间离散部分的配置 CUIConfig *m_TimeDispersionGroupConfig; // 初始化时间离散部分的配置 void initTimeDespersionGroupConfig(); // 通量格式 /** * @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-隐式二阶差分 * * ---------------上面是原来的--------------------- * ---------------下面是新的--------------------- * 在时间格式是*定常*的时候 * 0-隐式 * 1-显式 * * 在时间格式是*非定常*的时候 * 0-隐式二阶差分 */ int m_timeFormat = 0; // 迭代方法 /** * @brief m_iterationMethod * 0-LUSGS * * ---------old---------- * ---------new----------- * 选择为隐式或隐式二阶差分的时候, * 仅有一个选项,LUSGS,在json中对应值为2 * * 选择显式的时候 * 仅有一个选项,五级龙格库塔,在json中对应值为1 * */ 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