diff options
| author | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2025-04-19 17:07:05 -0300 | 
|---|---|---|
| committer | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2025-04-19 17:07:05 -0300 | 
| commit | be2aa67bc39d2e0b895738a94f24d5e89548f653 (patch) | |
| tree | 33d2fe4d7862e602eb487d097410539c78d16e03 | |
| parent | 4d350279c9ba8e0b02a4b853b41e5bf8303083dc (diff) | |
| download | code-be2aa67bc39d2e0b895738a94f24d5e89548f653.tar.gz code-be2aa67bc39d2e0b895738a94f24d5e89548f653.tar.bz2 code-be2aa67bc39d2e0b895738a94f24d5e89548f653.zip | |
Back to the old scheme
| -rw-r--r-- | log-fourier_integrator.cpp | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/log-fourier_integrator.cpp b/log-fourier_integrator.cpp index 9e9e46d..d7486e4 100644 --- a/log-fourier_integrator.cpp +++ b/log-fourier_integrator.cpp @@ -94,18 +94,22 @@ int main(int argc, char* argv[]) {        Real ΔC₀ = 100;        unsigned it = 0;        while (ΔC > ε) { +        std::vector<Real> dfC(N);          std::vector<Real> RddfC(N);          for (unsigned n = 0; n < N; n++) {            RddfC[n] = Rₜ[n] * ddf(λ, p, s, Cₜ[n]); +          dfC[n] = df(λ, p, s, Cₜ[n]);          }          std::vector<Complex> RddfCt = fft.fourier(RddfC, false); +        std::vector<Complex> dfCt = fft.fourier(dfC, true);          std::vector<Complex> Ȓₜ₊₁(N);          std::vector<Complex> Ĉₜ₊₁(N);          for (unsigned n = 0; n < N; n++) {            Ȓₜ₊₁[n] = (1.0 + pow(β, 2) * RddfCt[n] * Ȓₜ[n]) / (μ + 1i * fft.ν(n)); -          Ĉₜ₊₁[n] = - 2 * Γ₀ * Ȓₜ₊₁[n].imag() / (1 + pow(τ₀ * fft.ν(n), 2)) / fft.ν(n); +//          Ĉₜ₊₁[n] = - 2 * Γ₀ * Ȓₜ₊₁[n].imag() / (1 + pow(τ₀ * fft.ν(n), 2)) / fft.ν(n); +          Ĉₜ₊₁[n] = (2 * Γ₀ * std::conj(Ȓₜ₊₁[n]) / (1 + pow(τ₀ * fft.ν(n), 2)) + pow(β, 2) * (RddfCt[n] * Ĉₜ[n] + dfCt[n] * std::conj(Ȓₜ₊₁[n]))) / (μ + 1i * fft.ν(n));          }          std::vector<Real> Rₜ₊₁ = fft.inverse(Ȓₜ₊₁); | 
