Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
6f0a36a
Three component phase separation for ultramassive white dwarfs (#860)
mcastrotapia Sep 30, 2025
8f5455c
fix fortitude issues
Sep 30, 2025
039cf6a
fix script permissions, more fortitude fixes
Sep 30, 2025
877adcf
[ci skip] fix license statements
pmocz Oct 8, 2025
137270d
Merge branch 'main' into three_component_PS
Apr 20, 2026
5f25c17
revert some minor changes, address some compiler warnings
Apr 20, 2026
7f154b7
fix indentation
Apr 20, 2026
f48db78
fix whitespace, remove some unused variables flagged by compiler warn…
Apr 20, 2026
5519a13
introduce option to redistribute phase separation energy over inner h…
Apr 20, 2026
2f34b44
try removing extra safeguard that PS heat smoothing should prevent ne…
Apr 20, 2026
0ace375
simplify some diffs and remove extra crystal_core_boundary_mass check
Apr 20, 2026
0862c00
refactor phase separation into separate 2component and 3component flows
Apr 21, 2026
49b9525
rename phase separation outer loop routine
Apr 21, 2026
06fd431
remove some unused variables
Apr 21, 2026
9f68f59
more unused variables
Apr 21, 2026
383cca4
remove some extraneous diffs
Apr 21, 2026
c4ce732
indentation and spacing (no code changes)
Apr 21, 2026
0bc26a7
minimize diffs
Apr 21, 2026
eefd2f7
partial fixup for 3 component test case
Apr 21, 2026
e4b06fd
convert 3-phase PS data files to hdf5
Jun 15, 2026
8f0fa5c
delete large 3-component PS .dat files
Jun 15, 2026
e1268d1
fix index-ordering issue in h5 files for fortran-style reads
Jun 15, 2026
e4aac7b
fix memory leak when reading 3-component PS files repeatedly
Jun 15, 2026
6ce60bb
[ci skip] move phase separation data files into star_data
Jun 18, 2026
42c5f7b
Merge branch 'main' into three_component_PS
Jun 18, 2026
8257a46
[ci skip] setup for test-suite integration for wd_o_ne_3_phase (work …
Jun 18, 2026
5b9c201
clean up inlist_wd_o_ne_3_phase and test
Jun 19, 2026
8d97fac
[ci optional] clean up starting model generation for wd_o_ne_3_phase,…
Jun 19, 2026
adecbdb
[ci skip] pgstar cleanup
Jun 19, 2026
922da39
add missing test suite calls to run_star_extras
Jun 19, 2026
895fb48
[ci optional] document 3-component option in controls.defaults, full …
Jun 19, 2026
9ad91e1
Make WD phase separation smooth heating by default.
Jun 20, 2026
7795314
add missing variable declaration
Jun 20, 2026
991d568
Update README.rst (#1037)
mcastrotapia Jul 31, 2026
994e9b9
tweak README and include images
Jul 31, 2026
3885214
Merge branch 'main' into three_component_PS [ci optional]
Jul 31, 2026
20dff1c
[ci optional] have wd model generation stop slightly earlier in wd_o_…
Aug 10, 2026
f68c1b9
[ci optional] make wd_o_ne_3_phase more robust to atmosphere/EOS prob…
Aug 11, 2026
72ca041
document heat redistribution for phase separation better, add check f…
Aug 14, 2026
e44e1ee
Merge branch 'main' into three_component_PS [ci optional]
Aug 14, 2026
4d08cef
add changelog entry
Aug 14, 2026
58c60d1
[ci optional] fix atmosphere boundary table transition problem
evbauer Aug 15, 2026
48bf726
Merge branch 'main' into three_component_PS
evbauer Aug 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions data/star_data/phase_separation/COMg_deltaC.h5
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/star_data/phase_separation/COMg_deltaMg.h5
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/star_data/phase_separation/CONe_deltaC.h5
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/star_data/phase_separation/CONe_deltaO.h5
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/star_data/phase_separation/NeOMg_deltaMg.h5
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/star_data/phase_separation/NeOMg_deltaO.h5
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/star_data/phase_separation/ONeNa_deltaNa.h5
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/star_data/phase_separation/ONeNa_deltaO.h5
Git LFS file not shown
2 changes: 2 additions & 0 deletions docs/source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ MESA's documentation now includes a generated :ref:`Test Suite Gallery <tagoverv
Diffusive overshooting (overmixing) prescriptions now support a
``step+exponential`` option, see :ref:`reference/controls:overshoot_scheme`.

White dwarf phase separation now includes an option to use three-component phase diagrams, automatically selected according to the dominant three elements in the crystallizing layer, based on the work of `Castro-Tapia & Cumming (2025) <https://ui.adsabs.harvard.edu/abs/2025ApJ...991...64C>`_. See documentation at :ref:`reference/controls:phase_separation_option` and new test case exercising this capability in an ultramassive white dwarf :doc:`test_suite/wd_o_ne_3_phase`.

MESA no longer stops when reactions for which special rates are set are not in the nuclear network, only a warning is printed. This is intended to make it easier to test various network sizes without having to also change the list of special reactions.

GYRE has been upgraded to 9.1.1, the most recent stable release. Changes since the previous release (8.1) included in MESA can be seen `here <https://github.com/rhdtownsend/gyre/releases>`__.
Expand Down
1 change: 1 addition & 0 deletions docs/source/test_suite/wd_o_ne_3_phase.rst
17 changes: 17 additions & 0 deletions star/defaults/controls.defaults
Original file line number Diff line number Diff line change
Expand Up @@ -7573,6 +7573,9 @@
! phase diagram of `Blouin & Daligault (2021a) <https://ui.adsabs.harvard.edu/abs/2021PhRvE.103d3204B>`_.
! + ``'ONe'`` : oxygen-neon phase separation using the two-component
! phase diagram of `Blouin & Daligault (2021b) <https://ui.adsabs.harvard.edu/abs/2021ApJ...919...87B>`_.
! + ``'3c'`` : three-component phase separation option dynamically selects dominant three components out
! of C/O/Ne/Na/Mg and applies three-component PS procedure based on
! `Castro-Tapia & Cumming (2025) <https://ui.adsabs.harvard.edu/abs/2025ApJ...991...64C>`_.

! ::

Expand All @@ -7589,6 +7592,20 @@

do_phase_separation_heating = .true.

! smooth_phase_separation_heating
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

! if true, redistribute all heating associated with phase
! separation evenly throughout the inner half of the white dwarf.
! This is a somewhat arbitrary choice to broadly distribute the
! correct amount of net heating through the WD interior where
! heat conduction is efficent anyway, preventing unphysical localized
! heating spikes near the crystallization boundary at small time steps.

! ::

smooth_phase_separation_heating = .true.

! phase_separation_mixing_use_brunt
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
3 changes: 3 additions & 0 deletions star/private/ctrls_io.f90
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@ module ctrls_io
do_phase_separation, &
phase_separation_option, &
do_phase_separation_heating, &
smooth_phase_separation_heating, &
phase_separation_mixing_use_brunt, &
phase_separation_no_diffusion, &

Expand Down Expand Up @@ -1779,6 +1780,7 @@ subroutine store_controls(s)
s% do_phase_separation = do_phase_separation
s% phase_separation_option = phase_separation_option
s% do_phase_separation_heating = do_phase_separation_heating
s% smooth_phase_separation_heating = smooth_phase_separation_heating
s% phase_separation_mixing_use_brunt = phase_separation_mixing_use_brunt
s% phase_separation_no_diffusion = phase_separation_no_diffusion

Expand Down Expand Up @@ -3442,6 +3444,7 @@ subroutine set_controls_for_writing(s, ierr)
do_phase_separation = s% do_phase_separation
phase_separation_option = s% phase_separation_option
do_phase_separation_heating = s% do_phase_separation_heating
smooth_phase_separation_heating = s% smooth_phase_separation_heating
phase_separation_mixing_use_brunt = s% phase_separation_mixing_use_brunt
phase_separation_no_diffusion = s% phase_separation_no_diffusion

Expand Down
Loading
Loading