diff options
-rw-r--r-- | log-fourier_integrator.cpp | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/log-fourier_integrator.cpp b/log-fourier_integrator.cpp index 750f79d..c30d01d 100644 --- a/log-fourier_integrator.cpp +++ b/log-fourier_integrator.cpp @@ -119,7 +119,6 @@ int main(int argc, char* argv[]) { Real γ = γ₀; Real ΔCmin = 1000; Real ΔCₜ = 100; - unsigned stepsDown = 0; unsigned stepsUp = 0; while (ΔCₜ > ε) { auto [RddfCt, dfCt] = RddfCtdfCt(fft, Cₜ, Rₜ, p, s, λ); @@ -137,17 +136,15 @@ int main(int argc, char* argv[]) { ΔCₜ = 0; for (unsigned i = 0; i < N; i++) { - ΔCₜ += std::norm(Ĉₜ[i] - Ĉₜ₊₁[i]); - ΔCₜ += std::norm(Ȓₜ[i] - Ȓₜ₊₁[i]); + ΔCₜ += std::norm(Cₜ[i] - Cₜ₊₁[i]); + ΔCₜ += std::norm(Rₜ[i] - Rₜ₊₁[i]); } ΔCₜ = sqrt(ΔCₜ) / (2*N); - if (ΔCₜ < ΔCmin) { + if (ΔCₜ < 0.9 * ΔCmin) { ΔCmin = ΔCₜ; stepsUp = 0; - stepsDown++; } else { - stepsDown = 0; stepsUp++; } @@ -157,12 +154,6 @@ int main(int argc, char* argv[]) { ΔCmin = ΔCₜ; } - if (stepsDown > stepsToRespond) { - γ = std::min(2*γ, 1.0); - stepsDown = 0; - ΔCmin = ΔCₜ; - } - for (unsigned i = 0; i < N; i++) { Cₜ[i] += γ * (Cₜ₊₁[i] - Cₜ[i]); Rₜ[i] += γ * (Rₜ₊₁[i] - Rₜ[i]); |