[Mesa-users] Setup for overshooting
Ebraheem Farag
ekfarag at asu.edu
Thu Apr 20 10:11:27 UTC 2023
Hello Wenyu,
I believe the order of precedence for overshooting is such
that overshoot_scheme(1) supersedes overshoot_scheme(2). In the current
form you have written, overshoot_scheme(2) will not take effect because
overshoot_scheme(1) will overwrite it. By switching the ranking, so that
your 'burn_z' overshoot scheme is (1), and your 'any' routine for all other
regions is set to (2), your scheme should work as intended.
----
Here is a pasted explanation from a previous email of how overshoot
functions pasted from the overshooting section of
$MESA_DIR/star/defaults/controls.defaults:
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. 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.
----
A common practice, though not required, is to take a step back such that fo
= 0.5*f, which helps establish a diffusion coefficient well inside the
convection zone. In the current form, your diffusion coefficient for (1) is
set to 0.006*Hp, as you are taking a 0.004*Hp step backward into the
convection zone, and then overshooting 0.01*Hp from this position.
In (2), you are taking a 0.004*Hp step backward and then overshooting
0.004*Hp forward, which is technically not overshooting above the
convective boundary and is instead enhancing the diffusion coefficient near
the edge of the convection zone.
----
Here is a corrected overshoot scheme, which is what I believe you might be
after? :
&controls
! less overshooting above Z burning shell (e.g. C, O, Si), overshoot
distance = 0.004*Hp
overshoot_scheme(1) = 'exponential' ! one of exponential or step
overshoot_zone_type(1) = 'burn_z' ! one of burn_H, burn_He,
burn_Z, nonburn, any
overshoot_zone_loc(1) = 'shell' ! one of core, shell, any
overshoot_bdy_loc(1) = 'any' ! one of bottom, top, any
overshoot_f(1) = 0.008 ! was 0.004
overshoot_f0(1) = 0.004
! overshooting for all shells, superseded by overshoot_scheme(1) for
burning Z shells, overshoot distance = 0.01*Hp
overshoot_scheme(2) = 'exponential' ! one of exponential or step
overshoot_zone_type(2) = 'any' ! one of burn_H, burn_He,
burn_Z, nonburn, any
overshoot_zone_loc(2) = 'any' ! one of core, shell, any
overshoot_bdy_loc(2) = 'any' ! one of bottom, top, any
overshoot_f(2) = 0.015 ! was 0.01
overshoot_f0(2) = 0.005 ! was 0.004 and is fine, but changed by EbF
for consistency with overshoot_scheme(1)
----
>"Another question is that if I want to test with no overshooting for shell
burning, can I set f = 0, or I need to give a very small value for f.
Because f and f0 shoould >0."
You can do this by setting: overshoot_scheme(1) = 'none' , instead of
'exponential' in the &controls I shared above.
-EbF
On Thu, Apr 20, 2023 at 2:35 AM 辛文宇 <xinwenyu16 at mails.ucas.ac.cn> wrote:
> Hi Everyone,
>
>
> I am going to change the overshooting of C-shell, O-shell and Si-shell
> burning to a smaller value.
>
> Can I set the overshooting as follows:
>
>
> overshoot_scheme(1) = 'exponential' ! one of exponential or step
> overshoot_zone_type(1) = 'any' ! one of burn_H, burn_He,
> burn_Z, nonburn, any
> overshoot_zone_loc(1) = 'any' ! one of core, shell, any
> overshoot_bdy_loc(1) = 'any' ! one of bottom, top, any
> overshoot_f(1) = 0.010
> overshoot_f0(1) = 0.004
>
>
> overshoot_scheme(2) = 'exponential' ! one of exponential or step
> overshoot_zone_type(2) = 'burn_z' ! one of burn_H, burn_He,
> burn_Z, nonburn, any
> overshoot_zone_loc(2) = 'shell' ! one of core, shell, any
> overshoot_bdy_loc(2) = 'any' ! one of bottom, top, any
> overshoot_f(2) = 0.004
> overshoot_f0(2) = 0.004
>
>
> In first part, the overshooting of all of the cores and shells are set to
> 0.01.
>
> Then second part change the 'f' of only the shells to 0.004, right?
>
>
> Another question is that if I want to test with no overshooting for shell
> burning,
>
> can I set f = 0, or I need to give a very small value for f. Because f and
> f0 shoould >0.
>
>
> Thanks,
>
> Wenyu
>
> _______________________________________________
> mesa-users at lists.mesastar.org
>
> https://urldefense.com/v3/__https://lists.mesastar.org/mailman/listinfo/mesa-users__;!!IKRxdwAv5BmarQ!bmHiP3-PihLTp-9DGHcp2mi-40kCuk2ZQdOueGJk74bQ3F8_AFGhOZIG-8uDaEdoJIo_zWhlZRoAIpQ8oJbcXb0RvQ$
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mesastar.org/pipermail/mesa-users/attachments/20230420/726e6321/attachment.htm>
More information about the Mesa-users
mailing list