Tagging people for a second opinion.
I have noticied: when mlt sets a zone to radiative, the diffusive mixing coefficient from mlt is set to 0, which prevents mixing. This is fine, but it is not clear how this should behave with rotation. Should the rotational mixing coefficient also be set to 0?
This can be problematic when controls like max_abs_du_div_cs_for_convection are used to limit convection over shocks. While convection across the shock is prohibited, rotation and potentially RTI can still mix zones across the shock interface, which can result in all sorts of issues.
see:
|
subroutine set_no_mixing(str) |
|
character (len=*) :: str |
|
include 'formats' |
|
|
|
s% mlt_mixing_type(k) = no_mixing |
|
|
|
s% grada_face_ad(k) = grada_face_ad |
|
s% grada_face(k) = grada_face_ad%val |
|
|
|
gradT_ad = gradr_ad |
|
s% gradT_ad(k) = gradT_ad |
|
s% gradT(k) = s% gradT_ad(k)%val |
|
|
|
Y_face_ad = gradT_ad - grada_face_ad |
|
s% Y_face_ad(k) = Y_face_ad |
|
s% Y_face(k) = s% Y_face_ad(k)%val |
|
|
|
s% mlt_vc_ad(k) = 0d0 |
|
if (s% okay_to_set_mlt_vc) s% mlt_vc(k) = 0d0 |
|
|
|
s% mlt_D_ad(k) = 0d0 |
|
s% mlt_D(k) = 0d0 |
|
s% mlt_cdc(k) = 0d0 |
|
|
|
s% mlt_Gamma_ad(k) = 0d0 |
|
s% mlt_Gamma(k) = 0d0 |
|
|
|
s% gradr_ad(k) = gradr_ad |
|
s% gradr(k) = s% gradr_ad(k)%val |
|
|
|
s% gradL_ad(k) = 0d0 |
|
s% gradL(k) = 0d0 |
|
|
|
s% scale_height_ad(k) = scale_height_ad |
|
s% scale_height(k) = scale_height_ad%val |
|
|
|
s% Lambda_ad(k) = mixing_length_alpha*scale_height_ad |
|
s% mlt_mixing_length(k) = s% Lambda_ad(k)%val |
|
|
|
s% L_conv(k) = 0d0 |
|
|
|
end subroutine set_no_mixing |
What does this affect? : Mainly rotating ppisn or cc models or really any model that is rotating and also has a shock interface.
What is the solution? : We need some check in mix_info.f90 that sets the diffusion coefficient to 0 when max_abs_du_div_cs_for_convection.
Perhaps somewhere inside
|
subroutine set_mixing_info(s, skip_set_cz_bdy_mass, ierr) |
Tagging people for a second opinion.
I have noticied: when mlt sets a zone to radiative, the diffusive mixing coefficient from mlt is set to 0, which prevents mixing. This is fine, but it is not clear how this should behave with rotation. Should the rotational mixing coefficient also be set to 0?
This can be problematic when controls like
max_abs_du_div_cs_for_convectionare used to limit convection over shocks. While convection across the shock is prohibited, rotation and potentially RTI can still mix zones across the shock interface, which can result in all sorts of issues.see:
mesa/star/private/turb_info.f90
Lines 291 to 332 in 735d8fe
What does this affect? : Mainly rotating ppisn or cc models or really any model that is rotating and also has a shock interface.
What is the solution? : We need some check in
mix_info.f90that sets the diffusion coefficient to 0 whenmax_abs_du_div_cs_for_convection.Perhaps somewhere inside
mesa/star/private/mix_info.f90
Line 48 in 735d8fe