[mesa-users] Fwd: [mesa:code] [r7407] - bill_paxton: now require user to set f0 > 0 for overshooting whenever have f > 0; both step and exponential

Bill Paxton paxton at kitp.ucsb.edu
Thu Feb 5 11:59:16 EST 2015


On Feb 5, 2015, at 1:30 AM, Warrick Ball wrote:

> What will happen when one uses f_ov in the astero module?  Currently this presumably invokes the present (r7184) f0=f default.

Hi Warrick,

Rich Townsend is the proud new owner of the astero module, so he'll need to make some changes for this.
E.g., he might decide to add a parameter to fix the ratio of f0_div_f so that the value of f0 would change automatically along with f.

It would also be a very good idea for anyone who is using the default (f0 < 0 to set f0 = f) to stop and consider what that is actually doing!
My guess is that many who carry out that exercise that will be surprised (horrified?) to realize that they don't really want the default after all.
They will of course blame me for a poor choice of default behavior (i.e., a default is bad if it doesn't do what they want).
I'll reply that they need to think about what the default is doing before they use it.  We might both be right.

The problem of mis-use of defaults for controls is wide-spread.  The solution isn't clear.   Users need assistance in setting parameters.  But the mesa developers cannot (and should not) take on the task of deciding what the users should do.  It really does finally have to be the user who takes responsibility for selecting reasonable parameter settings for the specific task.    Relying on defaults without understanding what they do is not a safe method.   It is slightly better to use an existing inlist from the test_suite for a case similar to what you are doing, but even there it should only be a way to get a quick start.  The user still needs to take responsibility for understanding what all those (damn) parameters are doing and how much influence they have on the results.

-B





> 
> W
> 
> On Wed, 4 Feb 2015, Bill Paxton wrote:
> 
>> Hi Falk,
>> On Feb 4, 2015, at 3:25 PM, Falk Herwig wrote:
>> 
>>      Hi Bill, just saw this change on the repo. Can you elaborate a bit. Sounds as if you are not allowing
>>      f0=0, which makes sense. Or did you remove the implicit setting of f0 = f.
>> Both.  When f is > 0, then the corresponding f0 must now be explicitly set to something > 0 as well.  No defaults
>> for f0.   
>> There has been confusion about f0 and f for exponential and step overshooting.   By getting rid of the default
>> option I hope to at least bring the confusion out into the open where it can be resolved rather than have the code
>> quietly do something that the user might not expect.
>> Here are the current lines from controls.defaults concerning overshooting.  Please take a look and feel free to
>> edit it into something better.  
>> - Bill
>> from star/defaults/controls.defaults
>>             ! The switch from convective mixing to overshooting happens
>>             ! at a distance f0*Hp into the convection zone
>>             ! from the estimated location where `grad_ad == grad_rad`, 
>>             ! where Hp is the pressure scale height at that location.
>>             ! A value <= 0 for f0 is a mistake -- you are required to set f0 as well as f.
>>             ! take a look at the following from an email concerning this:
>>             
>>                ! Overshooting works by taking the diffusion mixing coefficient at the edge 
>>                ! of the convection zone and extending it beyond the zone. But -- and here's the issue -- 
>>                ! at the exact edge of the zone the mixing coefficient goes to 0.  So we don't want that.
>>                ! Instead we want the value of the mixing coeff NEAR the edge, but not AT the edge.  
>>                ! The "f0" parameter determines the exact meaning of "near" for this.  It tells the code 
>>                ! how far back into the zone to go in terms of scale height. The overshooting actually 
>>                ! begins at the location determined by f0 back into the convection zone rather than at 
>>                ! the edge where the diffusion coeff is ill-defined.  So, for example, if you want 
>>                ! overshooting of 0.2 scale heights beyond the normal edge, you might want to back up 
>>                ! 0.05 scale heights to get the diffusion coeff from near the edge and then go out 
>>                ! by 0.25 scale heights from there to reach 0.2 Hp beyond the old boundary.  In the 
>>                ! inlist this would mean setting the "f0" to 0.05 and the "f" to 0.25.
>>             ! There is no default value for f0; if you set f > 0 then you must get f0 > 0 as well.
>> ----
>>             ! Optional step function for overshooting.
>>             ! This can be used simultaneously with exponential overshooting.
>>             ! When using step overshoot, you must set f0 as well as f.
>>             ! As above, `f0*Hp` determines r0 where switch from convection to overshooting.
>>             ! Overshooting extends a distance `step_f*Hp0` from r0
>>             ! with constant diffusion coeff `D = step_D + step_D0_coeff*D0`
>>             ! where D0 = diffusion coefficient D at point r0.
>> 
> 
> 
> ------------
> Warrick Ball
> Postdoc, Institut für Astrophysik Göttingen
> wball at astro.physik.uni-goettingen.de
> +49 (0) 551 39 5069





More information about the Mesa-users mailing list