#include "CFDStructDataSolverTimeModeManager.h" #include "CFDStructDataManagerBase.h" #include "CFDStructMain/CFDStructDefine.h" #include "CFDStructSigsCenter.h" #include "CUIProperty/CUIConfig.h" #include "CUIProperty/CUISigsCenter.h" #include #include #include #include CFDStructDataSolverTimeModeManager::CFDStructDataSolverTimeModeManager(QObject *parent) : CFDStructDataManagerBase(parent) { m_uiConfig = nullptr; // qDebug() << "build timemode manager"; connect(m_cuiSigsCenter, &CUISigsCenter::sig_cuiPropertyChanged, this, [=](int semaphore) { emit CFDStructSigsCenter::getInstance() -> sig_solverModuleProperty((SolutionAnalysisModuleProperty)semaphore); }); } CFDStructDataSolverTimeModeManager::~CFDStructDataSolverTimeModeManager() { // CFDStructDataManagerBase::~CFDStructDataManagerBase(); } CUIConfig *CFDStructDataSolverTimeModeManager::getParamUIConfig() { if (m_uiConfig != nullptr) { delete m_uiConfig; m_uiConfig = nullptr; } // qDebug()<genSteadyModeUIConfig(); } else { // 如果是非定常 m_uiConfig = this->genUnsteadyModeUIConfig(); } // m_uiConfig->printConfig(); return m_uiConfig; } void CFDStructDataSolverTimeModeManager::saveDataToDom(rapidjson::Document &dom) { jsonAdd(dom, m_runtype, {"region", 0, "solver", "time"}); jsonAdd(dom, m_innerIters, {"couplingSolver", "unSteady", "innerIters"}); jsonAdd(dom, m_iters, {"couplingSolver", "steady", "iters"}); jsonAdd(dom, m_alf0, {"couplingSolver", "unSteady", "stepType"}); jsonAdd(dom, m_realdt, {"couplingSolver", "unSteady", "timeStep"}); jsonAdd(dom, m_nstep, {"couplingSolver", "unSteady", "timeStepsNumber"}); jsonAdd(dom, m_timeaverage, {"couplingSolver", "unSteady", "Timeverage"}); } void CFDStructDataSolverTimeModeManager::readDataFromDom(rapidjson::Document &dom) { QVariant temp; jsonRead(dom, temp, {"region", 0, "solver", "time"}); if (temp != QVariant()) { m_runtype = temp.toInt(); } jsonRead(dom, temp, {"couplingSolver", "unSteady", "innerIters"}); if (temp != QVariant()) { m_innerIters = temp.toInt(); } jsonRead(dom, temp, {"couplingSolver", "steady", "iters"}); if (temp != QVariant()) { m_iters = temp.toInt(); } jsonRead(dom, temp, {"couplingSolver", "unSteady", "stepType"}); if (temp != QVariant()) { m_alf0 = temp.toDouble(); } jsonRead(dom, temp, {"couplingSolver", "unSteady", "timeStep"}); if (temp != QVariant()) { m_realdt = temp.toDouble(); } jsonRead(dom, temp, {"couplingSolver", "unSteady", "timeStepsNumber"}); if (temp != QVariant()) { m_nstep = temp.toInt(); } jsonRead(dom, temp, {"couplingSolver", "unSteady", "Timeverage"}); if (temp != QVariant()) { m_timeaverage = temp.toInt(); } } CUIConfig *CFDStructDataSolverTimeModeManager::genSteadyModeUIConfig() { return new CUIConfig({{"type", "Widget"}}, {new CUIConfig({ {"type", "ComboBox"}, {"name", "Time Mode"}, {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, {"value_origin", QVA_GLOBAL(&m_runtype)}, {"semaphore", (int)SolutionAnalysisModuleProperty::Time_Mode}, }, {new CUIConfig({ {"type", "Item"}, {"name", "steady"}, }), new CUIConfig({ {"type", "Item"}, {"name", "unsteady"}, })}), new CUIConfig({ {"type", "LineEdit"}, {"name", "iteration count"}, {"value_type", CUI_DATA_TYPE_INT}, {"value_origin", QVA_GLOBAL(&m_iters)}, })}); } CUIConfig *CFDStructDataSolverTimeModeManager::genUnsteadyModeUIConfig() { return new CUIConfig({{"type", "Widget"}}, {new CUIConfig({ {"type", "ComboBox"}, {"name", "Time Mode"}, {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, {"value_origin", QVA_GLOBAL(&m_runtype)}, {"semaphore", (int)SolutionAnalysisModuleProperty::Time_Mode}, }, {new CUIConfig({{"type", "Item"}, {"name", "steady"}}), new CUIConfig({{"type", "Item"}, {"name", "unsteady"}})}), new CUIConfig({ {"type", "LineEdit"}, {"name", "alf0"}, {"value_type", CUI_DATA_TYPE_DOUBLE}, {"value_origin", QVA_GLOBAL(&m_alf0)}, }), new CUIConfig({ {"type", "LineEdit"}, {"name", "realdt"}, {"value_type", CUI_DATA_TYPE_DOUBLE}, {"value_origin", QVA_GLOBAL(&m_realdt)}, }), new CUIConfig({ {"type", "LineEdit"}, {"name", "nstep"}, {"value_type", CUI_DATA_TYPE_INT}, {"value_origin", QVA_GLOBAL(&m_nstep)}, }), new CUIConfig({ {"type", "LineEdit"}, {"name", "mcyc"}, {"value_type", CUI_DATA_TYPE_INT}, {"value_origin", QVA_GLOBAL(&m_iters)}, }), new CUIConfig({ {"type", "CheckBox"}, {"name", "Time Average"}, {"value_type", CUI_DATA_TYPE_INT}, {"value_origin", QVA_GLOBAL(&m_timeaverage)}, })}); } int CFDStructDataSolverTimeModeManager::getRunType() { return m_runtype; }