caseyberger / nrrb

Complex Langevin code to compute properties of nonrelativistic, harmonically trapped, rotating, and interacting bosons.
2 stars 0 forks source link

Could return source terms for higher order Langevin time integration #9

Open dwillcox opened 5 years ago

dwillcox commented 5 years ago

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.

caseyberger commented 5 years ago

This would be fine, let's definitely circle back once we've verified the density and field modulus squared observables.

dwillcox commented 5 years ago

Ah, makes sense, sounds good!