You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/CFDStruct/CFDStructDataManager/CFDStructDataSolverKvislMan...

572 lines
22 KiB
C++

#include "CFDStructDataSolverKvislManager.h"
#include "CUIProperty/CUIConfig.h"
#include "CFDStructMain/CFDStructDefine.h"
#include "CFDStructSigsCenter.h"
CFDStructDataSolverKvislManager::CFDStructDataSolverKvislManager(QObject *parent) : CFDStructDataManagerBase(parent)
{
m_uiConfig = nullptr;
connect(m_cuiSigsCenter, &CUISigsCenter::sig_cuiPropertyChanged, this, [ = ](int semaphore) {
if (semaphore == (int)SolutionAnalysisModuleProperty::Viscosity_Model) {
emit CFDStructSigsCenter::getInstance()->sig_solverKvislDataChanged();
}
});
}
CFDStructDataSolverKvislManager::~CFDStructDataSolverKvislManager()
{
}
CUIConfig *CFDStructDataSolverKvislManager::getParamUIConfig()
{
if(m_Model == 0) {
return genInviscidUIConfig();
}
if(m_Model == 1) {
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) {
m_SAType = 0;
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) {
m_SAType = 0;
if(m_RNSModel == 0)
return genCLESUIConfig();
if(m_RNSModel == 1)
return genCLESMentersUIConfig();
if(m_RNSModel == 2)
m_RNSModel = 0;
return genCLESUIConfig();
}
return this->genInviscidUIConfig();
}
void CFDStructDataSolverKvislManager::saveDataToDom(rapidjson::Document &dom)
{
}
CUIConfig *CFDStructDataSolverKvislManager::genInviscidUIConfig()
{
return new CUIConfig(
{{"type", "Widget"}}, {
new CUIConfig({
{"type", "RadioComponent"}, // 组:模型
{"name", tr("Model")},
{"widget", "GroupBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_Model)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},
},
{
new CUIConfig({{"type", "RadioButton"}, // 按钮:无粘
{"name", tr("Inviscid")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:层流
{"name", tr("Laminar")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:雷诺平均
{"name", tr("RANS")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:分离涡模拟
{"name", tr("DES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:约束大涡模型
{"name", tr("CLES")}})
})
});
return nullptr;
}
CUIConfig *CFDStructDataSolverKvislManager::genLaminarUIConfig()
{
return new CUIConfig(
{{"type", "Widget"}}, {
new CUIConfig({
{"type", "RadioComponent"}, // 组:模型
{"name", tr("Model")},
{"widget", "GroupBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_Model)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},
},
{
new CUIConfig({{"type", "RadioButton"}, // 按钮:无粘
{"name", tr("Inviscid")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:层流
{"name", tr("Laminar")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:雷诺平均
{"name", tr("RANS")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:分离涡模拟
{"name", tr("DES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:约束大涡模型
{"name", tr("CLES")}})
})
});
return nullptr;
}
CUIConfig *CFDStructDataSolverKvislManager::genRANSSAUIConfig()
{
return new CUIConfig(
{{"type", "Widget"}}, {
new CUIConfig({
{"type", "RadioComponent"}, // 组:模型
{"name", tr("Model")},
{"widget", "GroupBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_Model)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},
},
{
new CUIConfig({{"type", "RadioButton"}, // 按钮:无粘
{"name", tr("Inviscid")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:层流
{"name", tr("Laminar")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:雷诺平均
{"name", tr("RANS")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:分离涡模拟
{"name", tr("DES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:约束大涡模型
{"name", tr("CLES")}})
}),
new CUIConfig({
{"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(一方程)
{"name", tr("S-A")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:Menters's κ-ω(两方程)
{"name", tr("Menters's κ-ω")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:κ-ε(两方程)
{"name", tr("κ-ε")}})
}),
new CUIConfig({
{"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
{"name", tr("standard")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:Edwards
{"name", tr("Edwards")}})
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverKvislManager::genRANSUIMentersConfig()
{
return new CUIConfig(
{{"type", "Widget"}}, {
new CUIConfig({
{"type", "RadioComponent"}, // 组:模型
{"name", tr("Model")},
{"widget", "GroupBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_Model)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},
},
{
new CUIConfig({{"type", "RadioButton"}, // 按钮:无粘
{"name", tr("Inviscid")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:层流
{"name", tr("Laminar")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:雷诺平均
{"name", tr("RANS")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:分离涡模拟
{"name", tr("DES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:约束大涡模型
{"name", tr("CLES")}})
}),
new CUIConfig({
{"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(一方程)
{"name", tr("S-A")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:Menters's κ-ω(两方程)
{"name", tr("Menters's κ-ω")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:κ-ε(两方程)
{"name", tr("κ-ε")}})
}),
new CUIConfig({
{"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
{"name", tr("standard")}}),
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverKvislManager::genRANSKEUIConfig()
{
return new CUIConfig(
{{"type", "Widget"}}, {
new CUIConfig({
{"type", "RadioComponent"}, // 组:模型
{"name", tr("Model")},
{"widget", "GroupBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_Model)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},
},
{
new CUIConfig({{"type", "RadioButton"}, // 按钮:无粘
{"name", tr("Inviscid")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:层流
{"name", tr("Laminar")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:雷诺平均
{"name", tr("RANS")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:分离涡模拟
{"name", tr("DES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:约束大涡模型
{"name", tr("CLES")}})
}),
new CUIConfig({
{"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(一方程)
{"name", tr("S-A")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:Menters's κ-ω(两方程)
{"name", tr("Menters's κ-ω")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:κ-ε(两方程)
{"name", tr("κ-ε")}})
}),
new CUIConfig({
{"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
{"name", tr("standard")}}),
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverKvislManager::genDESSAUIConfig()
{
return new CUIConfig(
{{"type", "Widget"}}, {
new CUIConfig({
{"type", "RadioComponent"}, // 组:模型
{"name", tr("Model")},
{"widget", "GroupBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_Model)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},
},
{
new CUIConfig({{"type", "RadioButton"}, // 按钮:无粘
{"name", tr("Inviscid")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:层流
{"name", tr("Laminar")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:雷诺平均
{"name", tr("RANS")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:分离涡模拟
{"name", tr("DES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:约束大涡模型
{"name", tr("CLES")}})
}),
new CUIConfig({
{"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
{"name", tr("DES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:DDES两方程
{"name", tr("DDES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:IDDES两方程
{"name", tr("IDDES")}}),
}),
new CUIConfig({
{"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(一方程)
{"name", tr("S-A")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:Menters's κ-ω(两方程)
{"name", tr("Menters's κ-ω")}}),
}),
new CUIConfig({{"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
{"name", tr("standard")}}),
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverKvislManager::genDESMentersUIConfig()
{
return new CUIConfig(
{{"type", "Widget"}}, {
new CUIConfig({
{"type", "RadioComponent"}, // 组:模型
{"name", tr("Model")},
{"widget", "GroupBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_Model)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},
},
{
new CUIConfig({{"type", "RadioButton"}, // 按钮:无粘
{"name", tr("Inviscid")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:层流
{"name", tr("Laminar")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:雷诺平均
{"name", tr("RANS")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:分离涡模拟
{"name", tr("DES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:约束大涡模型
{"name", tr("CLES")}})
}),
new CUIConfig({{"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
{"name", tr("DES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:DDES两方程
{"name", tr("DDES")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:IDDES两方程
{"name", tr("IDDES")}}),
}),
new CUIConfig({{"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(一方程)
{"name", tr("S-A")}}),
new CUIConfig({{"type", "RadioButton"}, // 按钮:Menters's κ-ω(两方程)
{"name", tr("Menters's κ-ω")}}),
}),
new CUIConfig({{"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"}, // 按钮:SST
{"name", tr("SST")}}),
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverKvislManager::genCLESUIConfig()
{
return new CUIConfig(
{{"type", "Widget"}}, {
new CUIConfig({
{"type", "RadioComponent"}, // 组:模型
{"name", tr("Model")},
{"widget", "GroupBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_Model)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},
},
{
new CUIConfig({
{"type", "RadioButton"}, // 按钮:无粘
{"name", tr("Inviscid")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 按钮:层流
{"name", tr("Laminar")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 按钮:雷诺平均
{"name", tr("RANS")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 按钮:分离涡模拟
{"name", tr("DES")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 按钮:约束大涡模型
{"name", tr("CLES")},
})
}),
new CUIConfig({
{"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(一方程)
{"name", tr("S-A")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 按钮:Menters's κ-ω(两方程)
{"name", tr("Menters's κ-ω")},
}),
}),
new CUIConfig({
{"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
{"name", tr("standard")},
}),
// new CUIConfig({
// {"type", "RadioButton"}, // 按钮:Edwards
// {"name", tr("Edwards")},
// }),
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverKvislManager::genCLESMentersUIConfig()
{
return new CUIConfig(
{{"type", "Widget"}}, {
new CUIConfig({
{"type", "RadioComponent"}, // 组:模型
{"name", tr("Model")},
{"widget", "GroupBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_Model)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Viscosity_Model},
},
{
new CUIConfig({
{"type", "RadioButton"}, // 按钮:无粘
{"name", tr("Inviscid")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 按钮:层流
{"name", tr("Laminar")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 按钮:雷诺平均
{"name", tr("RANS")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 按钮:分离涡模拟
{"name", tr("DES")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 按钮:约束大涡模型
{"name", tr("CLES")},
})
}),
new CUIConfig({
{"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(一方程)
{"name", tr("S-A")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 按钮:Menters's κ-ω(两方程)
{"name", tr("Menters's κ-ω")},
}),
}),
new CUIConfig({
{"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"}, // 按钮:SST
{"name", tr("SST")},
}),
}),
});
return nullptr;
}