[Mesa-users] Binary system: angular momentum lost by accretor at breakup rotation
Ruggero Valli
ruvalli at MPA-Garching.MPG.DE
Tue Feb 14 08:27:34 UTC 2023
Hi Pablo,
Thank you for the long answer (and for the extensive in-person
discussions). At this point my understanding is that the specific
angular momentum of the mass that is lost due to the accretor being at
critical rotation is the same as the one at the surface of the accretor.
Now I have a better feeling of what I need to take into account in case
I want to modify this assumption.
Cheers,
Ruggero
On 2/7/23 15:06, Pablo Marchant wrote:
> Hi Ruggero,
>
> The way this is dealt with can be a bit confusing, I'll try my best to
> describe below but let me know if any of it does not add up. I'll be a
> bit verbose and also point directly to the code in case you want to
> check these things directly (and also cause I want to be unambiguous).
>
> Whenever we model one step in the evolution of each star, the code
> uses a total mdot which is the addition of contributions from the
> stellar wind and the mass transfer rate (negative for the donor,
> positive for the accretor). If we care about winds taking away angular
> momentum from the star, it can be unclear what happens if, for
> instance, the mass transfer rate is equal to the wind mass loss rate,
> resulting in no net mass loss from the star.
>
> If you consider the case of a non-interacting star losing mass,
> angular momentum is taken from the star matching its surface specific
> angular momentum. The details on how this is done are in the
> subroutine adjust_J_lost in $MESA_DIR/star/private/adjust_mass.f90. If
> this star is in a binary the loss of orbital angular momentum is
> computed by assuming material takes away the specific angular momentum
> that corresponds to the mass losing component(s). This is done in the
> subroutine default_jdot_ml in in
> $MESA_DIR/binary/private/binary_jdot.f90. copying the relevant bit
> here we have:
>
> 130 !mass lost from vicinity of donor
> 131 b% jdot_ml = (b% mdot_system_transfer(b% d_i) + b%
> mdot_system_wind(b% d_i))*&
> 132 pow2(b% m(b% a_i)/(b% m(b% a_i)+b% m(b% d_i))*b%
> separation)*2*pi/b% period *&
> 133 sqrt(1 - pow2(b% eccentricity))
> 134 !mass lost from vicinity of accretor
> 135 b% jdot_ml = b% jdot_ml + (b% mdot_system_transfer(b%
> a_i) + b% mdot_system_wind(b% a_i))*&
> 136 pow2(b% m(b% d_i)/(b% m(b% a_i)+b% m(b% d_i))*b%
> separation)*2*pi/b% period *&
> 137 sqrt(1 - pow2(b% eccentricity))
> 138 !mass lost from circumbinary coplanar toroid
> 139 b% jdot_ml = b% jdot_ml + b% mdot_system_cct * b%
> mass_transfer_gamma * &
> 140 sqrt(standard_cgrav * (b% m(1) + b% m(2)) * b%
> separation)
>
> The first two parts of this relate to mass being lost from the
> vicinity of each component, while the third is to account for the
> ejection of material that has settled in a circumbinary
> disk. mdot_system_transfer and mdot_system_cct are computed directly
> from the mass transfer rate and the value of the alpha, beta and delta
> factors, in your case those are set to zero, so they do not play a
> role here (any mass lost due to being above the Eddington limit is
> also included in these factors, but I guess that is not relevant to
> you now). The value of mdot_system_wind is meant to account for the
> net wind mass loss coming from each star, and it is computed in
> $MESA_DIR/private/binary_evolve.f90, for instance this is what is done
> for the donor
>
> 310 b% mdot_system_wind(b% d_i) = b% s_donor% mstar_dot - b%
> mtransfer_rate &
> 311 + b% mdot_wind_transfer(b% a_i) - b%
> mdot_wind_transfer(b% d_i)
>
> The idea here is to recover the wind mass loss from the total mdot of
> the star minus any other contribution coming from mass transfer in the
> binary.
>
> So now, consider there is no mass transfer in a binary model. If a
> star is losing mass, the orbital angular momentum will be lowered as
> described above, and you will also lose spin angular momentum from the
> star itself as implemented in the adjust_J_lost subroutine (ie, taking
> its specific surface angular momentum). If the star happens to be
> tidally coupled, the loss of spin angular momentum will drain orbital
> angular momentum as the star re-synchronizes.
>
> Now if we consider the case where the wind is perfectly balanced with
> the mass transfer rate, such that the net mdot on the donor is zero,
> the loss of orbital angular momentum will still be computed as
> expected. However, as the stellar model does not have any actual mass
> change, its spin angular momentum will be unaffected. So this is where
> it becomes tricky, and one could think one needs a correction to
> account for the loss of spin angular momentum here. And there is an
> option to do this, implemented in the subroutine
> default_jdot_missing_wind in $MESA_DIR/binary/private/binary_jdot.f90.
> Just copying that subroutine here we have:
>
> 183 subroutine default_jdot_missing_wind(binary_id, ierr)
> 184 integer, intent(in) :: binary_id
> 185 integer, intent(out) :: ierr
> 186 type (binary_info), pointer :: b
> 187 type (star_info), pointer :: s
> 188 ierr = 0
> 189 call binary_ptr(binary_id, b, ierr)
> 190 if (ierr /= 0) then
> 191 write(*,*) 'failed in binary_ptr'
> 192 return
> 193 end if
> 194 b% jdot_missing_wind = 0
> 195 if (b% point_mass_i /= 0) return
> 196
> 197 s => b% s_accretor
> 198
> 199 if (s% mstar_dot < 0) then
> 200 b% jdot_missing_wind = b% mtransfer_rate * b%
> fixed_xfer_fraction
> 201 else
> 202 b% jdot_missing_wind = b% mdot_system_wind(b% a_i)
> 203 end if
> 204 b% jdot_missing_wind = b% jdot_missing_wind * s% j_rot(1)
> 205
> 206 end subroutine default_jdot_missing_wind
>
> The idea here is that whatever spin mass loss was not accounted for
> due to cancellation between wind and mass transfer rate is factored in
> as an additional loss of orbital angular momentum. If you want to
> enable this option you can use the option do_jdot_missing_wind, and
> you can also use your own one if you want to use a different angular
> momentum loss.
>
> So, that is a very long answer to what seems like a simple question.
> But in actual implementation accounting for all these sources/sinks of
> angular momentum can be tricky. Hope I did not miss any important
> details above, and my explanation is good enough to be digestable by
> you :).
>
> Let me know if (unsurprisingly perhaps) some of it remains unclear.
>
> Cheers!
>
>
> On Fri, Jan 27, 2023 at 7:56 PM Ruggero Valli
> <ruvalli at mpa-garching.mpg.de> wrote:
>
> Hi MESA users,
>
> I am modeling a binary during stable mass transfer with rotation
> enabled.
> I have set the mass transfer to be conservative
>
> mass_transfer_alpha = 0.0d0
> mass_transfer_beta = 0.0d0
> mass_transfer_delta = 0.0d0
> mass_transfer_gamma = 0.0d0
>
> and I am using the de Mink et al. 2013 model for the angular
> momentum of the matter that is accreted.
>
> do_j_accretion = .true.
>
> As soon as mass transfer starts, the accretor is spun up quickly
> to critical rotation (breakup), at which point it undergoes mass
> loss as described in controls.default ("For critical rotation mass
> loss"), until the surface falls below critical rotation again. And
> this excess mass appears to be lost from the binary system.
>
> *My question is the following: *what is the specific angular
> momentum that the code assumes for the mass that is lost due to
> the accretor being above critical rotation? Is this lost mass just
> handled as wind mass loss or does it have a different treatment?
>
> Thank you,
> Best regards,
> Ruggero
> _______________________________________________
> mesa-users at lists.mesastar.org
> https://lists.mesastar.org/mailman/listinfo/mesa-users
>
>
>
> --
> Pablo Marchant Campos
> M.Sc on Astrophysics, Universidad Católica de Chile
> PhD on Astrophysics, Argelander-Institut für Astronomie, Universität Bonn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20230214/dbae4262/attachment.htm>
More information about the Mesa-users
mailing list