[Mesa-users] Angular momentum change due to tides in binaries

Ruggero Valli ruvalli at MPA-Garching.MPG.DE
Mon Apr 3 08:12:01 UTC 2023


Dear Ebraheem,

Thank you, it is much clearer now. And thank you for opening the issue 
on github regarding the documentation.
Best,

Ruggero

On 3/31/23 23:47, Ebraheem Farag wrote:
> Hello Ruggero,
>
> This is out of my realm of expertise, but here is what I found:
> --------------------------------------------------
> The default scheme for determining 'delta_j(k)' in each zone is the 
> 'Uniform' prescription, which is toggled through the binary inlist 
> controls:
>
>
> ! + "Uniform" : Each layer is synced independently given the sync 
> timescale.
>
>
> ! ::
>
> sync_mode_1 = 'Uniform'
>
> sync_mode_2 = 'Uniform'
>
>
>
> Looking in binary_tides.f90, subroutine_sync_spin_to_orbit :
>
> *character* (len=strlen), *intent*(*in*) :: sync_mode ! where to 
> put/take angular momentum
>
>
> The default 'Uniform', results from the approach described in section 
> 2.4 of MESA III (Paxton et al. 2015) 
> <https://ui.adsabs.harvard.edu/abs/2015ApJS..220...15P/abstract> :
>
> *if* (sync_mode == "Uniform") *then*
>
> a1 = f2(b% eccentricity)
>
> a2 = pow(1-pow2(b% eccentricity), 1.5d0)*f5(b% eccentricity)
>
> *do* k=1,nz
>
> delta_j(k) = (1d0 - exp(-a2*dt_next/t_sync))*(s% j_rot(k) - 
> a1/a2*j_sync(k))
>
> *end* *do*
>
>
> with f2 and f5 coming from Hut 1981, A&A, 99, 126:
>
>
> *real*(dp) *function* f2(e)
>
> *real*(dp), *intent*(*in*) :: e
>
> f2 = 1d0
>
>
> ! Hut 1981, A&A, 99, 126, definition of f2 after eq. 11
>
> *if* (e > 0d0) *then*
>
> f2 = 1d0 + 15d0/2d0*pow2(e) + 45d0/8d0*pow4(e) + 5d0/16d0*pow6(e)
>
> *end* *if*
>
> *end* *function* f2
>
>
>
> *real*(dp) *function* f5(e)
>
> *real*(dp), *intent*(*in*) :: e
>
> f5 = 1d0
>
>
> ! Hut 1981, A&A, 99, 126, definition of f5 after eq. 11
>
> *if* (e > 0d0) *then*
>
> f5 = 1d0 + 3d0*pow2(e) + 3d0/8d0*pow4(e)
>
> *end* *if*
>
> *end* *function* f5
>
>
> --------------------------------------
> On the other hand the (non-default) sync mode:
>
> *else* *if* (sync_mode == "tdyn_div_tkh")
>
>  refers to a seperate iterative method for determining the 
> specific angular momentum "J(k)" of each model zone/cell by 
> iteratively solving for the efficiency 'ff' of angular momentum 
> transport in each zone. This iterative calculation is done until the 
> total change in angular momentum summed over all the zones is 
> equivalent to the 'delta_total_J', the total angular momentum change 
> of the model of the given timestep:
>
> delta_total_J = delta_total_J*(1d0- exp(-dt_next/t_sync))
>
>
> This is done by calculating the local dynamical timescale and the 
> local thermal timescale in each model zone, I suspect to provide some 
> physical basis for this parameterization, and then iterating to solve 
> for an ff that allows the total angular momentum to converge to the 
> "delta_total_J" calculated from the synchronization timescale.
>
> The comment you were referring to describes this iterative process:
>
>
>
> ! Iteratively solve the scaling factor ff to add (or remove) 
> delta_total_J.
>
> ! At each iteration, ff is solved such that each zone k has a change on
>
> ! its angular momentum J_k of the form:
>
> !
>
> ! Delta J_k = (J_k-J_{k,sync})*tdyn_div_tkh(k)**2*ff,
>
> !
>
> ! and the total change adds up to delta_total_J.
>
> ! Since tides can at most drive a layer into sync, ff cannot be
>
> ! solved right away. Then, each iteration solves ff ignoring layers
>
> ! going over sync, spreads the angular momentum to see which ones
>
> ! become synced, and then recalculates taking this into account
>
> ! until it converges.
>
>
> I did not write this routine, but I suspect that scaling Delta_J(k) 
> with tdyn_div_tkh(k)**2 is based off a physical argument that goes 
> something like this: zones which are evolving dynamically (sound 
> crossing time) will likely transport significantly more angular 
> momentum and tidally sync much faster than zones which are are 
> otherwise dynamically stable. Likely the thermal timescale is just 
> used for reference.
>
> Again, I am no expert in this topic, and others (particularly the 
> person who wrote this subroutine) might be able to provide a more 
> complete argument for this scaling relation.
> ------------------------------
> Since you brought this up, I actually looked into 
> the binary_controls.defaults to find that there is in fact no control 
> or documentation to toggle 'tdyn_div_tkh'. The documentation for this 
> control might have been accidentally overlooked control, and a 
> bug_report on the MESAHub Github <https://github.com/MESAHub> might be 
> in order to add something like the following to binary_controls.defaults:
>
>
> "! + "tdyn_div_tkh" : Each layer is synced independently using 
> tdyn_div_tkh to iteratively calculate the efficiency, given 
> the timescale."
>
>
> Hope this helps,
> EbF
>
>
> On Fri, Mar 31, 2023 at 3:04 AM Ruggero Valli 
> <ruvalli at mpa-garching.mpg.de> wrote:
>
>     Hello,
>     I am trying to understand how tidal torque is implemented in mesa.
>     In the 2015 instrument paper it is explained that each shell is
>     treated separately as a rigid body rotator, and each cell has the
>     same synchronization timescale t_sync
>     Therefore, I would expect that for each shell k the variation of
>     angular momentum Delta J_k would be
>
>     Delta J_k = -(J_k-J_{k,sync}) * dt/t_sync
>
>     Instead, looking at the subroutine sync_spin_to_orbit in
>     binary_tides.f90, it seems to me that
>
>     Delta J_k is proportional to (J_k-J_{k,sync}) *
>     tdyn_div_tkh(k)**2//(as explained in a comment in the code)
>
>     And the synchronization timescale t_sync//is only used to set the
>     proportionality constant by imposing that the total angular
>     momentum change of the star is
>
>     delta_total_J = (total_J - total_J_sync)*(1 - exp(-dt/t_sync))
>
>     My question is:
>     *Where does the factor *tdyn_div_tkh(k)**2/**/*come from and why
>     is it used instead of *dt/t_sync*?*
>
>     Cheers,
>
>     Ruggero
>
>     _______________________________________________
>     mesa-users at lists.mesastar.org
>     https://urldefense.com/v3/__https://lists.mesastar.org/mailman/listinfo/mesa-users__;!!IKRxdwAv5BmarQ!cTwhMimk4tUBA_PAcjTfciv-vPll2mS1DxOczgrouAMM1SOD9lr6KZBa-tdpzO1PjFmNuvRZM97s7I4HNN1wbGyDLQ$
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20230403/fdab6423/attachment.htm>


More information about the Mesa-users mailing list