-
Calculate
dt_{b_{i}}
according to Eq. 22 -
Calculate the
\eta_b
using the condition: (Page 8, right column, second paragaph) -
ETA_B = D_TIME_MIN / (2.0 * min(dt_{b_{i}});
-
Initialization of dt = D_TIME_MIN / 2 (Question1: This for everyone? or we just use the minimum?)
-
For each binary, we follow the procedure:
-
Determinate new
dt
, calculating the minimum of the members (Question 2: we already initialized one, so they are the same?) -
(Huge Question 3)
-
I understand that for a certain
t
we determinate if it's even or odd according to thedt
, and what to do in both cases but what is the meaning of the phrase "If t is odd, we maintain the same time step and by usingDELTA t_old
we determine the time step at both the beginningdt_{0}
and the enddt_{1}
of that time step and find their average: dt = (dt_0 + dt_1)/2" -
Let's do an example:
- We have a certain time
tt
and our timestepdtt
, at the end, the time is odd, so we maintain thedtt
(DELTA t_old)- What is dt0?
- What is dt1?
- If dt0 = dtt ,our dt1 will also be dtt?
- is that is the case, dt = (dt0 + dt1)/2 = (dtt + dtt)/2 = dtt
- So the restriction makes no sense because dt/2 < dtt = dt < dt.
- We have a certain time
-
Prediction (Get Predicted pos/vel)
-
3 times
-
Update forces using predicted positions and velocities
-
Calculate perturbation forces (Question 4: This implementation is based on which work?, See lasts comments of your email)
-
correct positions and velocities (Question 5: Normal Hermite, updates the REAL pos/vel, but since here we are repeating the force update and correction process, we correct the PREDICTED pos/vel ?)
We find new time steps for the particles. If a binary is not terminated, its corresponding ghost does not change time step.
There is another special treatment for the ghost particles? I Predict-Update Forces-Correct positions/velocities normally as the other particles, but only this conditions of the timesteps is required?
Yes, only over the neighbours. I trust the list of neighours because I have spent a lot of time on it, so there is no need to search among all particles for perturbers. To be on the safe side, you can have the neighbour radius a little large, so you don't miss anything. I have to say here that I don't tryst very much Myriad's treatment of perturbers. It is working, but I did not test it very much. It is hard to test it anyway.
Let's assume the next steps
Integration (using int times t=0,1,2,3,4,5...)
- If there are binaries -> integration
- Prediction (N)
- Update forces (Nact) <- calculate neighbor list
- Check for new binaries
- Correction (N)
- At a t=0 I found binaries on step 4,
- so the next time (loop) t=1 I enter into the step 1,
- but since I formed the ghost particle in the previous step
- I don't have the neighbor list which is calculated in the step 3
- Should I build the neighbor list for every ghost particle when it's created?
- Or for the "first" evolution of the binary I use one of the members neighbor's list?