<egg|laptop|egg>
Majiir: e.g. if Jupiter uses stepsize h, Saturn must use 2h or h or 3h
<egg|laptop|egg>
what you're really doing is writing a weird splitting
<egg|laptop|egg>
Majiir: so I should give you a general theory paper I guess
<egg|laptop|egg>
if you're interested in the more general aspects of this
<egg|laptop|egg>
hmm
* egg|laptop|egg
dives
<egg|laptop|egg>
Majiir: tripartite splitting, that should give you an idea of why/how the individual time step thing works https://arxiv.org/pdf/1306.0627.pdf
<egg|laptop|egg>
it's basically that with higher values of 3
e_14159 has quit [Ping timeout: 190 seconds]
<egg|laptop|egg>
Majiir: they just use Verlet/Leapfrog/Stoermer/Delambre/Newton, so it's nicely composable
<egg|laptop|egg>
if you use a fancier integrator it's much harder to do those tricks
<egg|laptop|egg>
because you don't get things that fall at half timesteps
<egg|laptop|egg>
the stages have different sizes
<egg|laptop|egg>
and it all gets weird
<egg|laptop|egg>
hmm
* Majiir
gasps for air
* Majiir
drowns in blood from papercuts
<egg|laptop|egg>
Majiir: oooh I forgot to tell you about multistep methods
e_14159 has joined #kspacademia
<egg|laptop|egg>
see if you look at our code, our integrators have instances
<egg|laptop|egg>
because they're not all stateless
<egg|laptop|egg>
for a one-step method, you compute x(t+h) from x(t)
<egg|laptop|egg>
and ok, you do compensated summation, so actually you store that in double precision
<egg|laptop|egg>
but it still feels like just the state of the system no more
<egg|laptop|egg>
but you have multistep methods
<egg|laptop|egg>
there you compute x(t+h) from x(t), x(t-h), x(t-2h), ...
<egg|laptop|egg>
and so there you need state
<egg|laptop|egg>
you need to keep all of those
<egg|laptop|egg>
and you have another (one-step) integrator to bootstrap so you can get your n previous steps before you start on the multistep
<egg|laptop|egg>
Majiir: now, there's a theorem that says that if you're multistep and symplectic, you're actually one-step
<egg|laptop|egg>
Majiir: that sounds like a sad but useful result, no need to look there...
<egg|laptop|egg>
but!
<egg|laptop|egg>
Majiir: you can be conjugate-symplectic
<egg|laptop|egg>
that means that an equivalent one-step method is the conjugate of a symplectic method
<egg|laptop|egg>
but thus if you repeat it, the result is still conjugate symplectic (conjugate by the same thing, so the conjugation cancels in the middle, think matrices)
<egg|laptop|egg>
Majiir: and that has all the properties you want in terms of preserving energy etc.
<egg|laptop|egg>
you can't quite do all the same tricks when you want to make custom nonsense (you have to remember it's not symplectic there), but if you just want to use it off the shelf it's good
<egg|laptop|egg>
Majiir: now multistep methods are really nice, because instead of having many force evaluations per step, they have one
<egg|laptop|egg>
because they reuse the force evaluations from previous steps
<Majiir>
Because you're remembering each of these steps?
<Majiir>
got it
<Majiir>
That is something I'm interested in
<egg|laptop|egg>
yeah you keep f(x(t)), f(x(t-h)), etc.
<Majiir>
because that falls under the "do fewer computations" category
<egg|laptop|egg>
Majiir: now to compensate, you need to do a bit of linalg, so that becomes significant; but hopefully the force evaluation is big enough that you go to quite high order before linalg dominates
<egg|laptop|egg>
Majiir: they're very good for dense output
<Majiir>
linalg to compensate? o.O
<egg|laptop|egg>
when you want a lot of points
<Majiir>
You're still talking about the summation?
<egg|laptop|egg>
Majiir: no, I'm saying that because you need to combine all those previous force evaluations, you do lots of linalg
<Majiir>
ah
<egg|laptop|egg>
and since there's just one force eval, the linalg dominates faster
<egg|laptop|egg>
so when you want a lot of points (e.g. for plotting), the cost per point matters, as well as the cost per duration
<egg|laptop|egg>
and there the multisteps are killers: one force eval only! only leapfrog or Euler are that cheap
<egg|laptop|egg>
(but they're mehokish and veryshitty respectively)
<egg|laptop|egg>
Majiir: I recommend digging into the integrators folder and looking for paper references in the comments
<egg|laptop|egg>
plenty of things we haven't implemented by those same people too
<egg|laptop|egg>
we don't have integrators with processing atm
<egg|laptop|egg>
Majiir: any other questions?
<egg|laptop|egg>
if not I'll go back to zzz
<egg|laptop|egg>
have a good swim across the unending seas of papers
egg|laptop|egg has quit [Quit: Web client closed]
<Majiir>
I will surely have questions on another day
<Majiir>
For now you have given me more than enough paper :D
icefire has quit [Read error: Connection reset by peer]
Majiir is now known as Snoozee
soundnfury has quit [Remote host closed the connection]
ferram4 has quit [Read error: Connection reset by peer]
ferram4 has joined #kspacademia
egg|zzz|egg is now known as egg|principia|egg
Thomas is now known as Thomas|HERE
Thomas|HERE is now known as Thomas
GreeningGalaxy has joined #kspacademia
GreeningGalaxy has quit [Ping timeout: 201 seconds]
regex has joined #kspacademia
GreeningGalaxy has joined #kspacademia
Qboid has joined #kspacademia
GreeningGal has joined #kspacademia
GreeningGalaxy has quit [Ping timeout: 206 seconds]
Qboid has joined #kspacademia
GreeningGal has quit [Ping timeout: 201 seconds]
Qboid has joined #kspacademia
egg|principia|egg is now known as egg
<egg>
hi regex
<regex>
\o egg
ferram4 has quit [Read error: Connection reset by peer]
ferram4 has joined #kspacademia
<e_14159>
egg: No more principia?
<egg>
?
<e_14159>
[19:34] *** egg|principia|egg is now known as egg.
<egg>
well I wasn't debugging principia
<egg>
so I switched to egg :-p
<egg>
also everytime I say egg my phone vibrates
<egg>
I did it again
<e_14159>
But you also don't sleep for weeks at a time, yet still go by egg|zzz|egg
<e_14159>
Don't egg it on.
<e_14159>
(Yes, I made that joke. Yes, I do feel horrible)
<egg>
"don't sleep for weeks at a time" uh I'm not sure how to parse that
<e_14159>
egg: Well, you sometimes don't change your nick from "egg|zzz|egg" for several weeks, yet I am sure you still have periods of non-sleep during that time.
<UmbralRaptor>
SnoopJeDi: Did they use FORTRAN to set 3 equal to 5?
<egg>
SnoopJeDi: are those acronyms? can you add them to qboid?
<egg>
FORTRAN?
<egg>
!acr -add:FORTRAN FORmula TRANslation
<Qboid>
egg: I added the explanation for this acronym.
<SnoopJeDi>
egg, don't know, don't care
<SnoopJeDi>
I hope the creator steps on a LEGO
<SnoopJeDi>
I hope he hits every red light on the way home
<SnoopJeDi>
I'm reduced to reading their godawful C++ to try and suss out what in the nine hells their code actually *does*, and it's spoiled my mood
<SnoopJeDi>
well, yes, some of them are acronyms. PSI is Paul Scherrer Institute, FFAG is fixed-field-alternating-gradient, etc. But some aren't, CARBONCYCL is just "carbon cyclotron" because some jerk wanted to study a specific machine and stuck their own specific routines into the code