[Mesa-users] magnetic breaking in hot stars

Josiah Schwab jwschwab at ucsc.edu
Wed Sep 2 10:00:40 EDT 2020

Hi Kareem,

In Section 2.2.4 of Paxton et al. 2015, it says:
> It is normally assumed that once a star becomes fully convective, the
>> dynamo process that regenerates the field will stop working or at least
>> behave in a qualitatively different
>> manner. Similarly, magnetic fields in stars with radiative envelopes are
>> of a significantly different nature than those seen in stars with
>> convective envelopes, and there is no simple way
>> to predict even the presence of magnetism (Donati & Landstreet 2009). By
>> default, MESAbinary only accounts for magnetic braking as long as the star
>> being braked *has a convective envelope and a radiative core,* though
>> the process might still operate outside of these conditions.
> (emphasis mine). However, I have found that with do_jdot_mb = .true.
> and keep_mb_on = .false., magnetic braking seems to operate even when the
> donor is hot (say, Teff = 10^4 K) and has a radiative envelope.  Poking
> around binary_jdot.f90, there is a check_radiative_core() function, but I
> don't see any obvious check whether the envelope is convection.
> Is this the desired implementation?

Sounds a bit surprising that the code doesn't match the instrument paper
description.  Pablo is on vacation right now, but when he returns, he may
be able to give more insight about the intentions.

Is there a good way to turn off mb when the donor has a radiative envelope
> (i.e. is above the Kraft break)?

You should be able to add your own test in run_binary_extras.  You can
access the star_info structure for the donor star with b% s_donor and then
manually toggle magnetic braking.

You might add something like this to extras_binary_finish_step

         ! will be false when envelope is radiative
         b% do_jdot_mb = b% do_jdot_mb .and. has_convective_envelope(b%

and then define a function that looks at the stellar structure and decides
if there's a convective envelope

      ! return true if envelope is convective
      logical function has_convective_envelope(s)
         type(star_info), pointer :: s
         has_convective_envelope = ???
      end function has_convective_envelope

you could start with just a simple test on Teff (i.e.,
has_convective_envelope = s% Teff < 6200) to check if this approach does
what you want and then make it more elaborate if needed.

Hope that helps,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20200902/4db59396/attachment.htm>

More information about the Mesa-users mailing list