[mesa-users] How does MLT handle core convection?

Bill Paxton paxton at kitp.ucsb.edu
Tue Mar 26 22:13:59 EDT 2013


Hi Josh,

On Mar 26, 2013, at 3:20 PM, Josh Shiode wrote:

> Hey users,
> 
> Been trying to figure out exactly what MESA does with the mixing length when scale_height(k) > r(k) as in a stellar core. 

You are undoubtedly familiar with the "alt" scale height, but for the record let me remind folks about it.
It is a clever idea I got from Peter Eggleton (thanks again Peter).  It prevents the r -> 0 blow up of the standard def.

         alt_scale_height_flag = .true.
            ! if false, then stick to the usual definition -- P/(g*rho)
            ! if true, use min of the usual and sound speed * hydro time scale, sqrt(P/G)/rho

> 
> So I've been rooting around in mlt/private and star/private.

Excellent!!!!

> I believe I found the answer in star/private/mix_info.f, but I'm looking for some verification..
> 
> It seems that in the subroutine end_of_convective_region it checks to see if the r(ktop) - r(kbot) for the convection zone is smaller than the initial guess at mixing length (s% mixing_length_alpha * s% scale_height). If dr < Hp, but not so small as to be pruned, then it recalculates the mlt info using a smaller alpha set so that Lambda = 0.5 * dr... 

Almost -- the test is dr < alpha*Hp where dr is the size of the convective zone and Hp is the smaller of the
scale heights at the top and bottom of the zone.  I think Dave Arnett suggested this addition -- it makes
sure that we don't use a mixing length that exceeds the size of the convection zone (sounds reasonable).

As out noticed, if the flag "remove_mixing_glitches" is true and the size of the zone (dr) is < 0.1 the mixing length,
we just convert the zone to radiative -- i.e., we consider the zone to be a "false alarm" from the MLT.

Otherwise, we use a reduced alpha to recompute the mlt info for the "bad" convection zone.
The reduced alpha ensures that the new mixing length <= 0.5*dr.

> 
> Is this prescription used both for shell convection zones and core convection zones (where r(kbot) --> 0)?

The code in question is used with all convection zones -- it doesn't know a shell zone from a core zone.

Great job finding this.   I hope others will follow your example -- root around in the code, then confirm what you think you've found by a email to the list.   ;-D

Cheers,
Bill







More information about the Mesa-users mailing list