From 461e93ad25b61bc5e1ce8aaf9113fc4fd7c4b626 Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Thu, 15 May 2025 09:38:24 -0300 Subject: New way to adjust γ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- log-fourier_integrator.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'log-fourier_integrator.cpp') diff --git a/log-fourier_integrator.cpp b/log-fourier_integrator.cpp index b4b705f..b819456 100644 --- a/log-fourier_integrator.cpp +++ b/log-fourier_integrator.cpp @@ -132,6 +132,7 @@ int main(int argc, char* argv[]) { while (β < βₘₐₓ) { Real γ = γ₀; Real ΔCₜ = 100; + Real ΔCₜ₋₁ = 101; while (ΔCₜ > ε) { auto [RddfCt, dfCt] = RddfCtdfCt(fft, Cₜ, Rₜ, p, s, λ); @@ -183,6 +184,15 @@ int main(int argc, char* argv[]) { Ȓₜ[i] += γ * (Ȓₜ₊₁[i] - Ȓₜ[i]); } + if (ΔCₜ > ΔCₜ₋₁ * 5) { + γ = std::max(γ / 2, (Real)1e-2); + } + if (ΔCₜ < ΔCₜ₋₁) { + γ = std::min(1.001 * γ, (Real)1); + } + + ΔCₜ₋₁ = ΔCₜ; + std::cerr << "\x1b[2K" << "\r"; std::cerr << β << " " << Δβ << " " << μₜ << " " << ΔCₜ << " " << γ; } -- cgit v1.2.3-70-g09d2