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/CFDStructDataSolverBoundary...

2092 lines
178 KiB
C++

#include "CFDStructDataSolverBoundaryConditionManager.h"
#include "CFDStructDataSolverTimeModeManager.h"
#include "CFDStructMain/CFDStructDefine.h"
#include "CFDStructSigsCenter.h"
#include "CUIProperty/CUIConfig.h"
#include "CUIProperty/CUISigsCenter.h"
#include <QVariant>
CFDStructDataSolverBoundaryConditionManager::CFDStructDataSolverBoundaryConditionManager(QObject *parent) : CFDStructDataManagerBase(parent) {
m_uiConfig = nullptr;
connect(m_cuiSigsCenter, &CUISigsCenter::sig_cuiPropertyChanged, this, [=](int semaphore) { emit CFDStructSigsCenter::getInstance() -> sig_solverTimeModeDataChanged(); });
}
CFDStructDataSolverBoundaryConditionManager::~CFDStructDataSolverBoundaryConditionManager() {
// CFDStructDataManagerBase::~CFDStructDataManagerBase();
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::getParamUIConfig() {
if (m_uiConfig != nullptr) {
delete m_uiConfig;
m_uiConfig = nullptr;
}
qDebug() << "in manager " << m_BoundaryType;
if (m_BoundaryType == 0) {
qDebug() << "walltype is :" << m_WallType;
if (m_WallType == 0)
return genWallAdiabaticWallUIConfig();
if (m_WallType == 1)
return genWallIsothermalWallUIConfig();
if (m_WallType == 2)
return genWallHotFlowWallUIConfig();
return genWallAdiabaticWallUIConfig();
}
if (m_BoundaryType == 1)
return genFarFieldModeUIConfig();
if (m_BoundaryType == 2) {
if (m_BoundaryType_sub == 0) {
if (m_VelocityDirectionType == 0) {
return genPressureInletModeSupersonicCylindricalUIConfig();
}
if (m_VelocityDirectionType == 1) {
return genPressureInletModeSupersonicCartesianUIConfig();
}
if (m_VelocityDirectionType == 2) {
return genPressureInletModeSupersonicSurfaceUIConfig();
}
}
if (m_BoundaryType_sub == 1) {
if (m_VelocityDirectionType == 0) {
return genPressureInletModeSubsonicCylindricalUIConfig();
}
if (m_VelocityDirectionType == 1) {
return genPressureInletModeSubsonicCartesianUIConfig();
}
if (m_VelocityDirectionType == 2) {
return genPressureInletModeSubsonicSurfaceUIConfig();
}
}
}
if (m_BoundaryType == 3)
return genPressureOutletUIConfig();
if (m_BoundaryType == 4)
return genSymmetricUIConfig();
if (m_BoundaryType == 5) {
return genSupersonicOutlet_ExtrapolateUIConfig();
}
if (m_BoundaryType == 6) {
return genMeshInterfaceUIConfig();
}
if (m_BoundaryType == 7) {
if (m_PeriodicType == 0)
return genCycleTranslationUIConfig();
if (m_PeriodicType == 1)
return genCycleRotationUIConfig();
return genCycleTranslationUIConfig();
}
if (m_BoundaryType == 8) {
return genMassFlowOutletUIConfig();
}
return m_uiConfig;
}
void CFDStructDataSolverBoundaryConditionManager::saveDataToDom(rapidjson::Document &dom) {
// TODO
}
void CFDStructDataSolverBoundaryConditionManager::readDataFromDom(rapidjson::Document &dom) {
// TODO
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genFarFieldModeUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "LineEdit"}, // 马赫数
{"name", tr("mach number")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_MachNumber)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 压强
{"name", tr("Pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_Pressure)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 温度
{"name", tr("temperature")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_Temperature)},
},
{}),
new CUIConfig({
{"type", "GroupBox"}, // 来流方向
{"name", tr("Flow direction")},
{"layout", "QHBoxLayout"},
// {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
// {"value_origin", QVA_GLOBAL(&m_InflowDirection)},
},
{
new CUIConfig({
{"type", "LineEdit"},
{"name", "X:"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", m_InflowDirectionX},
}),
new CUIConfig({
{"type", "LineEdit"},
{"name", "Y:"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", m_InflowDirectionY},
}),
new CUIConfig({
{"type", "LineEdit"},
{"name", "Z:"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", m_InflowDirectionZ},
}),
}),
}),
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "LineEdit"}, // 湍流粘性比
{"name", tr("Turbulent viscosity ratio")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TurbulentViscosityRatio)},
},
{}),
// new CUIConfig({
// {"type", "LineEdit"}, // 湍流强度
// {"name", tr("Turbulence intensity")},
// {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
// {"value_origin", QVA_GLOBAL(&m_TurbulentIntensity)},
// },
// {}),
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genPressureInletModeSupersonicCylindricalUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "ComboBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType_sub)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr("Supersonic")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Subsonic")},
}),
}),
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "LineEdit"}, // 总压
{"name", tr("Total pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalPressure)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 总温
{"name", tr("Total temperature")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalTemperature)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 静压
{"name", tr("Static Pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_StaticPressure)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 速度方向类型
{"name", tr("Velocity Direction Type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_VelocityDirectionType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr(" Specified Direction (Cylindrical Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Specified Direction (Cartesian Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Surface Normal")},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 方向矢量
{"name", tr("Direction Vector(r,theta,z)")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_DirectionVector)},
},
{}),
}),
// TODO 用户自定义
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_UserDefined)},
}),
});
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genPressureInletModeSupersonicCartesianUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "ComboBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType_sub)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr("Supersonic")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Subsonic")},
}),
}),
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "LineEdit"}, // 总压
{"name", tr("Total pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalPressure)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 总温
{"name", tr("Total temperature")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalTemperature)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 静压
{"name", tr("Static Pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_StaticPressure)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 速度方向类型
{"name", tr("Velocity Direction Type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_VelocityDirectionType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr(" Specified Direction (Cylindrical Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Specified Direction (Cartesian Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Surface Normal")},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 方向矢量
{"name", tr("Direction Vector(x,y,z)")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_DirectionVector)},
},
{}),
}),
// TODO 用户自定义
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_UserDefined)},
}),
});
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genPressureInletModeSupersonicSurfaceUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "ComboBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType_sub)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr("Supersonic")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Subsonic")},
}),
}),
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "LineEdit"}, // 总压
{"name", tr("Total pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalPressure)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 总温
{"name", tr("Total temperature")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalTemperature)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 静压
{"name", tr("Static Pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_StaticPressure)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 速度方向类型
{"name", tr("Velocity Direction Type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_VelocityDirectionType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr(" Specified Direction (Cylindrical Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Specified Direction (Cartesian Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Surface Normal")},
}),
}),
}),
// TODO 用户自定义
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_UserDefined)},
}),
});
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genPressureInletModeSubsonicCylindricalUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "ComboBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType_sub)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr("Supersonic")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Subsonic")},
}),
}),
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "LineEdit"}, // 总压
{"name", tr("Total pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalPressure)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 总温
{"name", tr("Total temperature")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalTemperature)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 速度方向类型
{"name", tr("Velocity Direction Type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_VelocityDirectionType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr(" Specified Direction (Cylindrical Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Specified Direction (Cartesian Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Surface Normal")},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 方向矢量
{"name", tr("Direction Vector(r,theta,z)")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_DirectionVector)},
},
{}),
}),
// TODO 用户自定义
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_UserDefined)},
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genPressureInletModeSubsonicCartesianUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "ComboBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType_sub)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr("Supersonic")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Subsonic")},
}),
}),
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "LineEdit"}, // 总压
{"name", tr("Total pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalPressure)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 总温
{"name", tr("Total temperature")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalTemperature)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 速度方向类型
{"name", tr("Velocity Direction Type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_VelocityDirectionType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr(" Specified Direction (Cylindrical Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Specified Direction (Cartesian Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Surface Normal")},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 方向矢量
{"name", tr("Direction Vector(x,y,z)")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_DirectionVector)},
},
{}),
}),
// TODO 用户自定义
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_UserDefined)},
}),
});
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genPressureInletModeSubsonicSurfaceUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "ComboBox"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType_sub)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr("Supersonic")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Subsonic")},
}),
}),
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "LineEdit"}, // 总压
{"name", tr("Total pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalPressure)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 总温
{"name", tr("Total temperature")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_TotalTemperature)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 速度方向类型
{"name", tr("Velocity Direction Type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_VelocityDirectionType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr(" Specified Direction (Cylindrical Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Specified Direction (Cartesian Coordinate System)")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Surface Normal")},
}),
}),
}),
// TODO 用户自定义
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_UserDefined)},
}),
});
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genPressureOutletUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "GroupBox"},
{"name", ""},
},
{
new CUIConfig({
{"type", "RadioComponent"},
{"widget", "Component"},
{"layout", "QHBoxLayout"},
},
{
new CUIConfig({
{"name", "Constant Static Pressure"},
}),
new CUIConfig({
{"name", "Average Static Pressure"},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 静压
{"name", tr("static pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_StaticPressure)},
},
{}),
}),
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_UserDefined)},
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genSymmetricUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genSupersonicOutlet_ExtrapolateUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
});
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genMeshInterfaceUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "LineEdit"}, // 配对名称
{"name", tr("Paired Name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_PairedName)},
}),
new CUIConfig({
{"type", "ComboBox"}, // 对应面
{"name", tr("Matching Surface")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_MatchingSurface)},
}),
}),
});
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genCycleTranslationUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 配对名称
{"name", tr("Pairing Name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_PairingName)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 对应面
{"name", tr("Corresponding surface")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_CorrespondingSurface)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 周期类型
{"name", tr("Cycle type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_PeriodicType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr("Translation ")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Rotation")},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 平移距离
{"name", tr("TranslationDistance")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_TranslationDistance)},
},
{}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genCycleRotationUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 配对名称
{"name", tr("Pairing Name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_PairingName)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 对应面
{"name", tr("Corresponding surface")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_CorrespondingSurface)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 周期类型
{"name", tr("Cycle type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_PeriodicType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"},
{"name", tr("Translation ")},
}),
new CUIConfig({
{"type", "Item"},
{"name", tr("Rotation")},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 旋转中心
{"name", tr("Rotation center")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_RotationCenter)},
},
{}),
new CUIConfig({
{"type", "GroupBox"}, // 转轴方向
{"name", tr("Axis direction")},
{"layout", "QHBoxLayout"},
// {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
// {"value_origin", QVA_GLOBAL(&m_RotationAxisDirection)},
},
{
new CUIConfig({
{"type", "LineEdit"},
{"name", "X:"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", m_per_rot_aixsX},
}),
new CUIConfig({
{"type", "LineEdit"},
{"name", "Y:"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", m_per_rot_aixsY},
}),
new CUIConfig({
{"type", "LineEdit"},
{"name", "Z:"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", m_per_rot_aixsZ},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 旋转角
{"name", tr("Rotation angle")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_RotationAngle)},
},
{}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genMassFlowOutletUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "GroupBox"},
},
{
new CUIConfig({
{"type", "LineEdit"},
{"name", tr("Flow Rate (Single Channel)")}, // 流量(单流道
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_FlowRate)},
}),
new CUIConfig({
{"type", "LineEdit"}, // 初始压强:
{"name", tr("Initial Pressure")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_InitialPressure)},
}),
new CUIConfig({
{"type", "LineEdit"},
{"name", tr("Pressure Relaxation Factor")}, // 压强松弛因子
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_PressureRelaxationFactor)},
}),
}),
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
}),
}),
});
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genWallAdiabaticWallUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "RadioComponent"}, // 壁面类型
{"name", tr("Wall type")},
{"widget", "GroupBox"},
{"layout", "QHBoxLayout"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_WallType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "RadioButton"}, // 绝热壁
{"name", tr("Adiabatic wall")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 等温壁
{"name", tr("Isothermal wall")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 热流壁
{"name", tr("Hot flow wall")},
}),
}),
new CUIConfig({
{"type", "RadioComponent"}, // 运动属性
{"name", tr("Motion Properties")},
{"widget", "GroupBox"},
{"layout", "QHBoxLayout"},
},
{
new CUIConfig({
{"name", tr("No Motion")} // 无运动
}),
new CUIConfig({
{"name", tr("Rotational Motion")} // 旋转运动
}),
}),
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_UserDefined)},
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genWallIsothermalWallUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"widget", "GroupBox"},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "RadioComponent"}, // 壁面类型
{"name", tr("Wall type")},
{"widget", "GroupBox"},
{"layout", "QHBoxLayout"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_WallType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "RadioButton"}, // 绝热壁
{"name", tr("Adiabatic wall")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 等温壁
{"name", tr("Isothermal wall")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 热流壁
{"name", tr("Hot flow wall")},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 壁面温度
{"name", tr("Wall temperature")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_WallTemperature)},
}),
new CUIConfig({
{"type", "RadioComponent"}, // 运动属性
{"name", tr("Motion Properties")},
{"widget", "GroupBox"},
{"layout", "QHBoxLayout"},
},
{
new CUIConfig({
{"name", tr("No Motion")} // 无运动
}),
new CUIConfig({
{"name", tr("Rotational Motion")} // 旋转运动
}),
}),
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_UserDefined)},
}),
});
return nullptr;
}
CUIConfig *CFDStructDataSolverBoundaryConditionManager::genWallHotFlowWallUIConfig() {
return new CUIConfig({{"type", "Widget"}}, {
new CUIConfig({
{"type", "LineEdit"}, // 边界名称
{"name", tr("Boundary name")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_BoundaryName)},
},
{}),
new CUIConfig({
{"type", "LineEdit"}, // 所属计算域
{"name", tr("Belonging to the computing domain")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING},
{"value_origin", QVA_GLOBAL(&m_ComputationalDomain)},
},
{}),
new CUIConfig({
{"type", "ComboBox"}, // 边界类型
{"name", tr("Boundary type")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_BoundaryType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "Item"}, // 壁面
{"name", tr("Wall")},
}),
new CUIConfig({
{"type", "Item"}, // 远场
{"name", tr("FarField")},
}),
new CUIConfig({
{"type", "Item"}, // 压强入口
{"name", tr("Total Pressure Inlet")},
}),
new CUIConfig({
{"type", "Item"}, // 压强出口
{"name", tr("Pressure Outlet")},
}),
new CUIConfig({
{"type", "Item"}, // 对称
{"name", tr("Symmetric")},
}),
new CUIConfig({
{"type", "Item"}, // 超音速出口/外推
{"name", tr("Supersonic outlet/Extrapolate")},
}),
new CUIConfig({
{"type", "Item"}, // 网格交界面
{"name", tr("Mesh-Interface")},
}),
new CUIConfig({
{"type", "Item"}, // 周期
{"name", tr("Periodic")},
}),
new CUIConfig({
{"type", "Item"}, // 流量出口
{"name", tr("mass flow outlet")},
}),
}),
new CUIConfig({
{"type", "RadioComponent"}, // 壁面类型
{"name", tr("Wall type")},
{"widget", "GroupBox"},
{"layout", "QHBoxLayout"},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_WallType)},
{"semaphore", (int)SolutionAnalysisModuleProperty::Boundary_Conditions},
},
{
new CUIConfig({
{"type", "RadioButton"}, // 绝热壁
{"name", tr("Adiabatic wall")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 等温壁
{"name", tr("Isothermal wall")},
}),
new CUIConfig({
{"type", "RadioButton"}, // 热流壁
{"name", tr("Hot flow wall")},
}),
}),
new CUIConfig({
{"type", "LineEdit"}, // 壁面热流
{"name", tr("Wall heat flux")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE},
{"value_origin", QVA_GLOBAL(&m_WallHeatFlux)},
}),
new CUIConfig({
{"type", "RadioComponent"}, // 运动属性
{"name", tr("Motion Properties")},
{"widget", "GroupBox"},
{"layout", "QHBoxLayout"},
},
{
new CUIConfig({
{"name", tr("No Motion")} // 无运动
}),
new CUIConfig({
{"name", tr("Rotational Motion")} // 旋转运动
}),
}),
new CUIConfig({
{"type", "CheckBox"},
{"name", tr("User-Defined")},
{"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT},
{"value_origin", QVA_GLOBAL(&m_UserDefined)},
}),
});
return nullptr;
}