summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaron Kent-Dobias <jaron@kent-dobias.com>2025-04-21 19:09:21 -0300
committerJaron Kent-Dobias <jaron@kent-dobias.com>2025-04-21 19:09:21 -0300
commit3ff3bcc3545f04443231c2f3a89edfe5d15859fb (patch)
treebe1e6280d8c4a2c156cec064f986316d2af9b673
parent3d11ca6b53efd4592d12282020a7f2f8da4bc042 (diff)
downloadcode-master.tar.gz
code-master.tar.bz2
code-master.zip
Disable increasing γHEADmaster
-rw-r--r--log-fourier_integrator.cpp15
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]);