Ann suggested that we modify Langevin_evolution to return source terms for the fields so that we could try higher order Langevin time integration methods like Runge-Kutta, as John pointed out.
We didn't get to this over the last couple of days but this might be good after the verification is finished? Just wanted to make a note so we don't forget.
As I understand it, it would require the following changes ...
In Langevin_evolution right now, the phi_new update looks like this:
Ann suggested that we modify Langevin_evolution to return source terms for the fields so that we could try higher order Langevin time integration methods like Runge-Kutta, as John pointed out.
We didn't get to this over the last couple of days but this might be good after the verification is finished? Just wanted to make a note so we don't forget.
As I understand it, it would require the following changes ...
In Langevin_evolution right now, the phi_new update looks like this:
phi_new_1_Re = phi_old_1_Re + eps K1_Re + sqrt(eps) eta_1 phi_new_1_Im = phi_old_1_Im + eps K1_Im phi_new_2_Re = phi_old_2_Re + eps K2_Re + sqrt(eps) eta_2 phi_new_2_Im = phi_old_2_Im + eps K2_Im
We would make a MultiFab to hold the source terms for each field (e.g. L_source) and then fill it in the Langevin_evolution step like:
L_source_1_Re = K1_Re + eta_1 / sqrt(eps) L_source_1_Im = K1_Im L_source_2_Re = K2_Re + eta_2 / sqrt(eps) L_source_2_Im = K2_Im
And then the phi_new update would look like forward Euler integration in Langevin time:
lattice_new = lattice_old + eps * L_source
But could also be extended to e.g. higher order RK methods.