拟合后显示调用求解器总次数

feature/AutoFit-Optimize-20260821
lvjunjie 2 weeks ago
parent 4a5500d927
commit a0d3fc7c89

Binary file not shown.

@ -4170,8 +4170,8 @@ Supported types: Vertical, Vertical Fractured, and Horizontal Multi-Fractured We
<translation>=== %1 %2 ===</translation>
</message>
<message>
<source>Total fitting time: %1 s (%2 min %3 s)</source>
<translation>%1 s (%2 min %3 s)</translation>
<source>Total fitting time: %1 s (%2 min %3 s), total solver calls: %4</source>
<translation>%1 s (%2 min %3 s) %4 </translation>
</message>
<message>
<source>Fitting Curve</source>

@ -83,6 +83,7 @@ public:
QString getLastError() const;
bool isRunning() const;
int getCurrentIteration() const;
int getTotalEvaluations() const;
void resetOptimizer();
void setTargetWellName(const QString& wellName);

@ -99,6 +99,7 @@ public:
QString getLastError() const;
bool isRunning() const;
int getCurrentIteration() const;
int getTotalEvaluations() const;
void resetOptimizer();
void setPSOTargetWellName(const QString& wellName);

@ -716,6 +716,12 @@ int nmCalculationAutoFitLM::getCurrentIteration() const
return m_currentIteration;
}
int nmCalculationAutoFitLM::getTotalEvaluations() const
{
// 返回本轮拟合实际调用真实求解器的总次数,供完成日志展示。
return m_totalEvaluations;
}
QVector<double> nmCalculationAutoFitLM::getBestSolution() const
{
// 返回紧凑的“启用参数向量”,顺序与 m_enabledParamIndices 一致。

@ -778,6 +778,12 @@ int nmCalculationAutoFitPSO::getCurrentIteration() const
return m_currentIteration;
}
int nmCalculationAutoFitPSO::getTotalEvaluations() const
{
// 返回本轮拟合实际调用真实求解器的总次数,供完成日志展示。
return m_totalEvaluations;
}
QVector<double> nmCalculationAutoFitPSO::getBestSolution() const
{
// 返回紧凑的“启用参数向量”,顺序与 m_enabledParamIndices 一致。
@ -3597,7 +3603,6 @@ void nmCalculationAutoFitPSO::updateParticle(int particleIndex)
particle.evaluatedThisIteration = true;
particle.lastEvaluationSuccess = true;
particle.screeningDecision = "initial_solution_cache";
emit logMessageGenerated(tr("Particle 1 reused the verified initial solution"));
} else {
QTime evalTimer;
evalTimer.start();

@ -787,12 +787,16 @@ void nmWxAutomaticfittingStart::onFittingFinished(bool success, const QString& m
int minutes = static_cast<int>(seconds / 60.0);
double remainSec = seconds - minutes * 60.0;
const int totalEvaluations = m_autoFitterLM
? m_autoFitterLM->getTotalEvaluations()
: (m_autoFitterPSO ? m_autoFitterPSO->getTotalEvaluations() : 0);
// 同时给总秒数和分秒
addLogMessage(tr("Total fitting time: %1 s (%2 min %3 s)")
// 同时显示总秒数、分秒和本轮真实求解器调用次数。
addLogMessage(tr("Total fitting time: %1 s (%2 min %3 s), total solver calls: %4")
.arg(seconds, 0, 'f', 2)
.arg(minutes)
.arg(remainSec, 0, 'f', 2));
.arg(remainSec, 0, 'f', 2)
.arg(totalEvaluations));
}
}

Loading…
Cancel
Save