diff --git a/CFDStruct/CFDStructDataManager/CFDStructDataSolverKvislManager.cpp b/CFDStruct/CFDStructDataManager/CFDStructDataSolverKvislManager.cpp index baf2265..a4b3aca 100644 --- a/CFDStruct/CFDStructDataManager/CFDStructDataSolverKvislManager.cpp +++ b/CFDStruct/CFDStructDataManager/CFDStructDataSolverKvislManager.cpp @@ -26,12 +26,30 @@ CUIConfig *CFDStructDataSolverKvislManager::getParamUIConfig() return genLaminarUIConfig(); } if(m_Model == 2) { + if(m_RNSModel == 0) + return genRANSSAUIConfig(); + if(m_RNSModel == 1) + return genRANSUIMentersConfig(); + if(m_RNSModel == 2) + return genRANSKEUIConfig(); return genRANSSAUIConfig(); } if(m_Model == 3) { + if(m_RNSModel == 0) + return genDESSAUIConfig(); + if(m_RNSModel == 1) + return genDESMentersUIConfig(); + if(m_RNSModel == 2) + m_RNSModel = 0; return genDESSAUIConfig(); } if(m_Model == 4) { + if(m_RNSModel == 0) + return genCLESUIConfig(); + if(m_RNSModel == 1) + return genCLESMentersUIConfig(); + if(m_RNSModel == 2) + m_RNSModel = 0; return genCLESUIConfig(); } return this->genInviscidUIConfig(); @@ -121,6 +139,9 @@ CUIConfig *CFDStructDataSolverKvislManager::genRANSSAUIConfig() {"type", "RadioComponent"}, // 组:RANS模型 {"name", tr("RANS Model")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_RNSModel)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, }, { new CUIConfig({{"type", "RadioButton"}, // 按钮:S-A(一方程) @@ -134,6 +155,9 @@ CUIConfig *CFDStructDataSolverKvislManager::genRANSSAUIConfig() {"type", "RadioComponent"}, // 组:S-A类型 {"name", tr("S-A Type")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_SAType)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, }, { new CUIConfig({{"type", "RadioButton"}, // 按钮:standard @@ -173,6 +197,10 @@ CUIConfig *CFDStructDataSolverKvislManager::genRANSUIMentersConfig() {"type", "RadioComponent"}, // 组:RANS模型 {"name", tr("RANS Model")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_RNSModel)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, + }, { new CUIConfig({{"type", "RadioButton"}, // 按钮:S-A(一方程) @@ -186,6 +214,9 @@ CUIConfig *CFDStructDataSolverKvislManager::genRANSUIMentersConfig() {"type", "RadioComponent"}, // 组:κ-ω类型 {"name", tr("κ-ω Type")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_kwType)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, }, { new CUIConfig({{"type", "RadioButton"}, // 按钮:standard @@ -223,6 +254,10 @@ CUIConfig *CFDStructDataSolverKvislManager::genRANSKEUIConfig() {"type", "RadioComponent"}, // 组:RANS模型 {"name", tr("RANS Model")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_RNSModel)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, + }, { new CUIConfig({{"type", "RadioButton"}, // 按钮:S-A(一方程) @@ -236,6 +271,9 @@ CUIConfig *CFDStructDataSolverKvislManager::genRANSKEUIConfig() {"type", "RadioComponent"}, // 组:κ-ε类型 {"name", tr("κ-ε Type")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_keType)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, }, { new CUIConfig({{"type", "RadioButton"}, // 按钮:standard @@ -273,6 +311,9 @@ CUIConfig *CFDStructDataSolverKvislManager::genDESSAUIConfig() {"type", "RadioComponent"}, // 组:DES {"name", tr("DES Model")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_DESModel)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, }, { new CUIConfig({{"type", "RadioButton"}, // 按钮:DES @@ -286,6 +327,10 @@ CUIConfig *CFDStructDataSolverKvislManager::genDESSAUIConfig() {"type", "RadioComponent"}, // 组:RANS模型 {"name", tr("RANS Model")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_RNSModel)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, + }, { new CUIConfig({{"type", "RadioButton"}, // 按钮:S-A(一方程) @@ -295,7 +340,10 @@ CUIConfig *CFDStructDataSolverKvislManager::genDESSAUIConfig() }), new CUIConfig({{"type", "RadioComponent"}, // 组:S-A类型 {"name", tr("S-A Type")}, - {"widget", "GroupBox"}}, + {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_SAType)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},}, { new CUIConfig({{"type", "RadioButton"}, // 按钮:standard {"name", tr("standard")}}), @@ -330,7 +378,10 @@ CUIConfig *CFDStructDataSolverKvislManager::genDESMentersUIConfig() }), new CUIConfig({{"type", "RadioComponent"}, // 组:DES {"name", tr("DES Model")}, - {"widget", "GroupBox"}}, + {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_DESModel)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},}, { new CUIConfig({{"type", "RadioButton"}, // 按钮:DES {"name", tr("DES")}}), @@ -341,7 +392,11 @@ CUIConfig *CFDStructDataSolverKvislManager::genDESMentersUIConfig() }), new CUIConfig({{"type", "RadioComponent"}, // 组:RANS模型 {"name", tr("RANS Model")}, - {"widget", "GroupBox"}}, + {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_RNSModel)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, + }, { new CUIConfig({{"type", "RadioButton"}, // 按钮:S-A(一方程) {"name", tr("S-A")}}), @@ -350,7 +405,10 @@ CUIConfig *CFDStructDataSolverKvislManager::genDESMentersUIConfig() }), new CUIConfig({{"type", "RadioComponent"}, // 组:κ-ω类型 {"name", tr("κ-ω Type")}, - {"widget", "GroupBox"}}, + {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_kwType)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},}, { new CUIConfig({{"type", "RadioButton"}, // 按钮:SST {"name", tr("SST")}}), @@ -397,6 +455,10 @@ CUIConfig *CFDStructDataSolverKvislManager::genCLESUIConfig() {"type", "RadioComponent"}, // 组:RANS模型 {"name", tr("RANS Model")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_RNSModel)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, + }, { new CUIConfig({ @@ -412,6 +474,9 @@ CUIConfig *CFDStructDataSolverKvislManager::genCLESUIConfig() {"type", "RadioComponent"}, // 组:S-A类型 {"name", tr("S-A Type")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_SAType)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, }, { new CUIConfig({ @@ -465,6 +530,10 @@ CUIConfig *CFDStructDataSolverKvislManager::genCLESMentersUIConfig() {"type", "RadioComponent"}, // 组:RANS模型 {"name", tr("RANS Model")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_RNSModel)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, + }, { new CUIConfig({ @@ -480,6 +549,9 @@ CUIConfig *CFDStructDataSolverKvislManager::genCLESMentersUIConfig() {"type", "RadioComponent"}, // 组:κ-ω类型 {"name", tr("κ-ω Type")}, {"widget", "GroupBox"}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_kwType)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model}, }, { new CUIConfig({ diff --git a/CFDStruct/CFDStructDataManager/CFDStructDataSolverNumericalMethodManager.cpp b/CFDStruct/CFDStructDataManager/CFDStructDataSolverNumericalMethodManager.cpp index 92a431e..76a443c 100644 --- a/CFDStruct/CFDStructDataManager/CFDStructDataSolverNumericalMethodManager.cpp +++ b/CFDStruct/CFDStructDataManager/CFDStructDataSolverNumericalMethodManager.cpp @@ -1,18 +1,27 @@ #include "CFDStructDataSolverNumericalMethodManager.h" #include "CUIProperty/CUIConfig.h" +#include "CFDStructMain/CFDStructDefine.h" +#include "CFDStructSigsCenter.h" -CFDStructDataSolverNumericalMethodManager::CFDStructDataSolverNumericalMethodManager(QObject *parent):CFDStructDataManagerBase(parent) +CFDStructDataSolverNumericalMethodManager::CFDStructDataSolverNumericalMethodManager(QObject *parent) : CFDStructDataManagerBase(parent) { m_uiConfig = nullptr; } CFDStructDataSolverNumericalMethodManager::~CFDStructDataSolverNumericalMethodManager() { - } CUIConfig *CFDStructDataSolverNumericalMethodManager::getParamUIConfig() { + if(m_fluxFormat == 0) + return this->genJamesonModeUIConfig(); + if(m_fluxFormat == 1) + return this->genRoeModeUIConfig(); + if(m_fluxFormat == 2) + return this->genAUSMDYModeUIConfig(); + if(m_fluxFormat == 3) + return this->genAUSMPWPModeUIConfig(); return this->genRoeModeUIConfig(); } @@ -30,6 +39,12 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genJamesonModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 通量格式 {"name", tr("Flux format")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_fluxFormat)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::NUumerical_Methods}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_fluxFormat)}, + }, { new CUIConfig({ @@ -53,14 +68,21 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genJamesonModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 二阶人工粘性 {"name", tr("Second-order artificial viscosity")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_secondOrderArtificialViscosity)}, }), new CUIConfig({ {"type", "LineEdit"}, // 四阶人工粘性 {"name", tr("Fourth order artificial viscosity")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_fourthOrderArtificialViscosity)}, }), new CUIConfig({ {"type", "ComboBox"}, // 空间精度 {"name", tr("Spatial accuracy")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_spaceAccuracy)}, + }, { new CUIConfig({ @@ -83,6 +105,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genJamesonModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 限制器 {"name", tr("limiter")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_limiter)}, + }, { new CUIConfig({ @@ -107,6 +132,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genJamesonModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 时间格式 {"name", tr("Time format")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_timeFormat)}, + }, { new CUIConfig({ @@ -121,6 +149,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genJamesonModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 迭代方法 {"name", tr("Iterative method")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_iterationMethod)}, + }, { new CUIConfig({ @@ -131,6 +162,8 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genJamesonModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 松弛因子 {"name", tr("Relaxation factor")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_relaxationFactor)}, }, {}), }), @@ -142,11 +175,15 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genJamesonModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 多重网格层数 {"name", tr("Multi grid layers")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_multigridLevels)}, }, {}), new CUIConfig({ {"type", "ComboBox"}, // 循环类型 {"name", tr("Loop type")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_multigridLevels)}, }, { new CUIConfig({ @@ -161,16 +198,22 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genJamesonModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 粗网格CFL数 {"name", tr("Rough grid CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_coarseGridCFL)}, }, {}), new CUIConfig({ {"type", "LineEdit"}, // 细网格CFL数 {"name", tr("Fine grid CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_fineGridCFL)}, }, {}), new CUIConfig({ {"type", "LineEdit"}, // 湍流CFL数 {"name", tr("Turbulent CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_turbulentCFL)}, }, {}), }), @@ -194,6 +237,12 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genRoeModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 通量格式 {"name", tr("Flux format")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_fluxFormat)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::NUumerical_Methods}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_fluxFormat)}, + }, { new CUIConfig({ @@ -217,6 +266,8 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genRoeModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 熵修正类型 {"name", tr("Entropy correction type")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_EntropyCorrectionType)}, }, { new CUIConfig({ @@ -231,6 +282,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genRoeModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 空间精度 {"name", tr("Spatial accuracy")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_spaceAccuracy)}, + }, { new CUIConfig({ @@ -253,6 +307,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genRoeModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 限制器 {"name", tr("limiter")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_limiter)}, + }, { new CUIConfig({ @@ -277,6 +334,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genRoeModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 时间格式 {"name", tr("Time format")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_timeFormat)}, + }, { new CUIConfig({ @@ -291,6 +351,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genRoeModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 迭代方法 {"name", tr("Iterative method")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_iterationMethod)}, + }, { new CUIConfig({ @@ -301,6 +364,8 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genRoeModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 松弛因子 {"name", tr("Relaxation factor")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_relaxationFactor)}, }, {}), }), @@ -312,11 +377,15 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genRoeModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 多重网格层数 {"name", tr("Multi grid layers")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_multigridLevels)}, }, {}), new CUIConfig({ {"type", "ComboBox"}, // 循环类型 {"name", tr("Loop type")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_multigridLevels)}, }, { new CUIConfig({ @@ -331,16 +400,22 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genRoeModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 粗网格CFL数 {"name", tr("Rough grid CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_coarseGridCFL)}, }, {}), new CUIConfig({ {"type", "LineEdit"}, // 细网格CFL数 {"name", tr("Fine grid CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_fineGridCFL)}, }, {}), new CUIConfig({ {"type", "LineEdit"}, // 湍流CFL数 {"name", tr("Turbulent CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_turbulentCFL)}, }, {}), }), @@ -362,6 +437,10 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMDYModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 通量格式 {"name", tr("Flux format")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_fluxFormat)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::NUumerical_Methods}, + }, { new CUIConfig({ @@ -385,6 +464,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMDYModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 空间精度 {"name", tr("Spatial accuracy")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_spaceAccuracy)}, + }, { new CUIConfig({ @@ -407,6 +489,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMDYModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 限制器 {"name", tr("limiter")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_limiter)}, + }, { new CUIConfig({ @@ -431,6 +516,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMDYModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 时间格式 {"name", tr("Time format")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_timeFormat)}, + }, { new CUIConfig({ @@ -445,6 +533,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMDYModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 迭代方法 {"name", tr("Iterative method")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_iterationMethod)}, + }, { new CUIConfig({ @@ -455,6 +546,8 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMDYModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 松弛因子 {"name", tr("Relaxation factor")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_relaxationFactor)}, }, {}), }), @@ -466,11 +559,15 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMDYModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 多重网格层数 {"name", tr("Multi grid layers")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_multigridLevels)}, }, {}), new CUIConfig({ {"type", "ComboBox"}, // 循环类型 {"name", tr("Loop type")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_multigridLevels)}, }, { new CUIConfig({ @@ -485,16 +582,22 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMDYModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 粗网格CFL数 {"name", tr("Rough grid CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_coarseGridCFL)}, }, {}), new CUIConfig({ {"type", "LineEdit"}, // 细网格CFL数 {"name", tr("Fine grid CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_fineGridCFL)}, }, {}), new CUIConfig({ {"type", "LineEdit"}, // 湍流CFL数 {"name", tr("Turbulent CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_turbulentCFL)}, }, {}), }), @@ -516,6 +619,12 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMPWPModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 通量格式 {"name", tr("Flux format")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_fluxFormat)}, + {"semaphore", (int)SolutionAnalysisModuleProperty::NUumerical_Methods}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_fluxFormat)}, + }, { new CUIConfig({ @@ -539,6 +648,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMPWPModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 空间精度 {"name", tr("Spatial accuracy")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_spaceAccuracy)}, + }, { new CUIConfig({ @@ -561,6 +673,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMPWPModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 限制器 {"name", tr("limiter")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_limiter)}, + }, { new CUIConfig({ @@ -585,6 +700,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMPWPModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 时间格式 {"name", tr("Time format")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_timeFormat)}, + }, { new CUIConfig({ @@ -599,6 +717,9 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMPWPModeUIConfig() new CUIConfig({ {"type", "ComboBox"}, // 迭代方法 {"name", tr("Iterative method")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_iterationMethod)}, + }, { new CUIConfig({ @@ -609,6 +730,8 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMPWPModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 松弛因子 {"name", tr("Relaxation factor")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_relaxationFactor)}, }, {}), }), @@ -620,11 +743,15 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMPWPModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 多重网格层数 {"name", tr("Multi grid layers")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_multigridLevels)}, }, {}), new CUIConfig({ {"type", "ComboBox"}, // 循环类型 {"name", tr("Loop type")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, + {"value_origin", QVA_GLOBAL(&m_multigridLevels)}, }, { new CUIConfig({ @@ -639,16 +766,22 @@ CUIConfig *CFDStructDataSolverNumericalMethodManager::genAUSMPWPModeUIConfig() new CUIConfig({ {"type", "LineEdit"}, // 粗网格CFL数 {"name", tr("Rough grid CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_coarseGridCFL)}, }, {}), new CUIConfig({ {"type", "LineEdit"}, // 细网格CFL数 {"name", tr("Fine grid CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_fineGridCFL)}, }, {}), new CUIConfig({ {"type", "LineEdit"}, // 湍流CFL数 {"name", tr("Turbulent CFL number")}, + {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, + {"value_origin", QVA_GLOBAL(&m_turbulentCFL)}, }, {}), }), diff --git a/CFDStruct/CFDStructDataManager/CFDStructDataSolverNumericalMethodManager.h b/CFDStruct/CFDStructDataManager/CFDStructDataSolverNumericalMethodManager.h index f38f178..90f9ec3 100644 --- a/CFDStruct/CFDStructDataManager/CFDStructDataSolverNumericalMethodManager.h +++ b/CFDStruct/CFDStructDataManager/CFDStructDataSolverNumericalMethodManager.h @@ -29,18 +29,90 @@ private: signals: private: - // // 时间模式:定常0,非定常1 - // int m_runtype = 0; - // // 时间模式:定常0,则是迭代步数;时间模式:非定常1,则是内迭代步数 - // int m_mcyc = 1000; - // // 步长模式 >=1 - // double m_alf0 = 1.0; - // // 时间步长 >0 - // double m_realdt = 1.0; - // // 时间步数 >=1 - // int m_nstep = 10; - // // 时均统计量数据采样:0 | 1 - // int m_timeaverage = 0; + + // 通量格式 + /** + * @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 = 0; + + // 限制器 + /** + * @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; + + // 多重网格层数 + double m_multigridLevels = 0.5; + + // 循环类型 + /** + * @brief m_cycleType + * 0-V循环 + 1-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; + }; #endif // CFDSTRUCTDATASOLVERNUMERICALMETHODMANAGER_H