-
Notifications
You must be signed in to change notification settings - Fork 57
Description
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:
mesa/star/private/turb_info.f90
Lines 291 to 332 in 735d8fe
| 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
mesa/star/private/mix_info.f90
Line 48 in 735d8fe
| subroutine set_mixing_info(s, skip_set_cz_bdy_mass, ierr) |