UmbralRaptor changed the topic of #kspacademia to: https://gist.github.com/pdn4kd/164b9b85435d87afbec0c3a7e69d3e6d | Dogs are cats. Spiders are cat interferometers. | Космизм сегодня! | Document well, for tomorrow you may get mauled by a ネコバス. | <UmbralRaptor> … one of the other grad students just compared me to nomal O_o | <ferram4> I shall beat my problems to death with an engineer.
<Grayduster>
egg: You're probably already aware of this, but just checking anyway :) The catalan release of principia's readme still links to the cartan binaries.
<egg|zzz|egg>
Majiir: not sure what they're made of
<egg|zzz|egg>
!wpn Majiir
* Qboid
gives Majiir a ε-δ Bucket O' Nitrogens™
<egg|zzz|egg>
!wpn Majiir
* Qboid
gives Majiir a plutonium asterism-like theorem
<ExtinctionRaptor>
!wpn Majiir
* Qboid
gives Majiir an isothermic pilcrow/чертовщина hybrid
<Majiir>
hat
<Majiir>
.hat
<Majiir>
!hats
<Majiir>
!hats
<Majiir>
.hats
<Majiir>
@hats
<Soozee>
Unknown command, try @list
<ExtinctionRaptor>
.hat
<Majiir>
I tried that one
<ExtinctionRaptor>
er, right. #bottorture
<ExtinctionRaptor>
No hatbot in here.
<Majiir>
D:
* ExtinctionRaptor
chooses to believe that Qboid found The Devil's Pilcrow.
* ExtinctionRaptor
ponders what to do with current extinction calculations.
<ExtinctionRaptor>
(It's using a constaint exp(-0.11*airmass) across all wavelengths, where airmass is modified by an isothermal atmosphere w/ a scale height of 8400 m)
<ExtinctionRaptor>
It looks like from data taken at UT-austin, I can fit a constant opacity of 0.1 combined with a "rayleigh" part that scales with wavelength^-3. Not sure about the CFHT, given that it hits a plateau of around 0.1 at somewhat bluer wavelengths, and then falls off around 600-900 nm.
<ExtinctionRaptor>
I'm not planning on doing a model that takes into account all the molecular dipoles, vibrations, absorption lines, dust, ...
* ExtinctionRaptor
is tempted to go with the UTA paper's data, since that can be fit easily, and just warn about not trusting it completely, especially beyond ~350-950 nm.
<egg|zzz|egg>
ExtinctionRaptor: just get rid of the atmosphere
<ExtinctionRaptor>
egg|zzz|egg: One of my advisor's projects may involve that.
<egg|zzz|egg>
ah good
<ExtinctionRaptor>
(Okay, just a high precision radial velocity instrument in orbit. But still...)
<egg|zzz|egg>
ExtinctionRaptor: that seems inefficient, you should get rid of the atmosphere for everyone
* ExtinctionRaptor
should see about uploading some graphs.
* ExtinctionRaptor
stabs macbooks in their lack of RJ-45 jacks.
* ExtinctionRaptor
stares at their basically expended data plan.
<egg|zzz|egg>
ExtinctionRaptor: I think it's host based?
<egg|zzz|egg>
so when your ip changes it loses your hats probably
<egg|zzz|egg>
.hat
<egg|zzz|egg>
uh
<egg|zzz|egg>
wait I responnded in the wrong channel didn't I
<egg|zzz|egg>
Majiir: 6
<egg|zzz|egg>
s/6/^
<Qboid>
egg|zzz|egg meant to say: Majiir: ^
<Ellied>
ExtinctionRaptor: a good threat for a macbook would be "I'm gonna rip you an RJ-45 jack"
<BPlayer>
Egg? Let's do another heavy maths session?
<egg|zzz|egg>
sure, ask away
<BPlayer>
So, let me clarify if I understood the concept - I need to "simulate" the vehicle in physics ticks, and calculate every tick with a Runge-Kutta integrator. Right?
pizzaoverhead_ has joined #kspacademia
pizzaoverhead has quit [Ping timeout: 204 seconds]
<egg|zzz|egg>
yup
<egg|zzz|egg>
(this is because Runge-Kutta methods are one-step methods, so you need only the result of the previous step; you have multistep methods, stuff like Adams-Moulton and whatnot, that depend on k previous steps, but let's not get into that right now)
<BPlayer>
Now for the actual maths
<egg|zzz|egg>
BPlayer: now there is another question, which is choosing the size of the step
<BPlayer>
Oh, I can take care of that
<egg|zzz|egg>
this is tricky, and ideally you want an algorithm that chooses the step size for you
<egg|zzz|egg>
no, it *is* tricky, don't dismiss the trickiness :-p
<BPlayer>
I figured I might try to plot the results as Y for a step of X
<BPlayer>
And then I get a curve which I might try to extrapolate
<egg|zzz|egg>
yeah you can do convergence plots
<BPlayer>
So I don't think the time step would be an issue here.
<BPlayer>
So, for our function of Y' = f(t, Y). I need to define f here, which takes position, velocity and time, and changes those based on engine & gravity acceleration, correct?
<egg|zzz|egg>
yes
* egg|zzz|egg
needs to get back to principia bugs, so might be slow to respond
<BPlayer>
The function output is velocity and acceleration, then
<BPlayer>
No problem, it's not like I am in a hurry
<egg|zzz|egg>
yup, it's velocity and acceleration
<egg|zzz|egg>
and the velocity is easy, you just take the one that was given to you as argument
<BPlayer>
And if I run this thing in a Runge-Kutta integrator it all checks out itself and I get the position and stuff?
<egg|zzz|egg>
(it's just that trick to turn a 2nd order differential equation to a first order one with higher dimension)
<egg|zzz|egg>
that's the idea, yes
<egg|zzz|egg>
BPlayer: you might find things easier to deal with if you start with a simple differential equation to test things out
<BPlayer>
Well, for now I still needto figure out the maths of the Runge-Kutta integrator
<egg|zzz|egg>
somethnig like y"=-y (harmonic oscillator)
<BPlayer>
For I still don't understand how I am supposed to differentiate a single point...
<BPlayer>
Also, I need to create a function out of the acceleration stuff. Which requires some not-immidiately-obvious maths too
<BPlayer>
But I believe I can do that.
<BPlayer>
What I need help with is the Runge-Kutta maths, again.
<BPlayer>
One more thing too
<BPlayer>
f takes as input t, position and velocity, but I only get an output of velocity and acceleration
<BPlayer>
So how do I get the new position for each t? DO I just add the velocity to the previous position?
<egg|zzz|egg>
f isn't the thing that gives you the new position, it's the thing that you use in the Runge-Kutta method to get the new position (and the new velocity)
<BPlayer>
So I don't need to worry about it at all?
<egg|zzz|egg>
<BPlayer> So how do I get the new position for each t? DO I just add the velocity to the previous position? <<< das ist vorwaerts Euler!
<egg|zzz|egg>
BPlayer: you need to understand how a RK method works
<BPlayer>
I believe I do
<egg|zzz|egg>
then you need to write one, and test it on a very simple problem (not gravity, that's already more elaborate)
<egg|zzz|egg>
try the differential equation q"=-q
<BPlayer>
It's an Euler method, which takes the derivative of the midpoint and not the starting point, then it uses that derivative, takes the midpoint again, and so on
<egg|zzz|egg>
yes, h is a common notation for the time step
<egg|zzz|egg>
it's either called h or Δt
<egg|zzz|egg>
h is probably more frequent
<BPlayer>
So it is just a multiplication?
<egg|zzz|egg>
yup
<BPlayer>
Okay, thanks a lot!
<egg|zzz|egg>
(yeah, you have to know what the Kreidehaufen is to know whether writing it next to something means multiplying or something fancier)
<egg|zzz|egg>
notation is fun
<BPlayer>
And, still, how does one calculate this butcher tableau? I haven't found anything on that...
<egg|zzz|egg>
you look it up
<BPlayer>
That's not something you just go and calculate, then? :D
<egg|zzz|egg>
or you publish a paper in a journal of numerics where you come up with a new and fancier Butcher tableau
<egg|zzz|egg>
but that's kind of the job of numericists :D
<BPlayer>
Okay, got it
<egg|zzz|egg>
(the tableau for RK4 for instance was invented by Runge and Kutta)
<BPlayer>
Thanks a lot! I am downloading principia for KSP 1.3, you bought me here! :D
<egg|zzz|egg>
we do not support 1.3 at this time
<egg|zzz|egg>
only 1.2.2
<BPlayer>
But when it's out
<egg|zzz|egg>
we're not really in a hurry to support 1.3 tbh
<BPlayer>
I still have 1.3, for my most essential mods haven't updated yet. I can wait.
<egg|zzz|egg>
Cauchy will target 1.2.2 still
<BPlayer>
I still have 1.2*
<BPlayer>
This will be a hell of a lot of CPU time per iteration, I anticipate. And I want to do it in JS. Probably will look like xkcd.com/303/ except for it will say "calculating"
<egg|zzz|egg>
why in JS?
<BPlayer>
Because that's the only suitable language I know enough to implement that
<BPlayer>
s/suitable/most suitable/
<Qboid>
BPlayer meant to say: Because that's the only most suitable language I know enough to implement that
<BPlayer>
egg: Now that I think of it, I am running into another problem
<BPlayer>
This is planned to interplanetary ejection/injection burns... But the problem is, a spiraling burn will screw with the target ejection velocity as calculated with a launch window planner
<BPlayer>
Is that even a problem I could theoretically solve some way?
<BPlayer>
Or just add another correction burn somewhere?
<Iskierka>
difference between the position of exit makes a negligible overall difference on the transfer. you're calculating a spiralling burn that will provide correct ejection velocity, then spin it around to find the starting position that gives correct direction
<BPlayer>
That's the problem. I am not sure the ejection velocity is correct
<egg|zzz|egg>
(in the two-body case which is what you're looking at)
<egg|zzz|egg>
in the many-body case it's Fun
<BPlayer>
I use https://alexmoon.github.io/ksp/ to calculate ejection/injection dV and plug that dV number into my "tool". That does not guarantee at all that the ejection velocity will still be correct.
<BPlayer>
Need to go for some time... Be back (hopefully) soon.
<BPlayer>
Thanks a lot for the help again.
h0rdak has left #kspacademia [#kspacademia]
<egg|zzz|egg>
!wpn Iskierka
* Qboid
gives Iskierka an allotropic solenoid
<egg|zzz|egg>
!wpn UmbralRaptor
* Qboid
gives UmbralRaptor a threaded turnstile
<egg|zzz|egg>
!wpn e_14159
* Qboid
gives e_14159 a neodymium chromium DIAC with a flail attachment
<e_14159>
I was summoned?
<soundnfury>
!wpn egg|zzz|egg
* Qboid
gives egg|zzz|egg a fried glider
<egg|zzz|egg>
e_14159: no, I just gave you a wpn
* e_14159
flails wildly
<egg|zzz|egg>
!wpn e_14159
* Qboid
gives e_14159 an apochromatic 2N3906
terminat0r has joined #kspacademia
<BPlayer>
Back!
<BPlayer>
Okay, and now I need vector maths help...
<BPlayer>
Somehow my school only taught vector addition and multiplication by scalar values, so I am a bit lost on that stuff.
<egg|zzz|egg>
BPlayer: have you read the Feynman lectures bit referenced at the beginning of that pdf? that should cover some things
<BPlayer>
No, I did not, let me see. Can I find them on the internet?
<UmbralRaptor>
This is about to become s/egg|zzz|egg/egg|aaa|egg/
BPlayer has joined #kspacademia
<BPlayer>
Hi again!
<UmbralRaptor>
\o
<UmbralRaptor>
egg|zzz|egg: IIRC, that was how "kraken drives" worked.
<egg|zzz|egg>
UmbralRaptor: ah but in stock that shouldn't be an issue, because the planet ignores the Kerbal
<egg|zzz|egg>
you see in Kerbal physics, when you touch a ladder, gravity doesn't directly apply to you anymore
<egg|zzz|egg>
instead the ladder imbues you with weight
<egg|zzz|egg>
UmbralRaptor: the net effect should be the same
<egg|zzz|egg>
UmbralRaptor: I see that there are still some kraken drives based on ladders though; I guess the logic is ripe for weird edge cases https://www.youtube.com/watch?v=-THq8Gip-Us
<kmath_>
YouTube - To the Mun and back without engines or fuel (working Kraken drive)
<Iskierka>
if they did it entirely with actual forces, it'd be easy enough to balance it. but it's hard to hold a thing in place with calculated & predicted forces
<Iskierka>
so they use a lot of fuzzy impulses and holding that don't have predictable force
<egg|zzz|egg>
anyway, TIL that when I touch a ladder gravity proceeds from the ladder
<egg|zzz|egg>
this is isn't even bad API design; it's nuts beyond my ability to word it
<egg|zzz|egg>
the ladder imbues you with gravity
<egg|zzz|egg>
whyyyyy
<Iskierka>
gravity lifts
<BPlayer>
egg, if I am not a total annoyance to you yet...
<BPlayer>
For what I am doing, I probably need to get an input as a circular, equatorial orbit and I will have to convert that to a velocity and position vector, right?
<UmbralRaptor>
Incidentally, are pods still the same mass whether or not they contain kerbals?
<egg|zzz|egg>
UmbralRaptor: no idea
<BPlayer>
UmbralRaptor: They are
<BPlayer>
Command seats are not, AFAIK
<UmbralRaptor>
BPlayer: Hah!
<egg|zzz|egg>
BPlayer: I don't know what input you get, that's something you know :-p but you're going to need to turn that to cartesian coordinates, yes
<Iskierka>
... so by a kerbal getting out and sitting outside for a bit you alter the orbit
<UmbralRaptor>
BPlayer: that sounds about right. I think Fundamentals of Astrodynamics has the conversions?
<egg|zzz|egg>
Iskierka: only in current principia
<Iskierka>
then again when it gets out and climbs inside
<egg|zzz|egg>
Iskierka: oh
<egg|zzz|egg>
Iskierka: you mean because of the mass?
<Iskierka>
certainly if it was spinning it'll change as you climb into the seat
<egg|zzz|egg>
there are separate things: EVAing creates weight, and touching a ladder means weight is imbued into you by the ladder
<egg|zzz|egg>
s/s weight/s mass/
<Qboid>
egg|zzz|egg meant to say: there are separate things: EVAing creates mass, and touching a ladder means weight is imbued into you by the ladder
<egg|zzz|egg>
BPlayer: yeah, that'll do
<egg|zzz|egg>
BPlayer: or that C++ I linked you will also do
<egg|zzz|egg>
!wpn UmbralRaptor
* Qboid
gives UmbralRaptor a fractal pentagon
* UmbralRaptor
penrose-tiles egg|zzz|egg
<egg|zzz|egg>
UmbralRaptor: that bug was just nuts though
<BPlayer>
But what I mean, if I have a circular orbit, I can shortcut that keplerian -> cartesian conversion somehow, for example by using vis viva. Can I not?
<egg|zzz|egg>
why is the ladder in charge of imbuing you with weight
<UmbralRaptor>
Yeah, a circular equitorial orbit is barely 2D, so you can do a very simplified conversion.
<egg|zzz|egg>
BPlayer: ask the astronomer dinosaur in the room
<UmbralRaptor>
But I'm less clear on why vis-viva. Uh, can I have the full problem restated?
<BPlayer>
Well, I am trying to create a tool to help plan extremely low TWR interplanetary hohmann transfer burns
* UmbralRaptor
needs an avatar of a dinosaur (avian okay, dromeosaur preferred) working with a telescope. >_>
<BPlayer>
Anyway, back to the problem. E.gg suggested I use an ordinary differential equation and plug that into a Runge-Kutta Integrator, in the form of q''(t) = acc_gravity(q(t)) + acc_engines(q(t),t)
<BPlayer>
So now here we are. I need to implement that in JavaScript and I am checking some details
<UmbralRaptor>
egg|zzz|egg: Hah.
* UmbralRaptor
isn't familair with JS, but this seems reasonableish.
<UmbralRaptor>
Anyway, link to your code? (To see if I understand the math)
<BPlayer>
To mine?
<UmbralRaptor>
Yeah.
<BPlayer>
Umbral: The image is licensed CC BY SA
<BPlayer>
I.e. I may do what I want, but I have to attach the same license to it and put a short credit notice
<BPlayer>
As for my code, there is no link, and basically no code (yet). Well, at least not the code that does the math magic
<UmbralRaptor>
Ah
<BPlayer>
I shall really get myself a GitHub account
<BPlayer>
But the math is fairly beefy, IMO. I doubt you would understand it without further explanation, unless you already know what it does
<BPlayer>
Test
<Iskierka>
you'd be surprised what mathematicians just glance at and go "okay"
<UmbralRaptor>
BPlayer: no unit tests yet.
* UmbralRaptor
is not a mathematician, but there is the off chance that I'd find something.
<BPlayer>
I'll work on it in the next few days, and post my progress. Or I'll make myself a GitHub account and do it there. I mean, I'll really need one some day, why not benefit from it now?
<BPlayer>
Ugh, now I can't find a telescope image
* UmbralRaptor
lessthanthrees GitHub.
<BPlayer>
Didn't think there were so few
<BPlayer>
I mean, there are plenty, but license stuffs... Ugh
<BPlayer>
Do you think it is bad if I just use an image from Amazon for it?
<Iskierka>
image taken from a telescope or of?
<UmbralRaptor>
If it's of a celestron/meade/orion/obsession/whatever, it's probably not particularly bad.
<UmbralRaptor>
ie: if it's a stock photo of a major telescope brand, it's the sort of thing where I expect a lack of harm. (Photographer was paid, etc)
<BPlayer>
Iskierka: Doesn not quite fit my needs
<BPlayer>
Uh, ignore that extra n
<BPlayer>
UmbralRaptor, okay let me choose a picture and you say if it's okay then.
<Iskierka>
lots of others on wiki and you're guaranteed they have good licensing, pretty much
<BPlayer>
Iskierka: I've looked on Wiki, didn't find any, TBH
<egg|nomz|egg>
<Iskierka> you'd be surprised what mathematicians just glance at and go "okay" <<< context? :D
<egg|nomz|egg>
oh hey a vixen refractor
<BPlayer>
CC BY SA too
<BPlayer>
egg: Soon to be operated by a raptor
<BPlayer>
:P
<egg|nomz|egg>
ferram4: read principia#1415
<Qboid>
[#1415] title: Vessel relative velocities change when switching to EVA | Park 2 vessels close to each other with as less relative speed as possible. Perform EVA from anyone of the vessels. The other vessel starts moving away with relative speed of about 2-3 m/s (as reported by the target frame navball.) Attaching a save file where this can be immediately verified.... | https://github.com/moc
<Qboid>
kingbirdnest/principia/issues/1415
<egg|nomz|egg>
ferram4: it is nuts
<BPlayer>
Oh well. Need to go again. See you tomorrow!
<UmbralRaptor>
Eating out at semi-nice sit down places ($15-20) would run ~450-620/mo. I'm struck by the fact that a 2bd 1 bath I was at in Overland Park for a while was notably cheap at $700/mo. Plus utilities.
<egg>
ow, I have a couple of wounded dwarves after the mopping up from this invasion
<egg>
foot wounds
<egg>
UmbralRaptor: but they are being looked at by the doctors of starwatch of oxen
* egg
is not sure if that's entirely reassuring
<SnoopJeDi>
HAH, the DuClaw chalk label
<UmbralRaptor>
egg: Their insurance refuses coverage. Also something about "out of network"
<UmbralRaptor>
(Also, doctors or doctors?)
<egg>
UmbralRaptor: I have competent surgeons but they're busy chatting in the library, so a dabbling surgeon did the job
<egg>
UmbralRaptor: seems to have worked?
<Iskierka>
#nocontext
<egg>
Iskierka: DF
<Iskierka>
It's more fun without context
<UmbralRaptor>
DF is usually distinctive enough that you can divine that much context.
<egg>
UmbralRaptor: basically all those who opened a book about surgery think they can do it, I should probably forbid them from touching a patient
<Iskierka>
are they managing at least?
<egg>
ah now an expert human diagnoser will look at a dwarf
<egg>
UmbralRaptor: that human recently felt doubt after discussing pulmonary medicine
<egg>
also doubt
<egg>
s/doubt/tidal height/
<Qboid>
egg meant to say: also tidal height
<egg>
and combustible materials
<egg>
UmbralRaptor: ... basically nomal but with doubt
<egg>
"he was in doubt after discussing aqua regia"
<egg>
"he was in doubt after discussing plants as surgical models"
<egg>
"he was in doubt after discussing fracture classifications"
<egg>
uh, you're going to be looking at a fracture
<UmbralRaptor>
Perhaps the data had a large p-value?