CPU pushe advances time incorrectly when RK4_ACCURATE_EFIELD is defined

Issue #3 resolved
Steve Abbott created an issue

When RK4_ACCURATE_EFIELD is defined, the pushe subroutine calls push_1step2 to push the electrons. pushe_1step2 advances the electrons a full dt each time it's called. Because it's nested inside a loop 'do epc=1,sml_nrk', this means the full pushe routine advances the electrons through 2*dt.

This is a remnant from the original pushe, which pushed the electrons using a RK2>RK4 hybrid scheme. The subroutine pushe_1step contains logic to differentiate based on the value of 'epc' and adjust dt and phase0 to do an RK2 midpoint step. This logic is absent from pushe_1step2, which is causing it to push to far.

The solution is to either enclose the electron RK2 loop in an ifdef so it doesn't run when RK4_ACCURATE_EFIELD is defined, or to deprecate the electron RK2>RK4 hybrid method completely in favor the RK4_ACCURATE_VERSION.

I hotfixed this on summitdev in 994d16e1c4 for @worleyph , but it needs to be fixed on the production branches.

Comments (5)

  1. Steve Abbott reporter

    pinging the original email thread participents: @seunghoeku , @eisung_yoon , @tskoskel , @efdazedo , and @rhager , too see if bitbucket will send them a notification about this thread.

  2. E.S. Yoon

    I successfully got the issue e-mail from bitbucket. Just a report. =)

    If some questions not related to some important issues such as an e-mail to ask to Seung-hoe where I can find the latest production run input or how to set input data for linear ITG simulation.. etc ... or similar matter.. It might not fit into "Issues" in bitbucket. It would be the best all the information are in a certain document, but realistically, if a certain related e-mail exchanges contain information, Can we selectively upload the info?... I lose the focus. Just a thought.

    @seunghoeku , @tskoskel , @efdazedo , @rhager , @abbotts1 - It appears if I want to send an e-mail through Comments of Bitbucket Issues to someone, all comments need to tag the person by "@""NAME" (without "), which automatically shows choices. I just knew this. @eisung_yoon

  3. Seung-Hoe Ku

    I have updated pushe.F90 in 3fieldEMSolver branch. This will make CPU only build work correct. Next thing to do is make RK4_ACCURATE_EFIELD always true, and simplify gpu code and cpu code with gpu.

  4. Log in to comment