- Mail actions: [ respond to this message ] [ mail a new topic ]
- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]

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

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
*