Time Integration of Entropy
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