Skip to content
Commit 92e1b3ad authored by Andreas Klöckner's avatar Andreas Klöckner
Browse files

Implement Strang splitting

parent 10b2bddd
Loading
Loading
Loading
Pipeline #420 failed with stage
Loading
  • Maintainer

    Neat!

  • Author Owner

    Here's a puzzle: It's supposed to be second-order accurate, but it turns out to achieve an EOC of 4 (or, really, what seems like the order of the underlying schemes) in this test. I wonder why? It might have something to do with te simple nature of the test. Feel free to play around.

  • Maintainer

    I have another question. My understanding of Strang splitting is as follows:

    du/dt = A + B

    Say the interval is 0 to 1, and we start at u=u0.

    1. Starting with u0, solve du / dt = A from t = 0 to 1/2, get u1
    2. Starting with u1, solve du / dt = B from t = 0 to 1, get u2
    3. Starting with u2, solve du / dt = A from t = 1/2 to 1, get u3
    4. Return u3

    However, in this code, it would appear (line 81) that dt is updated to 1/2 after stage 1. So I am thinking this code runs Step 2 from t = 1/2 to t=1.5. Why is there no _elide_t_update in line 81?

  • Andreas Klöckner @inducer

    mentioned in issue #110 (closed)

    ·

    mentioned in issue #110 (closed)

    Toggle commit list
  • Author Owner

    You're right. The <t> values that this feeds to the solver are off in the way you describe. For autonomous ODEs though... ;)

    #110 (closed)

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment