[mesa-users] Temperature gradient from Canuto & Mazzitelli (1991)
Warrick Ball
wball at astro.physik.uni-goettingen.de
Wed Dec 17 04:33:46 EST 2014
Hi MESAlians,
What started off as a side interest following a conversation over a
conference lunch 12 days ago has ended up with me possibly having
implemented the temperature gradient from Canuto & Mazzitelli (1991) [1],
or just CM1991.
Much of the original paper is committed to determining the convective flux
according to a more detailed description of the spectrum of turbulent
eddies than in mixing length theory. These details are still a bit beyond
me, but the results of those calculation are tabulated in the paper and an
analytic fit given in their equation (32). This introduces a new factor
(eqn 34), involving the MLT convective flux (eqn 4), that must be
incorporated in the traditional cubic equation of Cox & Giuli (eqn 14.82
in the textbook; eqns 9 and 10 in CM1991).
The new form of the "cubic" (eqn 36) isn't really a cubic, so I used the
safe_root routines from mesa/num to solve the equation, using the MLT
value of the parameter Gamma as an initial guess. I solved for the
gradient of Gamma implicitly. The parameter Zeta in the code becomes
Zeta = Phi_CM/(1 + Phi_CM)
(see eqn 63 in the paper) where Phi_CM is the new convective flux, given
by the analytic fit (eqn 32). Again, the derivative can be computed
implicitly.
After some fumbling around, I seem to have succeeded in implementing the
new temperature gradient in MESA. I have attached a run_star_extras.f
that contains a modified version of MESA's own MLT routine, in which the
CM1991 temperature gradient is developed as a modification to the 'Cox'
option. Just set MLT_option = 'CM1991' and use_other_mlt = .true. in
&controls. (FYI, this was all developed in revision 7184.)
Attached is an HR track from a default work folder, modified to a 1 solar
mass model. The two tracks are for Cox MLT with alpha = 2 and CM1991
MLT with alpha = 0.75, up to core hydrogen exhaustion. They don't quite
match, which isn't totally surprising because the conversion between the
two is non-trivial. I'm trying to calibrate a solar model now to see what
value comes out.
Anyway, that's what I've done. It started out as an exercise in teaching
myself a bit more about convection in the models, and ended up with
something I hope that someone, somewhere might find interesting or useful.
I'd love to know if I've actually done the right thing. I've iterated on
the "cubic" equation (32), although the paper talks about iterating
directly on the convective flux (equation 63). I assume that these are
equivalent...
The fact that I got somewhere with the code is testament to it's clarity:
thanks again Bill and other contributors! Finally, note that I haven't
done anything regarding (a) the turbulent pressure, for which CM1991 also
offers a different expression (I think?), or (b) the suggestion of
limiting the mixing-length to the distance to the convective boundary.
Cheers,
Warrick
[1] http://esoads.eso.org/abs/1991ApJ...370..295C
------------
Warrick Ball
Postdoc, Institut für Astrophysik Göttingen
wball at astro.physik.uni-goettingen.de
+49 (0) 551 39 5069
-------------- next part --------------
A non-text attachment was scrubbed...
Name: run_star_extras.f
Type: text/x-fortran
Size: 68073 bytes
Desc:
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20141217/93e4d986/attachment.bin>
-------------- next part --------------
! inlist to evolve a 15 solar mass star
! For the sake of future readers of this file (yourself included),
! ONLY include the controls you are actually using. DO NOT include
! all of the other controls that simply have their default values.
&star_job
! begin with a pre-main sequence model
create_pre_main_sequence_model = .true.
! save a model at the end of the run
save_model_when_terminate = .false.
save_model_filename = '15M_at_TAMS.mod'
! display on-screen plots
pgstar_flag = .false.
/ !end of star_job namelist
&controls
use_other_mlt = .true.
MLT_option = 'Cox' ! 'CM1991'
mixing_length_alpha = 2 ! 0.75
! starting specifications
initial_mass = 1 ! 15 ! in Msun units
! stop when the star nears ZAMS (Lnuc/L > 0.99)
Lnuc_div_L_zams_limit = 0.99d0
stop_near_zams = .false. ! .true.
! stop when the center mass fraction of h1 drops below this limit
xa_central_lower_limit_species(1) = 'h1'
xa_central_lower_limit(1) = 1d-3
/ ! end of controls namelist
-------------- next part --------------
A non-text attachment was scrubbed...
Name: HR_CM91.png
Type: image/png
Size: 73284 bytes
Desc:
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20141217/93e4d986/attachment.png>
More information about the Mesa-users
mailing list