[mesa-users] Modify criterion for onset of convection
lgi201 at exeter.ac.uk
Wed Mar 9 09:14:36 EST 2016
Thanks for your email.
I edited the following lines to incorporate a beta term, which for testing I have set to 0.03:
gradT = (1 - Zeta)*gradr + Zeta*(grada + 0.03) ! C&G 14.79
if (debug) then
write(*,1) 'Bcubed', Bcubed
write(*,1) 'Gamma', Gamma
write(*,1) 'Zeta', Zeta
write(*,1) 'gradT', gradT
d_gradT_dvb = (1 - Zeta)*d_gradr_dvb + Zeta*d_grada_dvb + &
((grada + 0.03) - gradr)*d_Zeta_dvb
I assume this is the only part of the card that needs to be modified!
However, I initially had convergence issues as this additional term is reducing the convective efficiency heavily, i.e. analogous to having a very small mixing length parameter. By running the model first with beta = 0 and then rerunning from a later timestep with a non-zero beta term, I managed to successfully create models with inflated radii!
Thank you for your help,
On 7 Mar 2016, at 19:21, Chris Mankovich <cmankovich at ucsc.edu<mailto:cmankovich at ucsc.edu>> wrote:
You mentioned adding grad_beta to diff_grads so that it enters the stability criterion. I gather that we're now talking about modifying the MLT equations to be solved in a zone that is unstable to convection according to your new criterion.
At the moment, I am not seeing any changes in models with this grad_beta term, when I should be expecting a radius inflation due to a decrease in convective efficiency.
I think the first, concrete thing to check is gradT that MLT spits out in the two cases. If those come out the same, then your changes aren't affecting the MLT solve.
The subroutine set_convective_mixing is what solves the MLT cubic for gradT. I think your changes aren't doing anything because once the stability of the zone is evaluated, if the outcome is convection, then all "extra" information in gradL (composition, your beta term) is abandoned---notice how set_convective_mixing makes reference to grada, but not gradL. Since you're now modifying the equations themselves, it's somewhat involved (you need to decide what lines in set_convective_mixing need to be changed), but doable. The nice thing is you should be able to leave all the derivatives alone, if grad_beta is truly a constant.
On Mon, Mar 7, 2016 at 3:10 AM, Ireland, Lewis <lgi201 at exeter.ac.uk<mailto:lgi201 at exeter.ac.uk>> wrote:
Thank you both so far.
I wanted to ask a quick question re: changing the criterion. I have set gradL = grada + gradL_composition_term + grad_beta, but I also want the convective flux calculation to be calculated using (gradT - grada - grad_beta)^3/2 rather than (gradT - grada)^3/2, i.e. modify the superadiabatic gradient by this additional term. At the moment, I am not seeing any changes in models with this grad_beta term, when I should be expecting a radius inflation due to a decrease in convective efficiency.
I noticed that for the case where have_L_need_gradT = .false., it explicitly calculates Lconv with diff_grads = gradr - gradL as the superadiabatic gradient in the getresults() part of the code, which is what I would like to have, but how is it calculated for have_L_need_gradT = .true.? Is there a way I can include grad_beta in its calculation for this case, entirely within the run_star_extras.f file?
On 1 Mar 2016, at 10:51, Ireland, Lewis <lgi201 at exeter.ac.uk<mailto:lgi201 at exeter.ac.uk>> wrote:
Thank you, Chris.
I have decided to add grad_beta to gradL:
gradL = grada + gradL_composition_term + grad_beta
So when gradL is passed to diff_grads, it considers this extra term.
However, I am unsure whether to modify d_gradL_dvb = d_grada_dvb, as this is used to calculate d_diff_grads_dvb. I guess my question is, why is it okay to ignore the partials of the composition term, so I can decide if it’s okay to assume the same with my additional term?
Thank you again,
On 29 Feb 2016, at 17:09, Chris Mankovich <cmankovich at ucsc.edu<mailto:cmankovich at ucsc.edu>> wrote:
It looks like you have all the pieces in place. The guts of the MLT code are in the subroutine Get_results, where at some point diff_grads = gradr - gradL is calculated, and this is the quantity used in the stability criterion part of the code. This is what you want to adjust.
It might be important for you to note that if use_Ledoux_criterion == .false., then these routines see gradL_composition_term = zero so that gradL just reduces to grad_ad.
On Mon, Feb 29, 2016 at 5:31 AM, Ireland, Lewis <lgi201 at exeter.ac.uk<mailto:lgi201 at exeter.ac.uk>> wrote:
I wish to modify the Schwarzschild criterion for the onset of convection, i.e. nabla > nabla_ad, by replacing it with, nabla > nabla_ad + delta, where delta can be user inputted constant, thus affecting the superadiabatic profile of the model. I was following tutorials from the MESA summer school 2014, covering how to modify the standard convection prescription both inside and outside mlt_eval(), but I’m not sure that these can help me with the modifications I wish to make, as the tutorials stop before covering how to implement your own prescription of MLT.
I know it should be analogous to how your implementation of Ledoux criterion works, but it isn’t clear yet how to go about this. I have attached my run_star_extras.f, which as it stands includes other_mlt() (renamed to my_other_mlt()), mlt_eval() and do_mlt_eval().
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
mesa-users mailing list
mesa-users at lists.sourceforge.net<mailto:mesa-users at lists.sourceforge.net>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mesa-users