|
|
/**
|
|
|
* 求解器-数值方法
|
|
|
*/
|
|
|
#ifndef CFDSTRUCTDATASOLVERNUMERICALMETHODEMANAGER_H
|
|
|
#define CFDSTRUCTDATASOLVERNUMERICALMETHODEMANAGER_H
|
|
|
|
|
|
#include "CFDStructDataManager_global.h"
|
|
|
#include <CFDStructDataManagerBase.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);
|
|
|
|
|
|
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
|