Time Integration of Entropy

From: Ali <asnedden_at_nd.edu>
Date: Tue, 3 Sep 2013 10:48:48 -0400

Hello,

I am having difficulty understanding the usage of "dt_entr" in
advance_and_find_timesteps() in timestep.c.

As I understand it, the scale factor is used as the 'time' integration
variable by using the appropriate conversion factor from da/dt. The time
integration discretized and broken up onto an integer timeline from [0,
TIMEBASE] which directly maps to [log(a_i), log(a_f)].

So when integrating the equations of motion (per equations 27 and 28 in the
Gadget2 paper), the gravity integration make sense. The integer time (in
log(a)) is passed to get_gravkick_factor() which looks up the appropriate
integration values from GravKickTable[]. As I understand it, the values
stored in GravKickTable[] are the integrals of da from [a_i, a], but the
array values are spaced in steps of d(log(a)).

So the actual value returned from get_gravkick_factor() is the integral of
da with the appropriate factors of H(a) and a. This makes sense.

My confusion comes from the line (when All.ComovingIntegrationOn is true)
in timestep.c where
dt_entr = (tend - tstart) * All.Timebase_interval;

tend and tstart are on the integer timeline and map to [log(a_end),
log(a_start)]. If we are integrating the entropy w/r/t to da, I would
expect that line to instead be
dt_entr = All.TimeBegin * exp(tend*All.Timebase_interval) - All.TimeBegin *
exp(tstart*All.Timebase_interval);

This usage would be similar to the line in find_next_sync_point_and_drift()
where All.Time is updated.
So what have I missed here? Thank you for your time.

Sincerely,
Ali
Received on 2013-09-03 16:48:27

This archive was generated by hypermail 2.3.0 : 2023-01-10 10:01:31 CET