From 72a8ca9382580ac72d4ed76b498f8c89106ed600 Mon Sep 17 00:00:00 2001 From: Earl Patrick Bellinger Date: Tue, 19 May 2026 17:22:45 -0400 Subject: [PATCH 1/6] [ci skip] MESA All Stars (test suite tag gallery) --- astero/test_suite/astero_adipls/README.rst | 24 + astero/test_suite/astero_gyre/README.rst | 23 + astero/test_suite/example_astero/README.rst | 2 + astero/test_suite/fast_from_file/README.rst | 2 + astero/test_suite/fast_newuoa/README.rst | 2 + astero/test_suite/fast_scan_grid/README.rst | 2 + astero/test_suite/fast_simplex/README.rst | 2 + astero/test_suite/surface_effects/README.rst | 2 + binary/test_suite/double_bh/README.rst | 22 + .../test_suite/evolve_both_stars/README.rst | 3 +- binary/test_suite/jdot_gr_check/README.rst | 3 +- binary/test_suite/jdot_ls_check/README.rst | 3 +- binary/test_suite/jdot_ml_check/README.rst | 3 +- .../star_plus_point_mass/README.rst | 3 +- .../README.rst | 3 +- binary/test_suite/wind_fed_bhhmxb/README.rst | 22 + docs/source/_ext/mesa_tags.py | 513 ++++++++++++++++++ docs/source/_static/theme_overrides.css | 184 +++++++ docs/source/conf.py | 22 +- docs/source/developing/test_suite.rst | 14 + docs/source/test_suite.rst | 57 +- docs/source/test_suite/astero_adipls.rst | 1 + docs/source/test_suite/astero_gyre.rst | 1 + docs/source/test_suite/check_redo.rst | 1 + docs/source/test_suite/double_bh.rst | 1 + docs/source/test_suite/high_rot_darkening.rst | 1 + .../source/test_suite/make_pre_ccsn_13bvn.rst | 1 + docs/source/test_suite/rsp_gyre.rst | 1 + docs/source/test_suite/wind_fed_bhhmxb.rst | 1 + docs/source/test_suite/zams_to_cc_80.rst | 1 + scripts/test_suite_inventory.py | 252 +++++++++ star/test_suite/1.3M_ms_high_Z/README.rst | 2 + star/test_suite/1.4M_ms_op_mono/README.rst | 2 + .../test_suite/1.5M_with_diffusion/README.rst | 2 + .../12M_pre_ms_to_core_collapse/README.rst | 2 + star/test_suite/15M_dynamo/README.rst | 2 + star/test_suite/16M_conv_premix/README.rst | 2 + star/test_suite/16M_predictive_mix/README.rst | 2 + star/test_suite/1M_pre_ms_to_wd/README.rst | 2 + star/test_suite/1M_thermohaline/README.rst | 2 + .../20M_pre_ms_to_core_collapse/README.rst | 2 + .../20M_z2m2_high_rotation/README.rst | 2 + .../5M_cepheid_blue_loop/README.rst | 2 + star/test_suite/7M_prems_to_AGB/README.rst | 2 + star/test_suite/R_CrB_star/README.rst | 3 +- star/test_suite/T_tau_gradr/README.rst | 2 + .../test_suite/accreted_material_j/README.rst | 2 + star/test_suite/adjust_net/README.rst | 2 + star/test_suite/c13_pocket/README.rst | 2 + star/test_suite/carbon_kh/README.rst | 2 + star/test_suite/cburn_inward/README.rst | 2 + star/test_suite/ccsn_IIp/README.rst | 2 + star/test_suite/check_pulse_atm/README.rst | 2 + star/test_suite/check_redo/README.rst | 21 + star/test_suite/conductive_flame/README.rst | 2 + .../conserve_angular_momentum/README.rst | 2 + star/test_suite/conv_core_cpm/README.rst | 2 + star/test_suite/custom_colors/README.rst | 4 +- star/test_suite/custom_rates/README.rst | 2 + .../diffusion_smoothness/README.rst | 2 + .../README.rst | 2 + star/test_suite/gyre_in_mesa_bcep/README.rst | 2 + .../gyre_in_mesa_envelope/README.rst | 2 + star/test_suite/gyre_in_mesa_ms/README.rst | 2 + star/test_suite/gyre_in_mesa_rsg/README.rst | 2 + star/test_suite/gyre_in_mesa_spb/README.rst | 2 + star/test_suite/gyre_in_mesa_wd/README.rst | 2 + star/test_suite/hb_2M/README.rst | 3 +- star/test_suite/high_mass/README.rst | 2 + star/test_suite/high_rot_darkening/README.rst | 21 + star/test_suite/high_z/README.rst | 2 + star/test_suite/hot_cool_wind/README.rst | 2 + star/test_suite/hse_riemann/README.rst | 2 + star/test_suite/irradiated_planet/README.rst | 2 + star/test_suite/low_z/README.rst | 2 + star/test_suite/magnetic_braking/README.rst | 3 +- star/test_suite/make_brown_dwarf/README.rst | 2 + star/test_suite/make_co_wd/README.rst | 3 +- star/test_suite/make_env/README.rst | 2 + star/test_suite/make_he_wd/README.rst | 2 + star/test_suite/make_metals/README.rst | 2 + star/test_suite/make_o_ne_wd/README.rst | 2 + star/test_suite/make_planets/README.rst | 2 + .../test_suite/make_pre_ccsn_13bvn/README.rst | 2 + star/test_suite/make_sdb/README.rst | 2 + star/test_suite/make_zams/README.rst | 2 + star/test_suite/make_zams_low_mass/README.rst | 2 + .../make_zams_ultra_high_mass/README.rst | 2 + star/test_suite/ns_c/README.rst | 2 + star/test_suite/ns_h/README.rst | 2 + star/test_suite/ns_he/README.rst | 2 + .../test_suite/other_physics_hooks/README.rst | 2 + star/test_suite/pisn/README.rst | 2 + star/test_suite/ppisn/README.rst | 2 + .../radiative_levitation/README.rst | 2 + .../relax_composition_j_entropy/README.rst | 2 + star/test_suite/rsp_BEP/README.rst | 2 + star/test_suite/rsp_BLAP/README.rst | 2 + star/test_suite/rsp_Cepheid/README.rst | 2 + star/test_suite/rsp_Delta_Scuti/README.rst | 2 + star/test_suite/rsp_RR_Lyrae/README.rst | 2 + .../test_suite/rsp_Type_II_Cepheid/README.rst | 2 + .../rsp_check_2nd_crossing/README.rst | 2 + star/test_suite/rsp_gyre/README.rst | 22 + .../rsp_save_and_load_file/README.rst | 2 + star/test_suite/semiconvection/README.rst | 2 + .../simplex_solar_calibration/README.rst | 2 + star/test_suite/split_burn_big_net/README.rst | 2 + star/test_suite/starspots/README.rst | 2 + star/test_suite/timing/README.rst | 2 + star/test_suite/twin_studies/README.rst | 2 + star/test_suite/tzo/README.rst | 2 + star/test_suite/wd_acc_small_dm/README.rst | 2 + star/test_suite/wd_aic/README.rst | 2 + star/test_suite/wd_c_core_ignition/README.rst | 2 + star/test_suite/wd_cool_0.6M/README.rst | 2 + star/test_suite/wd_diffusion/README.rst | 2 + .../wd_he_shell_ignition/README.rst | 2 + star/test_suite/wd_nova_burst/README.rst | 4 +- star/test_suite/wd_stable_h_burn/README.rst | 2 + star/test_suite/zams_to_cc_80/README.rst | 2 + 121 files changed, 1393 insertions(+), 25 deletions(-) create mode 100644 astero/test_suite/astero_adipls/README.rst create mode 100644 astero/test_suite/astero_gyre/README.rst create mode 100644 binary/test_suite/double_bh/README.rst create mode 100644 binary/test_suite/wind_fed_bhhmxb/README.rst create mode 100644 docs/source/_ext/mesa_tags.py create mode 120000 docs/source/test_suite/astero_adipls.rst create mode 120000 docs/source/test_suite/astero_gyre.rst create mode 120000 docs/source/test_suite/check_redo.rst create mode 120000 docs/source/test_suite/double_bh.rst create mode 120000 docs/source/test_suite/high_rot_darkening.rst create mode 120000 docs/source/test_suite/make_pre_ccsn_13bvn.rst create mode 120000 docs/source/test_suite/rsp_gyre.rst create mode 120000 docs/source/test_suite/wind_fed_bhhmxb.rst create mode 120000 docs/source/test_suite/zams_to_cc_80.rst create mode 100755 scripts/test_suite_inventory.py create mode 100644 star/test_suite/check_redo/README.rst create mode 100644 star/test_suite/high_rot_darkening/README.rst create mode 100644 star/test_suite/rsp_gyre/README.rst diff --git a/astero/test_suite/astero_adipls/README.rst b/astero/test_suite/astero_adipls/README.rst new file mode 100644 index 000000000..f7f7ed20f --- /dev/null +++ b/astero/test_suite/astero_adipls/README.rst @@ -0,0 +1,24 @@ +.. _astero_adipls: + +************* +astero_adipls +************* + +.. tags:: astero, asteroseismology, adipls, frequency-matching, seismic-constraints, low-mass, main-sequence + +This test demonstrates using the ``astero`` module to call ADIPLS +during the evolution of a 1.2 |Msun|, Z=0.02 model based on the +``HD49385`` setup. + +The test sets ``oscillation_code = 'adipls'`` and uses +``run_star_extras`` to sample mode frequencies during the run. At the +end of the evolution it compares a selected mode frequency with the +target value stored in ``x_ctrl(1)``. + +How this test passes +==================== + +The active test-suite entry expects the output string ``got ok match +for expected frequency`` and checks the final saved model ``final.mod``. +If ADIPLS is not enabled, the extras routine intentionally emits a +matching skip-style message. diff --git a/astero/test_suite/astero_gyre/README.rst b/astero/test_suite/astero_gyre/README.rst new file mode 100644 index 000000000..b909078dc --- /dev/null +++ b/astero/test_suite/astero_gyre/README.rst @@ -0,0 +1,23 @@ +.. _astero_gyre: + +*********** +astero_gyre +*********** + +.. tags:: astero, asteroseismology, gyre, frequency-matching, seismic-constraints, low-mass, main-sequence + +This test demonstrates using the ``astero`` module to call GYRE during +the evolution of a 1.2 |Msun|, Z=0.02 model based on the ``HD49385`` +setup. + +The test sets ``oscillation_code = 'gyre'`` and uses +``run_star_extras`` to sample mode frequencies during the run. At the +end of the evolution it compares a selected mode frequency with the +target value stored in ``x_ctrl(1)``. + +How this test passes +==================== + +The active test-suite entry expects the output string ``got ok match +for expected frequency``. If GYRE is not enabled, the extras routine +intentionally emits a matching skip-style message. diff --git a/astero/test_suite/example_astero/README.rst b/astero/test_suite/example_astero/README.rst index a445e840e..eb7ab4c0b 100644 --- a/astero/test_suite/example_astero/README.rst +++ b/astero/test_suite/example_astero/README.rst @@ -4,6 +4,8 @@ example_astero ************** +.. tags:: astero, optimization, asteroseismology, frequency-matching, seismic-constraints, spectroscopic-constraints, chi-squared + An example optimisation run of the ``astero`` module, based on the CoRoT target HD 49385. This is the usual starting point if you want to optimise model parameters using the ``astero`` module. This test diff --git a/astero/test_suite/fast_from_file/README.rst b/astero/test_suite/fast_from_file/README.rst index 1a19272ef..debcfb0b9 100644 --- a/astero/test_suite/fast_from_file/README.rst +++ b/astero/test_suite/fast_from_file/README.rst @@ -4,6 +4,8 @@ fast_from_file ************** +.. tags:: astero, optimization, file-input, from-file-search, synthetic-data, chi-squared, custom-parameters, semiconvection, thermohaline, low-mass, element-diffusion, gravitational-settling + Runs first few steps of the ``'from_file'`` search, which reads input values from a data file and computes |chi^2| for each, based on some synthetic data. This test exists only to increase test coverage of diff --git a/astero/test_suite/fast_newuoa/README.rst b/astero/test_suite/fast_newuoa/README.rst index ae4d526aa..ef9060b53 100644 --- a/astero/test_suite/fast_newuoa/README.rst +++ b/astero/test_suite/fast_newuoa/README.rst @@ -4,6 +4,8 @@ fast_newuoa *********** +.. tags:: astero, optimization, newuoa, synthetic-data, chi-squared, custom-variables, solar-calibration, low-mass + Runs first few steps of a NEWUOA optimisation for some synthetic data. This test exists only to increase test coverage of the routines involved in a NEWUOA optimisation (some of which is used by other diff --git a/astero/test_suite/fast_scan_grid/README.rst b/astero/test_suite/fast_scan_grid/README.rst index 9e7b5cfee..cbc5b3e36 100644 --- a/astero/test_suite/fast_scan_grid/README.rst +++ b/astero/test_suite/fast_scan_grid/README.rst @@ -4,6 +4,8 @@ fast_scan_grid ************** +.. tags:: astero, optimization, grid-search, synthetic-data, chi-squared, low-mass + Runs first few steps of a grid search for some synthetic data. This test exists only to increase test coverage of the routines involved in a grid search (some of which is used by other diff --git a/astero/test_suite/fast_simplex/README.rst b/astero/test_suite/fast_simplex/README.rst index a9410e752..d0e5a11c0 100644 --- a/astero/test_suite/fast_simplex/README.rst +++ b/astero/test_suite/fast_simplex/README.rst @@ -4,6 +4,8 @@ fast_simplex ************ +.. tags:: astero, optimization, simplex, synthetic-data, chi-squared, low-mass + Runs first few steps of a simplex optimisation for some synthetic data. This test exists only to increase test coverage of the routines involved in a simplex optimisation (some of which is used by other diff --git a/astero/test_suite/surface_effects/README.rst b/astero/test_suite/surface_effects/README.rst index 4091fac31..61af72589 100644 --- a/astero/test_suite/surface_effects/README.rst +++ b/astero/test_suite/surface_effects/README.rst @@ -4,6 +4,8 @@ surface_effects *************** +.. tags:: astero, asteroseismology, surface-corrections, frequency-matching, solar-model, helioseismology, adipls + Tests the implementation of the various surface effect corrections available in MESA using the output model from ``simplex_solar_calibration``. First, it adds a surface effect diff --git a/binary/test_suite/double_bh/README.rst b/binary/test_suite/double_bh/README.rst new file mode 100644 index 000000000..f88e5c79a --- /dev/null +++ b/binary/test_suite/double_bh/README.rst @@ -0,0 +1,22 @@ +.. _double_bh: + +********* +double_bh +********* + +.. tags:: binary, binary-evolution, massive-star, black-hole, black-hole-binary, chemically-homogeneous-evolution, mass-transfer, roche-lobe-overflow, tidal-synchronization, contact-binary, point-mass, helium-depletion + +This test evolves a close binary with initially massive stars toward a +double black-hole configuration through chemically homogeneous +evolution. + +The case evolves both stars, enables tidal synchronization and mass +transfer, and turns a component into a point mass after helium +depletion. The test terminates after the other component also reaches +helium depletion. + +How this test passes +==================== + +The active test-suite entry expects the output string ``Terminate due +to helium depletion`` and checks the final saved model ``final.mod``. diff --git a/binary/test_suite/evolve_both_stars/README.rst b/binary/test_suite/evolve_both_stars/README.rst index d19e714c3..ab41d1b8b 100644 --- a/binary/test_suite/evolve_both_stars/README.rst +++ b/binary/test_suite/evolve_both_stars/README.rst @@ -4,6 +4,8 @@ evolve_both_stars ***************** +.. tags:: binary, binary-evolution, dual-star-evolution, mass-transfer, roche-lobe-overflow, low-mass, main-sequence + This test case checks the evolution of two stars simultaneously including mass transfer. This test case has 1 part. Click to see a larger version of a plot. @@ -277,4 +279,3 @@ pgstar commands used for the star2 plot above: / ! end of pgstar namelist Last-Updated: 11Jul2021 (MESA 094ff71) by fxt. - diff --git a/binary/test_suite/jdot_gr_check/README.rst b/binary/test_suite/jdot_gr_check/README.rst index b2848ffde..7770349f0 100644 --- a/binary/test_suite/jdot_gr_check/README.rst +++ b/binary/test_suite/jdot_gr_check/README.rst @@ -4,6 +4,8 @@ jdot_gr_check ************* +.. tags:: binary, angular-momentum, orbital-angular-momentum, gravitational-waves, analytic-check, roche-lobe-overflow, point-mass, low-mass + This test case verifies that the orbital evolution due to GW emission follows the analytical result of `Peters (1964) `_. @@ -203,4 +205,3 @@ pgstar commands used for the plot above: / ! end of pgstar namelist Last-Updated: 12Jul2021 (MESA 094ff71) by fxt. - diff --git a/binary/test_suite/jdot_ls_check/README.rst b/binary/test_suite/jdot_ls_check/README.rst index cb1a4e02d..68a916e3d 100644 --- a/binary/test_suite/jdot_ls_check/README.rst +++ b/binary/test_suite/jdot_ls_check/README.rst @@ -4,6 +4,8 @@ jdot_ls_check ************* +.. tags:: binary, angular-momentum, orbital-angular-momentum, tides, tidal-synchronization, conservation, point-mass, low-mass + This test case verifies that models with tidal evolution conserve angular momentum. This test case has 1 part. Click to see a larger version of a plot. @@ -194,4 +196,3 @@ pgstar commands used for the plot above: Last-Updated: 15Jul2021 (MESA 094ff71) by fxt. - diff --git a/binary/test_suite/jdot_ml_check/README.rst b/binary/test_suite/jdot_ml_check/README.rst index e8581d6d6..aace43d07 100644 --- a/binary/test_suite/jdot_ml_check/README.rst +++ b/binary/test_suite/jdot_ml_check/README.rst @@ -4,6 +4,8 @@ jdot_ml_check ************* +.. tags:: binary, angular-momentum, orbital-angular-momentum, mass-loss, mass-transfer, roche-lobe-overflow, analytic-check, point-mass, low-mass + This test case checks the evolution of one star plus a point mass, including mass transfer to the point mass. Using pre-specified efficiency options, verifies that the binary evolution, including mass transfer to the point mass, follows the analytical result of `Tauris & van den Heuvel (2006) @@ -240,4 +242,3 @@ pgstar commands used for the binary and star1 plots above: / ! end of pgstar namelist Last-Updated: 12Jul2021 (MESA 094ff71) by fxt. - diff --git a/binary/test_suite/star_plus_point_mass/README.rst b/binary/test_suite/star_plus_point_mass/README.rst index 961956996..6d77bc169 100644 --- a/binary/test_suite/star_plus_point_mass/README.rst +++ b/binary/test_suite/star_plus_point_mass/README.rst @@ -4,6 +4,8 @@ star_plus_point_mass ******************** +.. tags:: binary, mass-transfer, roche-lobe-overflow, point-mass, eddington, intermediate-mass, main-sequence + This test case checks the evolution of one star plus a point mass, including mass transfer to the point mass. This test case has 1 part. Click to see a larger version of a plot. @@ -127,4 +129,3 @@ pgstar commands used for the plots above: Last-Updated: 10Jul2021 (MESA 094ff71) by fxt. - diff --git a/binary/test_suite/star_plus_point_mass_explicit_mdot/README.rst b/binary/test_suite/star_plus_point_mass_explicit_mdot/README.rst index d3b648097..3a4907f67 100644 --- a/binary/test_suite/star_plus_point_mass_explicit_mdot/README.rst +++ b/binary/test_suite/star_plus_point_mass_explicit_mdot/README.rst @@ -4,6 +4,8 @@ star_plus_point_mass_explicit_mdot ********************************** +.. tags:: binary, mass-transfer, explicit-mdot, roche-lobe-overflow, point-mass, eddington, intermediate-mass, main-sequence + This test case checks the evolution of one star plus a point mass, including mass transfer to the point mass, using an explicit calculation for the mass transfer rate. This test case has 1 part. Click to see a larger version of a plot. @@ -126,4 +128,3 @@ pgstar commands used for the plots above: Last-Updated: 10Jul2021 (MESA 094ff71) by fxt. - diff --git a/binary/test_suite/wind_fed_bhhmxb/README.rst b/binary/test_suite/wind_fed_bhhmxb/README.rst new file mode 100644 index 000000000..9802765b5 --- /dev/null +++ b/binary/test_suite/wind_fed_bhhmxb/README.rst @@ -0,0 +1,22 @@ +.. _wind_fed_bhhmxb: + +**************** +wind_fed_bhhmxb +**************** + +.. tags:: binary, binary-evolution, high-mass-x-ray-binary, massive-star, black-hole, black-hole-accretion, wind-accretion, stellar-winds, mass-loss, eddington, mass-transfer, roche-lobe-overflow + +This test evolves a wind-fed high-mass X-ray binary with a massive +donor and a black-hole companion. + +The case checks wind accretion and Roche-lobe overflow while limiting +black-hole accretion at the Eddington rate. The binary extras verify +both sub-Eddington and super-Eddington phases and check the associated +mass-loss bookkeeping. + +How this test passes +==================== + +The active test-suite entry expects the output string ``Properly +tested sub and super Eddington phases`` and checks the final saved +model ``final.mod``. diff --git a/docs/source/_ext/mesa_tags.py b/docs/source/_ext/mesa_tags.py new file mode 100644 index 000000000..32643563a --- /dev/null +++ b/docs/source/_ext/mesa_tags.py @@ -0,0 +1,513 @@ +"""MESA-specific formatting for the generated sphinx-tags overview.""" + +from __future__ import annotations + +from html import escape +from pathlib import Path + +import sphinx_tags + + +ORIGINAL_TAGPAGE = sphinx_tags.tagpage +ORIGINAL_CREATE_FILE = sphinx_tags.Tag.create_file + + +TAG_GROUPS = ( + ( + "Module", + ( + "star", + "binary", + "astero", + "adipls", + "atm", + "colors", + "eos", + "gyre", + "kap", + "net", + "rates", + "rsp", + "stella", + ), + ), + ( + "Physics", + ( + "element-diffusion", + "gravitational-settling", + "radiative-levitation", + "thermohaline", + "opacity", + "atmosphere", + "radiative-gradient", + "rotation", + "critical-rotation", + "gravity-darkening", + "angular-momentum", + "conservation", + "magnetic-field", + "dynamo", + "spruit-tayler-dynamo", + "magnetic-braking", + "mass-loss", + "stellar-winds", + "hot-wind", + "cool-wind", + "accretion", + "eddington", + "core-helium-burning", + "hydrogen-burning", + "helium-burning", + "carbon-burning", + "oxygen-burning", + "silicon-burning", + "explosive-burning", + "shell-burning", + "carbon-flame", + "conductive-flame", + "deflagration", + "flame-speed", + "carbon-ignition", + "carbon-flash", + "off-center-burning", + "inward-flame", + "helium-shell-ignition", + "helium-flash", + "thermonuclear-runaway", + "stable-hydrogen-burning", + "core-hydrogen-burning", + "triple-alpha", + "nucleosynthesis", + "electron-capture", + "equation-of-state", + "hydrodynamics", + "rayleigh-taylor-mixing", + "starspots", + "thermal-pulse", + "c13-pocket", + "s-process", + "irradiation", + "hydrostatic-equilibrium", + "stability", + ), + ), + ( + "Binaries", + ( + "binary-evolution", + "dual-star-evolution", + "point-mass", + "mass-transfer", + "roche-lobe-overflow", + "explicit-mdot", + "wind-accretion", + "black-hole-accretion", + "gravitational-waves", + "orbital-angular-momentum", + "tides", + "tidal-synchronization", + "contact-binary", + "black-hole-binary", + "high-mass-x-ray-binary", + "common-envelope", + "chemically-homogeneous-evolution", + ), + ), + ( + "Numerical methods", + ( + "composition", + "entropy", + "relaxation", + "brunt-profile", + "op-mono", + "type2-opacity", + "aesopus", + "t-tau-relation", + "custom-opacity", + "mesh-controls", + "timestep-controls", + "custom-rates", + "nuclear-network", + "adaptive-network", + "convective-boundary-mixing", + "convective-premixing", + "predictive-mixing", + "partial-mixing-zone", + "convective-penetration", + "overshooting", + "semiconvection", + "ledoux-criterion", + "surface-boundary-condition", + "energy-conservation", + "split-burn", + "big-net", + "burner-substeps", + "small-timesteps", + "riemann-solver", + "hllc", + ), + ), + ( + "Workflows", + ( + "zams", + "create-initial-model", + "prebuilt-model", + "relax-initial-mass", + "custom-physics-hooks", + "save-load", + "map-output", + "redo", + "forced-redo", + "restart", + "photo-restart", + "checksums", + "null-test", + "analytic-check", + "timing", + "performance", + "counters", + "twin-studies", + ), + ), + ( + "Stellar objects and phases", + ( + "low-mass", + "intermediate-mass", + "massive-star", + "very-massive-star", + "pre-main-sequence", + "main-sequence", + "convective-core", + "white-dwarf", + "carbon-oxygen-white-dwarf", + "helium-white-dwarf", + "oxygen-neon-white-dwarf", + "white-dwarf-cooling", + "compact-remnant", + "neutron-star", + "neutron-star-envelope", + "iron-envelope", + "hot-subdwarf", + "red-supergiant", + "helium-star", + "wolf-rayet", + "stellar-envelope", + "agb", + "envelope-stripping", + "ifmr", + "full-evolution", + "chandrashekhar-mass", + "type-ia-progenitor", + "accretion-induced-collapse", + "core-collapse", + "pre-supernova", + "hydrogen-depletion", + "supernova", + "type-iip-supernova", + "nova", + "stripped-envelope", + "pair-instability", + "pair-instability-supernova", + "pulsational-pair-instability", + "low-metallicity", + "carbon-composition", + "carbon-oxygen-mixture", + "kelvin-helmholtz-contraction", + "black-hole", + "high-metallicity", + "zero-metallicity", + "r-crb-star", + "hydrogen-deficient", + "carbon-rich", + "horizontal-branch", + "breathing-pulses", + "very-low-mass", + "brown-dwarf", + "brown-dwarf-cooling", + "planetary-mass-object", + "irradiated-planet", + "planetary-cooling", + "core-envelope-planet", + "thorne-zytkow-object", + "solar-model", + "helium-depletion", + ), + ), + ( + "Pulsation and variability", + ( + "asteroseismology", + "p-mode", + "g-mode", + "surface-corrections", + "frequency-matching", + "seismic-constraints", + "radial-pulsation", + "nonradial-pulsation", + "nonlinear-pulsation", + "linear-analysis", + "period-search", + "instability-strip", + "cepheid", + "classical-cepheid", + "type-ii-cepheid", + "bl-her", + "rr-lyrae", + "delta-scuti", + "beta-cephei", + "spb", + "blap", + "bep", + "blue-loop", + "second-crossing", + "chaotic-pulsation", + "helioseismology", + "pulsation-output", + "fgong", + ), + ), + ( + "Optimization", + ( + "optimization", + "newuoa", + "simplex", + "solar-calibration", + "grid-search", + "file-input", + "from-file-search", + "chi-squared", + "synthetic-data", + "custom-parameters", + "custom-variables", + "spectroscopic-constraints", + ), + ), +) + +TAG_GROUP_DISPLAY_ORDER = ( + "Module", + "Stellar objects and phases", + "Physics", + "Pulsation and variability", + "Binaries", + "Numerical methods", + "Workflows", + "Optimization", +) + + +def _underline(text: str, character: str) -> str: + return character * len(text) + + +def _doc_target(path: str) -> str: + return str(Path(path).with_suffix("")) + + +def _tag_count_sort_key(tag: object) -> tuple[int, str, str]: + return (-len(tag.items), tag.name.lower(), tag.name) + + +def _group_tags(tags: list[object]) -> list[tuple[str, list[object]]]: + tags_by_name = {tag.name: tag for tag in tags} + grouped: list[tuple[str, list[object]]] = [] + used: set[str] = set() + group_order = {title: index for index, title in enumerate(TAG_GROUP_DISPLAY_ORDER)} + + for title, names in TAG_GROUPS: + group = sorted( + [tags_by_name[name] for name in names if name in tags_by_name], + key=_tag_count_sort_key, + ) + if group: + grouped.append((title, group)) + used.update(tag.name for tag in group) + + grouped.sort(key=lambda entry: group_order.get(entry[0], len(group_order))) + + other_tags = sorted( + [tag for tag in tags if tag.name not in used], + key=_tag_count_sort_key, + ) + if other_tags: + grouped.append(("Other tags", other_tags)) + + return grouped + + +def _format_count(count: int) -> str: + if count == 1: + return "1 example" + return f"{count} examples" + + +def _tag_card(tag: object) -> str: + name = escape(tag.name) + count = len(tag.items) + count_text = escape(_format_count(count)) + href = escape(f"{tag.file_basename}.html") + return ( + f'' + f'{name}' + f'{count_text}' + "" + ) + + +def _raw_html_block(lines: list[str]) -> list[str]: + return [".. raw:: html", "", *[f" {line}" for line in lines], ""] + + +def _overview_controls(tags: list[object]) -> list[str]: + return _raw_html_block( + [ + '
', + '
', + ' Sort tags', + ' ', + ' ', + "
", + "
", + ] + ) + + +def _overview_script() -> list[str]: + return _raw_html_block( + [ + "", + ] + ) + + +def _write_grouped_tagpage(tags, outdir, title, extension, tags_index_head): + if "rst" not in extension: + return ORIGINAL_TAGPAGE(tags, outdir, title, extension, tags_index_head) + + all_tags = list(tags.values()) + content = [ + ":orphan:", + "", + ".. _tagoverview:", + "", + title, + _underline(title, "#"), + "", + ] + content.extend(_overview_controls(all_tags)) + + for group_title, group_tags in _group_tags(all_tags): + content.extend( + [ + group_title, + _underline(group_title, "-"), + "", + ] + ) + content.extend( + _raw_html_block( + [ + '
', + *[f" {_tag_card(tag)}" for tag in group_tags], + "
", + ] + ) + ) + + content.extend(_overview_script()) + + Path(outdir, "tagsindex.rst").write_text("\n".join(content), encoding="utf8") + + +def _write_link_tag_file( + self, + items, + extension, + tags_output_dir, + srcdir, + tags_page_title, + tags_page_header, +): + if "rst" not in extension: + return ORIGINAL_CREATE_FILE( + self, + items, + extension, + tags_output_dir, + srcdir, + tags_page_title, + tags_page_header, + ) + + header = f"{tags_page_title}: {self.name}" + content = [ + ":orphan:", + "", + f".. _sphx_tag_{self.file_basename}:", + "", + header, + _underline(header, "#"), + "", + f"{tags_page_header}:", + "", + ] + + for item in sorted(items, key=lambda entry: entry.relpath(srcdir).lower()): + path = item.relpath(srcdir) + name = Path(path).stem + content.append(f"- :doc:`{name} <../{_doc_target(path)}>`") + + content.append("") + Path(srcdir, tags_output_dir, f"{self.file_basename}.rst").write_text( + "\n".join(content), + encoding="utf8", + ) + + +def setup(app): + sphinx_tags.tagpage = _write_grouped_tagpage + sphinx_tags.Tag.create_file = _write_link_tag_file + + return { + "version": "0.1", + "parallel_read_safe": True, + "parallel_write_safe": True, + } diff --git a/docs/source/_static/theme_overrides.css b/docs/source/_static/theme_overrides.css index 7c1a52022..a93037949 100644 --- a/docs/source/_static/theme_overrides.css +++ b/docs/source/_static/theme_overrides.css @@ -8,3 +8,187 @@ max-width: 100%; overflow: visible; } + +/* Test-suite module badge palette */ +.sd-bg-module-star { + background-color: #2563eb !important; +} + +.sd-bg-text-module-star { + color: #ffffff !important; +} + +.sd-bg-module-binary { + background-color: #dc2626 !important; +} + +.sd-bg-text-module-binary { + color: #ffffff !important; +} + +.sd-bg-module-astero { + background-color: #7c3aed !important; +} + +.sd-bg-text-module-astero { + color: #ffffff !important; +} + +.sd-bg-module-adipls { + background-color: #0f766e !important; +} + +.sd-bg-text-module-adipls { + color: #ffffff !important; +} + +.sd-bg-module-atm { + background-color: #0284c7 !important; +} + +.sd-bg-text-module-atm { + color: #ffffff !important; +} + +.sd-bg-module-colors { + background-color: #c026d3 !important; +} + +.sd-bg-text-module-colors { + color: #ffffff !important; +} + +.sd-bg-module-eos { + background-color: #d97706 !important; +} + +.sd-bg-text-module-eos { + color: #111827 !important; +} + +.sd-bg-module-gyre { + background-color: #16a34a !important; +} + +.sd-bg-text-module-gyre { + color: #ffffff !important; +} + +.sd-bg-module-kap { + background-color: #be123c !important; +} + +.sd-bg-text-module-kap { + color: #ffffff !important; +} + +.sd-bg-module-net { + background-color: #475569 !important; +} + +.sd-bg-text-module-net { + color: #ffffff !important; +} + +.sd-bg-module-rates { + background-color: #0891b2 !important; +} + +.sd-bg-text-module-rates { + color: #ffffff !important; +} + +.sd-bg-module-rsp { + background-color: #ea580c !important; +} + +.sd-bg-text-module-rsp { + color: #111827 !important; +} + +.sd-bg-module-stella { + background-color: #65a30d !important; +} + +.sd-bg-text-module-stella { + color: #ffffff !important; +} + +/* Test suite gallery */ +.mesa-tag-toolbar { + align-items: center; + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + margin: 1rem 0 1.5rem; +} + +.mesa-tag-toolbar-label { + color: var(--pst-color-text-muted, #586069); + font-size: 0.9rem; + font-weight: 700; + margin-right: 0.15rem; +} + +.mesa-tag-sort { + background: var(--pst-color-surface, #ffffff); + border: 1px solid var(--pst-color-border, #d0d7de); + border-radius: 8px; + color: var(--pst-color-text-base, #24292f); + cursor: pointer; + font: inherit; + padding: 0.4rem 0.7rem; +} + +.mesa-tag-sort:hover, +.mesa-tag-sort.is-active { + border-color: var(--pst-color-primary, #2f81f7); + color: var(--pst-color-primary, #2f81f7); +} + +.mesa-tag-sort.is-active { + box-shadow: inset 0 0 0 1px var(--pst-color-primary, #2f81f7); +} + +.mesa-tag-grid { + display: grid; + gap: 0.55rem; + grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); + margin: 0.75rem 0 2rem; +} + +.mesa-tag-card { + align-items: center; + background: var(--pst-color-surface, #ffffff); + border: 1px solid var(--pst-color-border, #d0d7de); + border-radius: 8px; + color: var(--pst-color-text-base, #24292f); + display: flex; + gap: 0.75rem; + justify-content: space-between; + min-height: 3rem; + padding: 0.65rem 0.75rem; + text-decoration: none; +} + +.mesa-tag-card:hover { + border-color: var(--pst-color-primary, #2f81f7); + color: var(--pst-color-primary, #2f81f7); + text-decoration: none; +} + +.mesa-tag-name { + font-weight: 700; + overflow-wrap: anywhere; +} + +.mesa-tag-count { + background: var(--pst-color-on-surface, #f6f8fa); + border: 1px solid var(--pst-color-border, #d0d7de); + border-radius: 999px; + color: var(--pst-color-text-muted, #586069); + flex: 0 0 auto; + font-size: 0.78rem; + padding: 0.15rem 0.5rem; + white-space: nowrap; +} diff --git a/docs/source/conf.py b/docs/source/conf.py index df7170dfc..d1bb95ffb 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -38,6 +38,7 @@ "sphinx_copybutton", "sphinx_design", "sphinx_tags", + "mesa_tags", "sphinxemoji.sphinxemoji", ] @@ -115,13 +116,24 @@ # sphinx_tags options tags_create_tags = True -tags_overview_title = "Test Problem tags" -tags_page_title = "Tags" -tags_page_header = "Test problems with this tag" +tags_overview_title = "Test Suite Gallery" +tags_page_title = "Test Suite Gallery" +tags_page_header = "Test suite cases with this tag" tags_create_badges = True tags_badge_colors = { - "star": "primary", - "binary": "primary", + "star": "module-star", + "binary": "module-binary", + "astero": "module-astero", + "adipls": "module-adipls", + "atm": "module-atm", + "colors": "module-colors", + "eos": "module-eos", + "gyre": "module-gyre", + "kap": "module-kap", + "net": "module-net", + "rates": "module-rates", + "rsp": "module-rsp", + "stella": "module-stella", "high-mass": "secondary", "low-mass": "secondary", } diff --git a/docs/source/developing/test_suite.rst b/docs/source/developing/test_suite.rst index 09bc652bc..da59bf975 100644 --- a/docs/source/developing/test_suite.rst +++ b/docs/source/developing/test_suite.rst @@ -213,6 +213,20 @@ The description should be one sentence broadly describing what the case does and then one optional sentence about anything interesting illustrated by the case (e.g., other_hooks). +Inventory helper +^^^^^^^^^^^^^^^^ + +The ``scripts/test_suite_inventory.py`` helper reports mismatches +between active tests, test directories, test case ``README.rst`` files, +rendered documentation links, and documentation tags. + +.. code-block:: sh + + python3 scripts/test_suite_inventory.py + +This can be useful before opening a pull request that adds or migrates +test suite documentation. + MESA Test Hub ------------- diff --git a/docs/source/test_suite.rst b/docs/source/test_suite.rst index f2020b32c..8c3db7bd2 100644 --- a/docs/source/test_suite.rst +++ b/docs/source/test_suite.rst @@ -6,6 +6,9 @@ Test Suite MESA includes a comprehensive test suite, showcasing MESA's capabilities and serving as a project starting point, but often requiring modifications for science-grade accuracy. +Some test cases include searchable tags. See the generated +:ref:`tagoverview` page for the current test suite gallery. + Building upon test suite cases ------------------------------ @@ -153,6 +156,20 @@ This test suite evolves a 12 |MSun| model from the pre-ms to core collapse. This test suite evolves a low metallicity 20 |MSun| model from the pre-ms to core collapse. +:ref:`make_pre_ccsn_13bvn` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This test suite evolves a solar-metallicity 12 |MSun| model from the +pre-main sequence through envelope stripping to core collapse, similar +to the 13BVN model from MESA IV. + +:ref:`zams_to_cc_80 ` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This test suite evolves a solar-metallicity 80 |MSun| model from the +pre-main sequence to core collapse with mass loss, producing a +Wolf-Rayet star below the pair-instability threshold. + :ref:`20M_z2m2_high_rotation` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -219,6 +236,12 @@ This test checks that the atmosphere structure written to the pulsation output closely matches what is expected for the :math:`T(\tau)` relation specified by ``atm_T_tau_relation``. +:ref:`check_redo` +^^^^^^^^^^^^^^^^^ + +This developer test checks that a run with a forced redo gives the +same answer when restarted from an earlier photo. + :ref:`conductive_flame` ^^^^^^^^^^^^^^^^^^^^^^^ @@ -309,6 +332,12 @@ on the horizontal branch (HB) through core helium burning. This test case checks the evolution of a 300 |Msun|, Z = 1e-5 metallicity, model through core hydrogen depletion. +:ref:`high_rot_darkening` +^^^^^^^^^^^^^^^^^^^^^^^^^ + +This test case checks rapidly rotating stellar evolution with gravity +darkening and rotationally enhanced mass loss near critical rotation. + :ref:`high_z` ^^^^^^^^^^^^^ @@ -493,6 +522,12 @@ a double-mode delta Scuti variable leaving the main-sequence phase originally co This test case checks the non-linear pulsation evolution of a 0.65 |Msun|, Teff = 6500 K, L = 60 Lsun, Z = 0.004 metallicity - a long-period RR Lyrae model contributed by Radek Smolec. +:ref:`rsp_gyre` +^^^^^^^^^^^^^^^ + +This test case checks the interaction between RSP model construction, +linear pulsation analysis, and GYRE. + :ref:`rsp_Type_II_Cepheid` ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -613,8 +648,8 @@ This test case checks the evolution stable hydrogen burning on a white dwarf. Binary tests ------------ -double_bh -^^^^^^^^^ +:ref:`double_bh` +^^^^^^^^^^^^^^^^ Creates a binary black hole from two stars in a very close orbit through the chemically-homogeneous evolution (CHE) mechanism. Stars @@ -658,8 +693,8 @@ star_plus_point_mass_explicit_mdot Same as above, but run using an explicit calculation for the mass transfer rate. -wind_fed_hmxb -^^^^^^^^^^^^^ +:ref:`wind_fed_bhhmxb` +^^^^^^^^^^^^^^^^^^^^^^ Model for a high mass X-ray binary, including both Roche lobe overflow and wind mass transfer. Verifies the Eddington limit is working, and @@ -669,10 +704,17 @@ that the accretion luminosity is computed correctly. Astero tests ------------ -astero_adipls and astero_gyre -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +:ref:`astero_adipls` +^^^^^^^^^^^^^^^^^^^^ + +Demonstrates how to use the ``astero`` module to call ADIPLS during a +main-sequence stellar evolution. + +:ref:`astero_gyre` +^^^^^^^^^^^^^^^^^^ -Demonstrate how to use the ``astero`` module to call ADIPLS or GYRE, respectively. +Demonstrates how to use the ``astero`` module to call GYRE during a +main-sequence stellar evolution. Both tests use the same main-sequence evolution of a 1.2 |Msun| star, so the evolutionary outputs (e.g. ``final.mod``, ``LOGS/history.data``) @@ -734,4 +776,5 @@ This index only includes tests that are documented via a ``README.rst``. :maxdepth: 1 :glob: + _tags/tagsindex test_suite/* diff --git a/docs/source/test_suite/astero_adipls.rst b/docs/source/test_suite/astero_adipls.rst new file mode 120000 index 000000000..272a9cf35 --- /dev/null +++ b/docs/source/test_suite/astero_adipls.rst @@ -0,0 +1 @@ +../../../astero/test_suite/astero_adipls/README.rst \ No newline at end of file diff --git a/docs/source/test_suite/astero_gyre.rst b/docs/source/test_suite/astero_gyre.rst new file mode 120000 index 000000000..9c42831f2 --- /dev/null +++ b/docs/source/test_suite/astero_gyre.rst @@ -0,0 +1 @@ +../../../astero/test_suite/astero_gyre/README.rst \ No newline at end of file diff --git a/docs/source/test_suite/check_redo.rst b/docs/source/test_suite/check_redo.rst new file mode 120000 index 000000000..b8919063c --- /dev/null +++ b/docs/source/test_suite/check_redo.rst @@ -0,0 +1 @@ +../../../star/test_suite/check_redo/README.rst \ No newline at end of file diff --git a/docs/source/test_suite/double_bh.rst b/docs/source/test_suite/double_bh.rst new file mode 120000 index 000000000..139741acf --- /dev/null +++ b/docs/source/test_suite/double_bh.rst @@ -0,0 +1 @@ +../../../binary/test_suite/double_bh/README.rst \ No newline at end of file diff --git a/docs/source/test_suite/high_rot_darkening.rst b/docs/source/test_suite/high_rot_darkening.rst new file mode 120000 index 000000000..71f5be39f --- /dev/null +++ b/docs/source/test_suite/high_rot_darkening.rst @@ -0,0 +1 @@ +../../../star/test_suite/high_rot_darkening/README.rst \ No newline at end of file diff --git a/docs/source/test_suite/make_pre_ccsn_13bvn.rst b/docs/source/test_suite/make_pre_ccsn_13bvn.rst new file mode 120000 index 000000000..e408cc1d2 --- /dev/null +++ b/docs/source/test_suite/make_pre_ccsn_13bvn.rst @@ -0,0 +1 @@ +../../../star/test_suite/make_pre_ccsn_13bvn/README.rst \ No newline at end of file diff --git a/docs/source/test_suite/rsp_gyre.rst b/docs/source/test_suite/rsp_gyre.rst new file mode 120000 index 000000000..32972bf64 --- /dev/null +++ b/docs/source/test_suite/rsp_gyre.rst @@ -0,0 +1 @@ +../../../star/test_suite/rsp_gyre/README.rst \ No newline at end of file diff --git a/docs/source/test_suite/wind_fed_bhhmxb.rst b/docs/source/test_suite/wind_fed_bhhmxb.rst new file mode 120000 index 000000000..452d5626f --- /dev/null +++ b/docs/source/test_suite/wind_fed_bhhmxb.rst @@ -0,0 +1 @@ +../../../binary/test_suite/wind_fed_bhhmxb/README.rst \ No newline at end of file diff --git a/docs/source/test_suite/zams_to_cc_80.rst b/docs/source/test_suite/zams_to_cc_80.rst new file mode 120000 index 000000000..7645d63c8 --- /dev/null +++ b/docs/source/test_suite/zams_to_cc_80.rst @@ -0,0 +1 @@ +../../../star/test_suite/zams_to_cc_80/README.rst \ No newline at end of file diff --git a/scripts/test_suite_inventory.py b/scripts/test_suite_inventory.py new file mode 100755 index 000000000..c62ac494a --- /dev/null +++ b/scripts/test_suite_inventory.py @@ -0,0 +1,252 @@ +#!/usr/bin/env python3 +"""Summarize documentation and tagging coverage for the MESA test suite.""" + +from __future__ import annotations + +import argparse +import json +import re +from dataclasses import dataclass +from pathlib import Path + + +MODULES = ("star", "binary", "astero") +DO_ONE_RE = re.compile(r"^\s*do_one\s+([^\s#]+)") + + +@dataclass(frozen=True) +class TestCase: + module: str + name: str + + @property + def label(self) -> str: + return f"{self.module}/{self.name}" + + +def repo_root() -> Path: + return Path(__file__).resolve().parents[1] + + +def sort_key(case: TestCase) -> tuple[str, str]: + return (case.module, case.name.lower()) + + +def read_active_tests(root: Path) -> list[TestCase]: + tests: list[TestCase] = [] + for module in MODULES: + source = root / module / "test_suite" / "do1_test_source" + for line in source.read_text(encoding="utf-8").splitlines(): + match = DO_ONE_RE.match(line) + if match: + tests.append(TestCase(module, match.group(1))) + return sorted(tests, key=sort_key) + + +def read_test_dirs(root: Path) -> list[TestCase]: + tests: list[TestCase] = [] + for module in MODULES: + suite = root / module / "test_suite" + for child in suite.iterdir(): + if child.is_dir(): + tests.append(TestCase(module, child.name)) + return sorted(tests, key=sort_key) + + +def read_docs_pages(root: Path) -> dict[str, Path]: + docs_dir = root / "docs" / "source" / "test_suite" + return {path.stem: path for path in sorted(docs_dir.glob("*.rst"))} + + +def read_tags(readme: Path) -> list[str]: + if not readme.exists(): + return [] + + tags: list[str] = [] + lines = readme.read_text(encoding="utf-8").splitlines() + for index, line in enumerate(lines): + stripped = line.strip() + if not stripped.startswith(".. tags::"): + continue + + inline_tags = stripped.split("::", 1)[1] + tags.extend(split_tags(inline_tags)) + + for continuation in lines[index + 1 :]: + if not continuation.strip(): + break + if continuation.startswith((" ", "\t")): + tags.extend(split_tags(continuation.strip())) + continue + break + break + + return sorted(set(tags), key=str.lower) + + +def split_tags(text: str) -> list[str]: + return [tag.strip() for tag in text.split(",") if tag.strip()] + + +def gather_inventory(root: Path) -> dict[str, object]: + active_tests = read_active_tests(root) + test_dirs = read_test_dirs(root) + docs_pages = read_docs_pages(root) + + active_names = {case.name for case in active_tests} + dir_names = {case.name for case in test_dirs} + doc_names = set(docs_pages) + + readmes = { + case: root / case.module / "test_suite" / case.name / "README.rst" + for case in test_dirs + } + tags_by_case: dict[str, list[str]] = {} + for case, readme in readmes.items(): + if readme.exists(): + tags = read_tags(readme) + if tags: + tags_by_case[case.label] = tags + + active_missing_dirs = [case for case in active_tests if case.name not in dir_names] + active_missing_readme = [ + case + for case in active_tests + if not (root / case.module / "test_suite" / case.name / "README.rst").exists() + ] + active_missing_docs = [case for case in active_tests if case.name not in doc_names] + active_missing_tags = [ + case + for case in active_tests + if case.label not in tags_by_case + ] + inactive_dirs = [case for case in test_dirs if case.name not in active_names] + documented_inactive = sorted(doc_names - active_names, key=str.lower) + readmes_without_docs = [ + case for case in test_dirs if readmes[case].exists() and case.name not in doc_names + ] + broken_docs = sorted( + [path.name for path in docs_pages.values() if path.is_symlink() and not path.exists()], + key=str.lower, + ) + + module_counts = { + module: { + "active": sum(1 for case in active_tests if case.module == module), + "directories": sum(1 for case in test_dirs if case.module == module), + } + for module in MODULES + } + + return { + "root": str(root), + "module_counts": module_counts, + "active_tests": [case.label for case in active_tests], + "test_directories": [case.label for case in test_dirs], + "docs_pages": sorted(doc_names, key=str.lower), + "tagged_readmes": tags_by_case, + "active_missing_dirs": [case.label for case in active_missing_dirs], + "active_missing_readme": [case.label for case in active_missing_readme], + "active_missing_docs": [case.label for case in active_missing_docs], + "active_missing_tags": [case.label for case in active_missing_tags], + "inactive_dirs": [case.label for case in inactive_dirs], + "documented_inactive": documented_inactive, + "readmes_without_docs": [case.label for case in readmes_without_docs], + "broken_docs": broken_docs, + } + + +def limited(items: list[str], limit: int) -> tuple[list[str], int]: + if limit <= 0 or len(items) <= limit: + return items, 0 + return items[:limit], len(items) - limit + + +def bullet_section(title: str, items: list[str], limit: int) -> list[str]: + lines = [f"## {title}"] + if not items: + lines.append("- None") + return lines + + shown, remaining = limited(items, limit) + lines.extend(f"- {item}" for item in shown) + if remaining: + lines.append(f"- ... {remaining} more (rerun with --limit 0 to show all)") + return lines + + +def render_markdown(inventory: dict[str, object], limit: int) -> str: + module_counts = inventory["module_counts"] + assert isinstance(module_counts, dict) + + active_tests = inventory["active_tests"] + test_dirs = inventory["test_directories"] + docs_pages = inventory["docs_pages"] + tagged_readmes = inventory["tagged_readmes"] + assert isinstance(active_tests, list) + assert isinstance(test_dirs, list) + assert isinstance(docs_pages, list) + assert isinstance(tagged_readmes, dict) + + lines = [ + "# MESA test-suite inventory", + "", + f"Repository: `{inventory['root']}`", + "", + "## Summary", + f"- Active `do_one` tests: {len(active_tests)}", + f"- Test directories: {len(test_dirs)}", + f"- Test-suite docs pages: {len(docs_pages)}", + f"- README files with tags: {len(tagged_readmes)}", + ] + for module in MODULES: + counts = module_counts[module] + lines.append( + f"- {module}: {counts['active']} active, {counts['directories']} directories" + ) + + sections = [ + ("Active tests missing directories", inventory["active_missing_dirs"]), + ("Active tests missing README.rst", inventory["active_missing_readme"]), + ("Active tests missing docs pages", inventory["active_missing_docs"]), + ("Active tests without tags", inventory["active_missing_tags"]), + ("Inactive test directories", inventory["inactive_dirs"]), + ("README files without docs pages", inventory["readmes_without_docs"]), + ("Docs pages not listed in do1_test_source", inventory["documented_inactive"]), + ("Broken docs symlinks", inventory["broken_docs"]), + ] + for title, items in sections: + assert isinstance(items, list) + lines.extend(["", *bullet_section(title, items, limit)]) + + return "\n".join(lines) + "\n" + + +def main() -> int: + parser = argparse.ArgumentParser( + description="Summarize MESA test-suite docs and tag coverage." + ) + parser.add_argument( + "--format", + choices=("markdown", "json"), + default="markdown", + help="Output format.", + ) + parser.add_argument( + "--limit", + type=int, + default=40, + help="Maximum items per Markdown section; use 0 for no limit.", + ) + args = parser.parse_args() + + inventory = gather_inventory(repo_root()) + if args.format == "json": + print(json.dumps(inventory, indent=2, sort_keys=True)) + else: + print(render_markdown(inventory, args.limit), end="") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/star/test_suite/1.3M_ms_high_Z/README.rst b/star/test_suite/1.3M_ms_high_Z/README.rst index 16fa25d51..6b4f1c6d7 100644 --- a/star/test_suite/1.3M_ms_high_Z/README.rst +++ b/star/test_suite/1.3M_ms_high_Z/README.rst @@ -4,6 +4,8 @@ 1.3M_ms_high_Z ************** +.. tags:: star, high-metallicity, low-mass, pre-main-sequence, main-sequence, core-hydrogen-burning + The test checks the evolution of metal-rich low-mass stars by evolving a 1.3 |Msun|, metal-rich Z=0.04 model from the pre-main sequence to core hydrogen depletion. diff --git a/star/test_suite/1.4M_ms_op_mono/README.rst b/star/test_suite/1.4M_ms_op_mono/README.rst index b51c65c67..cd136a8d1 100644 --- a/star/test_suite/1.4M_ms_op_mono/README.rst +++ b/star/test_suite/1.4M_ms_op_mono/README.rst @@ -4,6 +4,8 @@ 1.4M_ms_op_mono *************** +.. tags:: star, kap, opacity, op-mono, low-mass, main-sequence + The test checks the functionality of OP mono opacities. The test vehicle is a 1.4 |Msun| solar metallicity model. diff --git a/star/test_suite/1.5M_with_diffusion/README.rst b/star/test_suite/1.5M_with_diffusion/README.rst index c2c6a90ef..ed873362c 100644 --- a/star/test_suite/1.5M_with_diffusion/README.rst +++ b/star/test_suite/1.5M_with_diffusion/README.rst @@ -4,6 +4,8 @@ 1.5M_with_diffusion ******************* +.. tags:: star, element-diffusion, low-mass, main-sequence + The test checks the functionality of element diffusion. The test vehicle is a 1.5 |Msun| solar metallicity model. diff --git a/star/test_suite/12M_pre_ms_to_core_collapse/README.rst b/star/test_suite/12M_pre_ms_to_core_collapse/README.rst index 2476659d7..45030fee9 100644 --- a/star/test_suite/12M_pre_ms_to_core_collapse/README.rst +++ b/star/test_suite/12M_pre_ms_to_core_collapse/README.rst @@ -4,6 +4,8 @@ 12M_pre_ms_to_core_collapse *************************** +.. tags:: star, massive-star, pre-main-sequence, full-evolution, core-collapse, carbon-burning, silicon-burning + This test suite evolves a solar metallicity 12 |MSun| model from the pre-ms to core collapse. Physical checks diff --git a/star/test_suite/15M_dynamo/README.rst b/star/test_suite/15M_dynamo/README.rst index e737a1fa3..071d1e694 100644 --- a/star/test_suite/15M_dynamo/README.rst +++ b/star/test_suite/15M_dynamo/README.rst @@ -4,6 +4,8 @@ 15M_dynamo ********** +.. tags:: star, rotation, angular-momentum, magnetic-field, dynamo, spruit-tayler-dynamo, massive-star, core-helium-burning + The test checks the functionality of rotation in a 15 |Msun|, Z=0.02 metallicity model. diff --git a/star/test_suite/16M_conv_premix/README.rst b/star/test_suite/16M_conv_premix/README.rst index c61e112fa..374f2b4bf 100644 --- a/star/test_suite/16M_conv_premix/README.rst +++ b/star/test_suite/16M_conv_premix/README.rst @@ -4,6 +4,8 @@ 16M_conv_premix *************** +.. tags:: star, convective-premixing, convective-core, ledoux-criterion, massive-star, main-sequence + This test suite example re-creates the 16-solar mass main-sequence evolution with the inclusion of convective premixing (using the Ledoux criterion), as detailed in Section 5.3 of the MESA V instrument paper diff --git a/star/test_suite/16M_predictive_mix/README.rst b/star/test_suite/16M_predictive_mix/README.rst index 8ff5da14d..8dec6c63f 100644 --- a/star/test_suite/16M_predictive_mix/README.rst +++ b/star/test_suite/16M_predictive_mix/README.rst @@ -4,6 +4,8 @@ 16M_predictive_mix ****************** +.. tags:: star, predictive-mixing, convective-core, massive-star, main-sequence + This test suite example re-creates the 16-solar mass main-sequence evolution with the inclusion of predictive mixing (using the Ledoux criterion), as detailed in Section 2 of the MESA IV instrument paper diff --git a/star/test_suite/1M_pre_ms_to_wd/README.rst b/star/test_suite/1M_pre_ms_to_wd/README.rst index 44ec8f34c..e461cb3f7 100644 --- a/star/test_suite/1M_pre_ms_to_wd/README.rst +++ b/star/test_suite/1M_pre_ms_to_wd/README.rst @@ -4,6 +4,8 @@ 1M_pre_ms_to_wd *************** +.. tags:: star, low-mass, full-evolution, pre-main-sequence, core-helium-burning, white-dwarf, white-dwarf-cooling + This test case checks the evolution of a 1 |Msun|, Z=0.02 metallicity from the pre-main sequence to a white dwarf. This test case has six parts. Click to see a larger view of a plot. diff --git a/star/test_suite/1M_thermohaline/README.rst b/star/test_suite/1M_thermohaline/README.rst index 11eacdb13..e3dd6d081 100644 --- a/star/test_suite/1M_thermohaline/README.rst +++ b/star/test_suite/1M_thermohaline/README.rst @@ -4,6 +4,8 @@ 1M_thermohaline *************** +.. tags:: star, thermohaline, rotation, low-mass + The test checks thermohaline mixing in a rotating, 1 |Msun|, Z=0.02 metallicity model. diff --git a/star/test_suite/20M_pre_ms_to_core_collapse/README.rst b/star/test_suite/20M_pre_ms_to_core_collapse/README.rst index a2280e8b6..10c4e9fd3 100644 --- a/star/test_suite/20M_pre_ms_to_core_collapse/README.rst +++ b/star/test_suite/20M_pre_ms_to_core_collapse/README.rst @@ -4,6 +4,8 @@ 20M_pre_ms_to_core_collapse *************************** +.. tags:: star, massive-star, pre-main-sequence, full-evolution, core-collapse, carbon-burning, silicon-burning + This test suite evolves a solar metalicity 20 |MSun| model from the pre-ms to core collapse. For bit for bit convergence, we recommendedd to run by using the ./run_all script instead of restarting from models, see https://github.com/MESAHub/mesa/issues/610. diff --git a/star/test_suite/20M_z2m2_high_rotation/README.rst b/star/test_suite/20M_z2m2_high_rotation/README.rst index 4c166ba9f..85b83e15d 100644 --- a/star/test_suite/20M_z2m2_high_rotation/README.rst +++ b/star/test_suite/20M_z2m2_high_rotation/README.rst @@ -4,6 +4,8 @@ 20M_z2m2_high_rotation ********************** +.. tags:: star, rotation, critical-rotation, massive-star, core-helium-burning + This test case checks the evolution of a strongly rotating, Omega/Omega_crit = 0.75, 20 |Msun|, Z=0.02 metallicity model from the pre-main sequence to the end of core helium burning. This test case has one part. Click to see a larger view of a plot. diff --git a/star/test_suite/5M_cepheid_blue_loop/README.rst b/star/test_suite/5M_cepheid_blue_loop/README.rst index 911ff6719..1c17ef57f 100644 --- a/star/test_suite/5M_cepheid_blue_loop/README.rst +++ b/star/test_suite/5M_cepheid_blue_loop/README.rst @@ -4,6 +4,8 @@ 5M_cepheid_blue_loop ******************** +.. tags:: star, cepheid, blue-loop, instability-strip, core-helium-burning, intermediate-mass + This test case checks that the evolution of a 5 |Msun|, metal-poor Z=0.008, helium-enriched Y=0.256 model executes a blue-loop in the HR diagram and crosses the classical Cepheid instability strip boundaries three times. diff --git a/star/test_suite/7M_prems_to_AGB/README.rst b/star/test_suite/7M_prems_to_AGB/README.rst index 29b39a9d6..a4478b7e0 100644 --- a/star/test_suite/7M_prems_to_AGB/README.rst +++ b/star/test_suite/7M_prems_to_AGB/README.rst @@ -4,6 +4,8 @@ 7M_prems_to_AGB *************** +.. tags:: star, intermediate-mass, low-metallicity, pre-main-sequence, agb, blue-loop, cepheid, instability-strip, core-helium-burning + This test case checks that the evolution of a 7 |Msun|, metal-poor Z = 0.001, model reaches the AGB. This test case has two parts. Click to see a larger view of a plot. diff --git a/star/test_suite/R_CrB_star/README.rst b/star/test_suite/R_CrB_star/README.rst index 5fedf540c..4d0b83ab4 100644 --- a/star/test_suite/R_CrB_star/README.rst +++ b/star/test_suite/R_CrB_star/README.rst @@ -4,6 +4,8 @@ R_CrB_star ********** +.. tags:: star, kap, r-crb-star, hydrogen-deficient, carbon-rich, opacity, aesopus + This test case creates and evolves a simple model of an R Corona Borealis star. The model is constructed from an 0.875 |Msun| homogeneous He star and evolved until it first reaches a low effective @@ -58,4 +60,3 @@ Click to see a larger plot: Last-Updated: 2020-11-16 (mesa r14909) by Josiah Schwab, 30may2021 (MESA 15140) by fxt. - diff --git a/star/test_suite/T_tau_gradr/README.rst b/star/test_suite/T_tau_gradr/README.rst index 8b9343029..d16d7d49d 100644 --- a/star/test_suite/T_tau_gradr/README.rst +++ b/star/test_suite/T_tau_gradr/README.rst @@ -4,6 +4,8 @@ T_tau_gradr *********** +.. tags:: star, atm, atmosphere, t-tau-relation, radiative-gradient, surface-boundary-condition + .. |Ttau| replace:: :math:`T(\tau)` .. |tau| replace:: :math:`\tau` diff --git a/star/test_suite/accreted_material_j/README.rst b/star/test_suite/accreted_material_j/README.rst index fd5d3a0d6..59cbbbbfd 100644 --- a/star/test_suite/accreted_material_j/README.rst +++ b/star/test_suite/accreted_material_j/README.rst @@ -4,6 +4,8 @@ accreted_material_j ******************* +.. tags:: star, accretion, angular-momentum, rotation, massive-star + This test suite example checks the accretion of material and angular momentum onto a 20 |Msun| model. diff --git a/star/test_suite/adjust_net/README.rst b/star/test_suite/adjust_net/README.rst index aeebe9b69..732f79c89 100644 --- a/star/test_suite/adjust_net/README.rst +++ b/star/test_suite/adjust_net/README.rst @@ -4,6 +4,8 @@ adjust_net ********** +.. tags:: star, net, adaptive-network, nuclear-network, massive-star, main-sequence + This test suite example checks the functionality of the adaptive nuclear reaction network. Physical checks diff --git a/star/test_suite/c13_pocket/README.rst b/star/test_suite/c13_pocket/README.rst index 42b289d0a..f78f5d6c4 100644 --- a/star/test_suite/c13_pocket/README.rst +++ b/star/test_suite/c13_pocket/README.rst @@ -4,6 +4,8 @@ c13_pocket ********** +.. tags:: star, agb, thermal-pulse, c13-pocket, s-process, low-mass, partial-mixing-zone + This test suite case shows a 2.0 |Msun|, :math:`Z = 0.01` thermally pulsing AGB star undergoing third dredge up. It is a re-implementation of the example shown in Section 7.2.1 of |MESA I|. diff --git a/star/test_suite/carbon_kh/README.rst b/star/test_suite/carbon_kh/README.rst index 96a3deddf..c47d832dd 100644 --- a/star/test_suite/carbon_kh/README.rst +++ b/star/test_suite/carbon_kh/README.rst @@ -4,6 +4,8 @@ carbon_kh ********* +.. tags:: star, eos, carbon-composition, kelvin-helmholtz-contraction, equation-of-state, energy-conservation + This test case evolves an initially low-density, 1.3 |Msun| stellar model with a pure carbon composition as it Kelvin-Helmholtz contracts. diff --git a/star/test_suite/cburn_inward/README.rst b/star/test_suite/cburn_inward/README.rst index 5956b502e..3ed35ad78 100644 --- a/star/test_suite/cburn_inward/README.rst +++ b/star/test_suite/cburn_inward/README.rst @@ -4,6 +4,8 @@ cburn_inward ************ +.. tags:: star, carbon-burning, carbon-flame, off-center-burning, inward-flame, intermediate-mass + This test suite example checks the inward propagation of a carbon burning front in a 7.5 |Msun| model. Physical checks diff --git a/star/test_suite/ccsn_IIp/README.rst b/star/test_suite/ccsn_IIp/README.rst index 0699cad0a..98c760f8a 100644 --- a/star/test_suite/ccsn_IIp/README.rst +++ b/star/test_suite/ccsn_IIp/README.rst @@ -4,6 +4,8 @@ ccsn_IIp ******** +.. tags:: star, core-collapse, supernova, type-iip-supernova, hydrodynamics, rayleigh-taylor-mixing, stella + This test suite example builds a Type IIp supernova model, including Rayleigh-Taylor Instability mixing, for subsequent use in STELLA. This test case has 8 parts and ``src/run_star_extras.f90`` is important. Click to see a larger view of a plot. diff --git a/star/test_suite/check_pulse_atm/README.rst b/star/test_suite/check_pulse_atm/README.rst index 654d2c994..75fa4d11c 100644 --- a/star/test_suite/check_pulse_atm/README.rst +++ b/star/test_suite/check_pulse_atm/README.rst @@ -4,6 +4,8 @@ check_pulse_atm *************** +.. tags:: star, atm, kap, atmosphere, t-tau-relation, opacity, pulsation-output, fgong + .. |Ttau| replace:: :math:`T(\tau)` .. |tau| replace:: :math:`\tau` diff --git a/star/test_suite/check_redo/README.rst b/star/test_suite/check_redo/README.rst new file mode 100644 index 000000000..be388e4a6 --- /dev/null +++ b/star/test_suite/check_redo/README.rst @@ -0,0 +1,21 @@ +.. _check_redo: + +********** +check_redo +********** + +.. tags:: star, redo, forced-redo, restart, photo-restart, checksums, prebuilt-model, hydrogen-depletion + +This developer test checks that a run with a forced redo gives the +same answer when restarted from an earlier photo. + +The test loads ``zams.mod`` and uses ``run_star_extras`` to request a +redo after model 10 in ``./rn`` but not during ``./re``. Restarting +from an earlier photo should reproduce the same final answer. + +How this test passes +==================== + +The active test-suite entry expects the usual hydrogen-depletion +termination string, checks ``final.mod``, and restarts from an +automatically selected photo. diff --git a/star/test_suite/conductive_flame/README.rst b/star/test_suite/conductive_flame/README.rst index 64f8b9ce7..208d120d5 100644 --- a/star/test_suite/conductive_flame/README.rst +++ b/star/test_suite/conductive_flame/README.rst @@ -4,6 +4,8 @@ conductive_flame **************** +.. tags:: star, carbon-burning, conductive-flame, deflagration, carbon-oxygen-mixture, flame-speed + This test suite case models a conductively-propagated deflagration wave ("flame") in a high-density, degenerate carbon-oxygen mixture. It is similar to a calculation presented by |Timmes1992|. diff --git a/star/test_suite/conserve_angular_momentum/README.rst b/star/test_suite/conserve_angular_momentum/README.rst index f2594c8e1..d38057e63 100644 --- a/star/test_suite/conserve_angular_momentum/README.rst +++ b/star/test_suite/conserve_angular_momentum/README.rst @@ -4,6 +4,8 @@ conserve_angular_momentum ************************* +.. tags:: star, rotation, angular-momentum, conservation, low-mass, core-helium-burning + This test suite example checks angular momentum conservation from the zero age main-sequence to the formation of a helium core in 1.0 |Msun|, Z=0.02 metallicity, model. This test case has 2 parts. Click to see a larger view of a plot. diff --git a/star/test_suite/conv_core_cpm/README.rst b/star/test_suite/conv_core_cpm/README.rst index bb88583f9..42bad2eaa 100644 --- a/star/test_suite/conv_core_cpm/README.rst +++ b/star/test_suite/conv_core_cpm/README.rst @@ -4,6 +4,8 @@ conv_core_cpm ************* +.. tags:: star, convective-premixing, convective-core, low-mass, main-sequence + This test case evolves a 1.5 |Msun| star part of the way through the main sequence with convective pre-mixing (CPM) enabled and checks that its convective core has grown to an appropriate mass coordinate. diff --git a/star/test_suite/custom_colors/README.rst b/star/test_suite/custom_colors/README.rst index d7845f1b5..e589b781d 100644 --- a/star/test_suite/custom_colors/README.rst +++ b/star/test_suite/custom_colors/README.rst @@ -4,6 +4,8 @@ Colors ****** +.. tags:: star, colors + This test suite case demonstrates the functionality of the MESA ``colors`` module. Running the Test Suite @@ -530,5 +532,3 @@ This server provides a live view of: * All available filter facilities and instruments * File counts, disk usage, and metadata * Direct links to the directory structure used by MESA - - diff --git a/star/test_suite/custom_rates/README.rst b/star/test_suite/custom_rates/README.rst index b9e5fe293..3c775c06e 100644 --- a/star/test_suite/custom_rates/README.rst +++ b/star/test_suite/custom_rates/README.rst @@ -4,6 +4,8 @@ custom_rates ************ +.. tags:: star, net, rates, custom-rates, nuclear-network, white-dwarf, helium-white-dwarf, accretion + This test suite case checks the use of custom nuclear reaction rates in an accreting 0.3 |Msun| helium white dwarf model. This test case has 5 parts. Click to see a larger view of a plot. diff --git a/star/test_suite/diffusion_smoothness/README.rst b/star/test_suite/diffusion_smoothness/README.rst index 9289e153f..5311e5e04 100644 --- a/star/test_suite/diffusion_smoothness/README.rst +++ b/star/test_suite/diffusion_smoothness/README.rst @@ -4,6 +4,8 @@ diffusion_smoothness ******************** +.. tags:: star, element-diffusion, brunt-profile, low-mass + This test suite case checks that element diffusion produces a sufficiently smooth Brunt profile. This test case has 2 part2. Click to see a larger view of a plot. diff --git a/star/test_suite/extended_convective_penetration/README.rst b/star/test_suite/extended_convective_penetration/README.rst index ce0cfaf2a..3834eda9f 100644 --- a/star/test_suite/extended_convective_penetration/README.rst +++ b/star/test_suite/extended_convective_penetration/README.rst @@ -4,6 +4,8 @@ extended_convective_penetration ******************************* +.. tags:: star, convective-boundary-mixing, convective-penetration, overshooting, convective-core, intermediate-mass, main-sequence + This test case checks the implementation of the extended convective penetration prescription for core boundary mixing. This test case has 2 parts. Click to see a larger view of a plot. diff --git a/star/test_suite/gyre_in_mesa_bcep/README.rst b/star/test_suite/gyre_in_mesa_bcep/README.rst index c548c28df..06b71d3ae 100644 --- a/star/test_suite/gyre_in_mesa_bcep/README.rst +++ b/star/test_suite/gyre_in_mesa_bcep/README.rst @@ -4,6 +4,8 @@ gyre_in_mesa_bcep ***************** +.. tags:: star, gyre, asteroseismology, p-mode, beta-cephei, massive-star, main-sequence + This test case checks the implementation of GYRE in MESA for a 12 |Msun|, Z=0.02 metallicity, model evolving from the zero-age main sequence to core hydrogen depletion; a beta Cephei stellar model. diff --git a/star/test_suite/gyre_in_mesa_envelope/README.rst b/star/test_suite/gyre_in_mesa_envelope/README.rst index 3f4c96932..c56648428 100644 --- a/star/test_suite/gyre_in_mesa_envelope/README.rst +++ b/star/test_suite/gyre_in_mesa_envelope/README.rst @@ -4,6 +4,8 @@ gyre_in_mesa_envelope ********************* +.. tags:: star, gyre, asteroseismology, p-mode, stellar-envelope, massive-star + This test case checks the implementation of GYRE in MESA for the envelope of a 12 |Msun|, Z=0.02 metallicity, model. This test case has 4 parts. diff --git a/star/test_suite/gyre_in_mesa_ms/README.rst b/star/test_suite/gyre_in_mesa_ms/README.rst index 5d8c6d744..87e13fda5 100644 --- a/star/test_suite/gyre_in_mesa_ms/README.rst +++ b/star/test_suite/gyre_in_mesa_ms/README.rst @@ -4,6 +4,8 @@ gyre_in_mesa_ms *************** +.. tags:: star, gyre, asteroseismology, p-mode, low-mass, main-sequence + This test case checks the implementation of GYRE in MESA for a 1 |Msun|, Z=0.02 metallicity, model evolving from the zero-age main sequence to core hydrogen depletion. This test case has 2 parts. diff --git a/star/test_suite/gyre_in_mesa_rsg/README.rst b/star/test_suite/gyre_in_mesa_rsg/README.rst index 536261bf7..3a9732658 100644 --- a/star/test_suite/gyre_in_mesa_rsg/README.rst +++ b/star/test_suite/gyre_in_mesa_rsg/README.rst @@ -4,6 +4,8 @@ gyre_in_mesa_rsg **************** +.. tags:: star, gyre, asteroseismology, p-mode, massive-star, red-supergiant + This test case checks the implementation of GYRE in MESA for a 21 |Msun|, Z=0.02 metallicity, model in the red supergiant regime. This test case has 4 parts. diff --git a/star/test_suite/gyre_in_mesa_spb/README.rst b/star/test_suite/gyre_in_mesa_spb/README.rst index 12680c91a..5241a77cc 100644 --- a/star/test_suite/gyre_in_mesa_spb/README.rst +++ b/star/test_suite/gyre_in_mesa_spb/README.rst @@ -4,6 +4,8 @@ gyre_in_mesa_spb **************** +.. tags:: star, gyre, asteroseismology, g-mode, nonradial-pulsation, spb, intermediate-mass, main-sequence + This test case checks the implementation of GYRE in MESA for a 5 |Msun|, Z=0.02 metallicity, model evolving from the zero-age main sequence to core hydrogen depletion; a slowly pulsating B-type star (SPB) stellar model. This test case has 2 parts. diff --git a/star/test_suite/gyre_in_mesa_wd/README.rst b/star/test_suite/gyre_in_mesa_wd/README.rst index 6f91647d9..f84f4af6e 100644 --- a/star/test_suite/gyre_in_mesa_wd/README.rst +++ b/star/test_suite/gyre_in_mesa_wd/README.rst @@ -4,6 +4,8 @@ gyre_in_mesa_wd *************** +.. tags:: star, gyre, asteroseismology, g-mode, nonradial-pulsation, white-dwarf + This test case checks the implementation of GYRE in MESA for a cooling 0.85 Msun white dwarf model. This test case has 1 part. diff --git a/star/test_suite/hb_2M/README.rst b/star/test_suite/hb_2M/README.rst index e0f97a7a5..e3d4819fe 100644 --- a/star/test_suite/hb_2M/README.rst +++ b/star/test_suite/hb_2M/README.rst @@ -4,6 +4,8 @@ hb_2M ***** +.. tags:: star, kap, horizontal-branch, helium-flash, core-helium-burning, type2-opacity, convective-core, breathing-pulses + This test case shows a 2 solar mass stellar model evolving on the Horizontal Branch, from ZACHeB (Zero Age Core Helium Burning) to TACHeB (Terminal Age Core Helium Burning). The convective core boundary is determined using predictive mixing (see |MESA IV|). @@ -265,4 +267,3 @@ Comparing results obtained with CPM and Predictive mixing ========================================================= In the figure below we show the evolution of the convective core boundary and of the central helium abundance along the CHeB, using the CPM and the Predictive schemes. - diff --git a/star/test_suite/high_mass/README.rst b/star/test_suite/high_mass/README.rst index 7f54cafa1..d21ab91c7 100644 --- a/star/test_suite/high_mass/README.rst +++ b/star/test_suite/high_mass/README.rst @@ -4,6 +4,8 @@ high_mass ********* +.. tags:: star, very-massive-star, low-metallicity, main-sequence, core-hydrogen-burning + This test case checks the evolution of a 300 |Msun|, Z = 1e-4 metallicity, model through core hydrogen depletion. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/high_rot_darkening/README.rst b/star/test_suite/high_rot_darkening/README.rst new file mode 100644 index 000000000..3b03b8a8c --- /dev/null +++ b/star/test_suite/high_rot_darkening/README.rst @@ -0,0 +1,21 @@ +.. _high_rot_darkening: + +****************** +high_rot_darkening +****************** + +.. tags:: star, rotation, critical-rotation, gravity-darkening, mass-loss, intermediate-mass, main-sequence + +This test evolves a rapidly rotating 3 |Msun|, Z=0.02 model with +gravity darkening enabled. + +The case relaxes the model toward high rotation, keeps the model near +a specified fraction of critical rotation early in the run, and +exercises rotationally enhanced mass loss near critical rotation. + +How this test passes +==================== + +The active test-suite entry expects the termination string +``termination code: xa_central_lower_limit`` and checks the final saved +model ``final.mod``. diff --git a/star/test_suite/high_z/README.rst b/star/test_suite/high_z/README.rst index 1bf37764d..8b3b946aa 100644 --- a/star/test_suite/high_z/README.rst +++ b/star/test_suite/high_z/README.rst @@ -4,6 +4,8 @@ high_z ****** +.. tags:: star, high-metallicity, intermediate-mass, pre-main-sequence, core-helium-burning + This test case checks the capability of evolving high metallicity models through core helium depletion with a 7 |Msun|, Z=0.07 metallicity model. This test case has 2 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/hot_cool_wind/README.rst b/star/test_suite/hot_cool_wind/README.rst index 464c686e2..fd694f1c2 100644 --- a/star/test_suite/hot_cool_wind/README.rst +++ b/star/test_suite/hot_cool_wind/README.rst @@ -4,6 +4,8 @@ hot_cool_wind ************* +.. tags:: star, mass-loss, stellar-winds, hot-wind, cool-wind, intermediate-mass, core-helium-burning + This test case checks the cool wind, hot wind capability by evolving a 7 |Msun|, Z=0.02 metallicity model from the zero-age main sequence to core helium depletion. This test case has 1 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/hse_riemann/README.rst b/star/test_suite/hse_riemann/README.rst index b6a5b8c0d..b7e2bf58b 100644 --- a/star/test_suite/hse_riemann/README.rst +++ b/star/test_suite/hse_riemann/README.rst @@ -4,6 +4,8 @@ hse_riemann *********** +.. tags:: star, hydrodynamics, riemann-solver, hllc, hydrostatic-equilibrium, stellar-envelope, null-test + This test case checks Riemann HLLC solver can hold an envelope model in hydrostatic equilibrium. This test case has 1 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/irradiated_planet/README.rst b/star/test_suite/irradiated_planet/README.rst index f33b3c86d..8a59751ba 100644 --- a/star/test_suite/irradiated_planet/README.rst +++ b/star/test_suite/irradiated_planet/README.rst @@ -4,6 +4,8 @@ irradiated_planet ***************** +.. tags:: star, irradiated-planet, irradiation, planetary-cooling + This test case checks the evolution of an ~1 Mjup model after the surface has been irradiated. This test case has 2 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/low_z/README.rst b/star/test_suite/low_z/README.rst index 1d246ad7d..5f90019d5 100644 --- a/star/test_suite/low_z/README.rst +++ b/star/test_suite/low_z/README.rst @@ -4,6 +4,8 @@ low_z ***** +.. tags:: star, kap, low-metallicity, low-mass, pre-main-sequence, main-sequence, opacity, custom-opacity + This test case checks the evolutions of a 0.8 |Msun|, Z=1e-4 metallicity model from the pre-main sequence to core hydrogen depletion. This test case has 2 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/magnetic_braking/README.rst b/star/test_suite/magnetic_braking/README.rst index 6950bdbdd..ccd85183a 100644 --- a/star/test_suite/magnetic_braking/README.rst +++ b/star/test_suite/magnetic_braking/README.rst @@ -4,6 +4,8 @@ magnetic_braking **************** +.. tags:: star, rotation, angular-momentum, magnetic-field, magnetic-braking, mass-loss, massive-star + This test case involves the calculation of the spin down caused by a large-scale magnetic field in a massive star model. The model has an initial mass of 15\ :math:`M_\odot` and equatorial @@ -131,4 +133,3 @@ example their Fig.3). .. image:: ../../../star/test_suite/magnetic_braking/docs/vsurf.jpg :alt: image :width: 100% - diff --git a/star/test_suite/make_brown_dwarf/README.rst b/star/test_suite/make_brown_dwarf/README.rst index 59185832a..0997810f0 100644 --- a/star/test_suite/make_brown_dwarf/README.rst +++ b/star/test_suite/make_brown_dwarf/README.rst @@ -4,6 +4,8 @@ make_brown_dwarf **************** +.. tags:: star, brown-dwarf, planetary-mass-object, low-metallicity, create-initial-model, brown-dwarf-cooling + This test case checks the creation of a 1.05 Mjup, Z=1e-4 metallicity model and its subsequent evolution for 20 billion years. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/make_co_wd/README.rst b/star/test_suite/make_co_wd/README.rst index 601a1a7bd..60db73536 100644 --- a/star/test_suite/make_co_wd/README.rst +++ b/star/test_suite/make_co_wd/README.rst @@ -4,6 +4,8 @@ make_co_wd ********** +.. tags:: star, white-dwarf, carbon-oxygen-white-dwarf, agb, core-helium-burning, ifmr, element-diffusion, white-dwarf-cooling + This test builds a carbon-oxygen white dwarf starting from a specified pre main-sequence mass. It does this by running through a series of inlists for different stages of evolution. By default, the first two @@ -65,4 +67,3 @@ This step turns on diffusion in the young proto-WD model to allow the model to settle into a stratified envelope structure with a pure hydrogen atmosphere. This final step ends when the white dwarf has cooled down to reach a luminosity of 1 |Lsun|. - diff --git a/star/test_suite/make_env/README.rst b/star/test_suite/make_env/README.rst index 526702d66..e70641537 100644 --- a/star/test_suite/make_env/README.rst +++ b/star/test_suite/make_env/README.rst @@ -4,6 +4,8 @@ make_env ******** +.. tags:: star, compact-remnant, neutron-star, neutron-star-envelope, iron-envelope, stability + This test case checks the creation and stability of a pure iron neutron star envelope. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/make_he_wd/README.rst b/star/test_suite/make_he_wd/README.rst index 354255bcc..10cc73e28 100644 --- a/star/test_suite/make_he_wd/README.rst +++ b/star/test_suite/make_he_wd/README.rst @@ -4,6 +4,8 @@ make_he_wd ********** +.. tags:: star, white-dwarf, helium-white-dwarf, low-mass, mass-loss, envelope-stripping, white-dwarf-cooling + This test case checks the creation and evolution of a 0.15 |Msun| helium white dwarf. This test case has 3 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/make_metals/README.rst b/star/test_suite/make_metals/README.rst index 377a381b8..2f5072478 100644 --- a/star/test_suite/make_metals/README.rst +++ b/star/test_suite/make_metals/README.rst @@ -4,6 +4,8 @@ make_metals *********** +.. tags:: star, zero-metallicity, nucleosynthesis, triple-alpha, intermediate-mass, core-helium-burning + This test case demonstrates the creation and evolution of 3 Msun model whose initial metallicity is Z = 0. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/make_o_ne_wd/README.rst b/star/test_suite/make_o_ne_wd/README.rst index 762daafc9..719546e52 100644 --- a/star/test_suite/make_o_ne_wd/README.rst +++ b/star/test_suite/make_o_ne_wd/README.rst @@ -4,6 +4,8 @@ make_o_ne_wd ************ +.. tags:: star, white-dwarf, oxygen-neon-white-dwarf, agb, carbon-burning, carbon-flame, mass-loss, element-diffusion + This test case produces a 1.05 |Msun| oxygen-neon-magnesium white dwarf using stellar engineering. This test case has 5 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/make_planets/README.rst b/star/test_suite/make_planets/README.rst index 4f8f83cb0..f2628c45e 100644 --- a/star/test_suite/make_planets/README.rst +++ b/star/test_suite/make_planets/README.rst @@ -4,6 +4,8 @@ make_planets ************ +.. tags:: star, irradiated-planet, core-envelope-planet, irradiation, planetary-cooling + This test case shows an example of a 1 Mjup model with a 10 Mearth core that is irradiated and evolved for 10Gyr. This test case has 3 part. Click to see a larger version of a plot. diff --git a/star/test_suite/make_pre_ccsn_13bvn/README.rst b/star/test_suite/make_pre_ccsn_13bvn/README.rst index 849293302..38dfa2778 100644 --- a/star/test_suite/make_pre_ccsn_13bvn/README.rst +++ b/star/test_suite/make_pre_ccsn_13bvn/README.rst @@ -4,6 +4,8 @@ make_pre_ccsn_13bvn ******************* +.. tags:: star, massive-star, pre-main-sequence, full-evolution, core-collapse, stripped-envelope, envelope-stripping, pre-supernova + This test suite evolves a solar metalicity 12 |MSun| model from the pre-ms to helium depletion, strips the hydrogen envelope, and then evolves to core collapse. This test suite is made to be similar (almost identical) to the 13BVN model from MESA IV. (This is a sensitive test_suite) diff --git a/star/test_suite/make_sdb/README.rst b/star/test_suite/make_sdb/README.rst index f71ea4ffa..2e0ee8f31 100644 --- a/star/test_suite/make_sdb/README.rst +++ b/star/test_suite/make_sdb/README.rst @@ -4,6 +4,8 @@ make_sdb ******** +.. tags:: star, hot-subdwarf, helium-star, envelope-stripping, common-envelope + This test case shows an example of making a 0.4 |Msun|, Z=0.02 metallicity, helium model - a B-type subdwarf (sdB) star. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/make_zams/README.rst b/star/test_suite/make_zams/README.rst index d4a3bec70..f09720dd4 100644 --- a/star/test_suite/make_zams/README.rst +++ b/star/test_suite/make_zams/README.rst @@ -4,6 +4,8 @@ make_zams ********* +.. tags:: star, zams, create-initial-model, pre-main-sequence, intermediate-mass + This test case shows an example of creating a 4 |Msun|, Z = 0.01 metallicity, pre-main sequence model and evolving it to the zero age main sequence. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/make_zams_low_mass/README.rst b/star/test_suite/make_zams_low_mass/README.rst index 2d77c713b..bff4633ce 100644 --- a/star/test_suite/make_zams_low_mass/README.rst +++ b/star/test_suite/make_zams_low_mass/README.rst @@ -4,6 +4,8 @@ make_zams_low_mass ****************** +.. tags:: star, zams, create-initial-model, pre-main-sequence, low-mass, very-low-mass + This test case shows an example of creating a 0.085 |Msun|, Z = 0.014 metallicity, pre-main sequence model and evolving it to the zero age main sequence. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/make_zams_ultra_high_mass/README.rst b/star/test_suite/make_zams_ultra_high_mass/README.rst index 0d2a27ad4..cdce0acfd 100644 --- a/star/test_suite/make_zams_ultra_high_mass/README.rst +++ b/star/test_suite/make_zams_ultra_high_mass/README.rst @@ -4,6 +4,8 @@ make_zams_ultra_high_mass ************************* +.. tags:: star, zams, prebuilt-model, relax-initial-mass, very-massive-star, low-metallicity + This test case shows an example of creating a 250 |Msun|, Z = 1e-4 metallicity, model close to the main sequence. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/ns_c/README.rst b/star/test_suite/ns_c/README.rst index 0188f3152..d8dd8e809 100644 --- a/star/test_suite/ns_c/README.rst +++ b/star/test_suite/ns_c/README.rst @@ -4,6 +4,8 @@ ns_c **** +.. tags:: star, compact-remnant, neutron-star, neutron-star-envelope, accretion, carbon-burning, carbon-flash, thermonuclear-runaway + This test case shows an example of a carbon flash within a neutron star envelope. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/ns_h/README.rst b/star/test_suite/ns_h/README.rst index ee65b1103..0cce4e19d 100644 --- a/star/test_suite/ns_h/README.rst +++ b/star/test_suite/ns_h/README.rst @@ -4,6 +4,8 @@ ns_h **** +.. tags:: star, compact-remnant, neutron-star, neutron-star-envelope, accretion, hydrogen-burning, stable-hydrogen-burning + This test case shows an example of steady hydrogen burning within a neutron star envelope. This test case has 2 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/ns_he/README.rst b/star/test_suite/ns_he/README.rst index dd450db40..bc256149b 100644 --- a/star/test_suite/ns_he/README.rst +++ b/star/test_suite/ns_he/README.rst @@ -4,6 +4,8 @@ ns_he ***** +.. tags:: star, compact-remnant, neutron-star, neutron-star-envelope, accretion, helium-burning, helium-flash, thermonuclear-runaway + This test case shows an example of a helium flash within a neutron star envelope. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/other_physics_hooks/README.rst b/star/test_suite/other_physics_hooks/README.rst index e2728020a..da4a446fc 100644 --- a/star/test_suite/other_physics_hooks/README.rst +++ b/star/test_suite/other_physics_hooks/README.rst @@ -4,6 +4,8 @@ other_physics_hooks ******************* +.. tags:: star, eos, kap, rates, custom-physics-hooks, opacity, equation-of-state, stellar-winds, mesh-controls, timestep-controls, overshooting + This test case exercises several of the ``other_*`` physics hooks simultaneously in a 1 |Msun|, Z=0.02 metallicity, model. It provides an example of how to include your own physics code into a MESA run. diff --git a/star/test_suite/pisn/README.rst b/star/test_suite/pisn/README.rst index 47be25ba2..cde3e626e 100644 --- a/star/test_suite/pisn/README.rst +++ b/star/test_suite/pisn/README.rst @@ -4,6 +4,8 @@ pisn **** +.. tags:: star, very-massive-star, pair-instability, pair-instability-supernova, supernova, carbon-burning, oxygen-burning, explosive-burning + This test case evolves an initially 200 |Msun| star from ZAMS until it undergoes a pair instability supernovae (PISN) diff --git a/star/test_suite/ppisn/README.rst b/star/test_suite/ppisn/README.rst index 771d29d14..0bb6d3158 100644 --- a/star/test_suite/ppisn/README.rst +++ b/star/test_suite/ppisn/README.rst @@ -4,6 +4,8 @@ ppisn ***** +.. tags:: star, very-massive-star, helium-star, pair-instability, pulsational-pair-instability + This test case evolves a very massive helium star from the He-ZAMS up to the occurrence of a pulsational pair-instability event (see |Marchant2019|). diff --git a/star/test_suite/radiative_levitation/README.rst b/star/test_suite/radiative_levitation/README.rst index 73bebb5c1..95f3731cd 100644 --- a/star/test_suite/radiative_levitation/README.rst +++ b/star/test_suite/radiative_levitation/README.rst @@ -4,6 +4,8 @@ radiative_levitation ******************** +.. tags:: star, kap, element-diffusion, radiative-levitation, op-mono, hot-subdwarf + This test case exercises radiative levitation and the OP mono opacities in the outer layers of a 0.466 |Msun|, Z=0.02 metallicity, B-type subdwarf (sdB) model. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/relax_composition_j_entropy/README.rst b/star/test_suite/relax_composition_j_entropy/README.rst index 0c967638e..0489c5eb4 100644 --- a/star/test_suite/relax_composition_j_entropy/README.rst +++ b/star/test_suite/relax_composition_j_entropy/README.rst @@ -5,6 +5,8 @@ relax_composition_j_entropy *************************** +.. tags:: star, relaxation, composition, angular-momentum, entropy, rotation, core-helium-burning + This test calls the routines that relax the composition, angular momentum and energy of a model to given target values. diff --git a/star/test_suite/rsp_BEP/README.rst b/star/test_suite/rsp_BEP/README.rst index 3901cd02d..49926908c 100644 --- a/star/test_suite/rsp_BEP/README.rst +++ b/star/test_suite/rsp_BEP/README.rst @@ -4,6 +4,8 @@ rsp_BEP ******* +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, bep + This test case checks the non-linear pulsation evolution of a 0.26 |Msun|, Teff = 6968 K, L = 33 Lsun, Z = 0.01 metallicity model - a binary evolution pulsator similar the one shown in |Smolec2013|. diff --git a/star/test_suite/rsp_BLAP/README.rst b/star/test_suite/rsp_BLAP/README.rst index ef9e992fe..3ab39740c 100644 --- a/star/test_suite/rsp_BLAP/README.rst +++ b/star/test_suite/rsp_BLAP/README.rst @@ -4,6 +4,8 @@ rsp_BLAP ******** +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, blap + This test case checks the non-linear pulsation evolution of a 0.36 |Msun|, Teff = 26,000 K, L = 320 Lsun, Z = 0.05 metallicity model - a blue large-amplitude pulsator model originally contributed by Alfred Gautschy. diff --git a/star/test_suite/rsp_Cepheid/README.rst b/star/test_suite/rsp_Cepheid/README.rst index a854091b7..fa9f7cbc8 100644 --- a/star/test_suite/rsp_Cepheid/README.rst +++ b/star/test_suite/rsp_Cepheid/README.rst @@ -4,6 +4,8 @@ rsp_Cepheid *********** +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, cepheid, classical-cepheid + This test case checks the non-linear pulsation evolution of a 4.165 |Msun|, Teff = 6050 K, L = 1438.8 Lsun, Z = 0.007 metallicity model - a classical Cepheid variable similar to CEP-227 shown in |Pilecki2013|. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/rsp_Delta_Scuti/README.rst b/star/test_suite/rsp_Delta_Scuti/README.rst index 724e8fc55..0e34faac6 100644 --- a/star/test_suite/rsp_Delta_Scuti/README.rst +++ b/star/test_suite/rsp_Delta_Scuti/README.rst @@ -4,6 +4,8 @@ rsp_Delta_Scuti *************** +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, delta-scuti, map-output + This test case checks the non-linear pulsation evolution of a 2 |Msun|, Teff = 6900 K, L = 30 Lsun, Z = 0.02 metallicity - a double-mode delta Scuti variable leaving the main-sequence phase originally contributed by Alfred Gautschy. diff --git a/star/test_suite/rsp_RR_Lyrae/README.rst b/star/test_suite/rsp_RR_Lyrae/README.rst index c0cb7c093..e23afde43 100644 --- a/star/test_suite/rsp_RR_Lyrae/README.rst +++ b/star/test_suite/rsp_RR_Lyrae/README.rst @@ -4,6 +4,8 @@ rsp_RR_Lyrae ************ +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, rr-lyrae + This test case checks the non-linear pulsation evolution of a 0.65 |Msun|, Teff = 6500 K, L = 60 Lsun, Z = 0.004 metallicity - a long-period RR Lyrae model contributed by Radek Smolec. diff --git a/star/test_suite/rsp_Type_II_Cepheid/README.rst b/star/test_suite/rsp_Type_II_Cepheid/README.rst index 971c7749f..7a8e1cb8a 100644 --- a/star/test_suite/rsp_Type_II_Cepheid/README.rst +++ b/star/test_suite/rsp_Type_II_Cepheid/README.rst @@ -4,6 +4,8 @@ rsp_Type_II_Cepheid ******************* +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, type-ii-cepheid, bl-her, chaotic-pulsation + This test case checks the non-linear pulsation evolution of a 0.55 |Msun|, Teff = 6410 K, L = 136 Lsun, Z = 0.0001 metallicity model - type-II Cepheid of BL Her type based on |Smolec14|. diff --git a/star/test_suite/rsp_check_2nd_crossing/README.rst b/star/test_suite/rsp_check_2nd_crossing/README.rst index b83071c44..67f061a67 100644 --- a/star/test_suite/rsp_check_2nd_crossing/README.rst +++ b/star/test_suite/rsp_check_2nd_crossing/README.rst @@ -4,6 +4,8 @@ rsp_check_2nd_crossing ********************** +.. tags:: star, rsp, radial-pulsation, linear-analysis, cepheid, instability-strip, second-crossing + This test case exercises the RSP model building and linear nonadiabatic stability analysis to find the instability strip edges, and effective temperatures offset from the blue edge of the instability strip. diff --git a/star/test_suite/rsp_gyre/README.rst b/star/test_suite/rsp_gyre/README.rst new file mode 100644 index 000000000..5e92cd741 --- /dev/null +++ b/star/test_suite/rsp_gyre/README.rst @@ -0,0 +1,22 @@ +.. _rsp_gyre: + +******** +rsp_gyre +******** + +.. tags:: star, rsp, gyre, asteroseismology, radial-pulsation, linear-analysis, period-search, colors + +This test exercises the interaction between RSP model construction, +linear pulsation analysis, and GYRE. + +The case creates an RSP model, enables ``use_other_RSP_linear_analysis``, +and compares the selected pulsation period against the target stored in +``x_ctrl(1)``. It also enables the colors module for synthetic +photometry output. + +How this test passes +==================== + +The active test-suite entry expects the output string ``good match for +period``. The case has ``.ignore_checksum``, so checksum reporting is +intentionally suppressed. diff --git a/star/test_suite/rsp_save_and_load_file/README.rst b/star/test_suite/rsp_save_and_load_file/README.rst index d55aeeb0f..08ecb3aff 100644 --- a/star/test_suite/rsp_save_and_load_file/README.rst +++ b/star/test_suite/rsp_save_and_load_file/README.rst @@ -4,6 +4,8 @@ rsp_save_and_load_file ********************** +.. tags:: star, rsp, radial-pulsation, cepheid, save-load + This test case checks that RSP models can be saved and loaded to produce the same results as test case :ref:`rsp_Cepheid`. This test case has 2 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/semiconvection/README.rst b/star/test_suite/semiconvection/README.rst index 5e0e71a8e..ffa0e2f51 100644 --- a/star/test_suite/semiconvection/README.rst +++ b/star/test_suite/semiconvection/README.rst @@ -4,6 +4,8 @@ semiconvection ************** +.. tags:: star, semiconvection, predictive-mixing, ledoux-criterion, convective-boundary-mixing, low-mass + This test case checks placement of the convective and semiconvective boundaries when using the Ledoux criterion and predictive mixing, see |MESA V|. The test vehicle is with a 1.5 |Msun|, Z=0.02 metallicity, model. diff --git a/star/test_suite/simplex_solar_calibration/README.rst b/star/test_suite/simplex_solar_calibration/README.rst index 021d0b335..7eb3621a5 100644 --- a/star/test_suite/simplex_solar_calibration/README.rst +++ b/star/test_suite/simplex_solar_calibration/README.rst @@ -4,6 +4,8 @@ simplex_solar_calibration ************************* +.. tags:: star, optimization, simplex, solar-calibration, solar-model, helioseismology + This test case exercises the simplex framework with a check of the chi^2 value for 1.0 |Msun|, Z=0.02 metallicity, solar model. This test case has 2 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/split_burn_big_net/README.rst b/star/test_suite/split_burn_big_net/README.rst index f328d1b81..c680637e3 100644 --- a/star/test_suite/split_burn_big_net/README.rst +++ b/star/test_suite/split_burn_big_net/README.rst @@ -4,6 +4,8 @@ split_burn_big_net ****************** +.. tags:: star, net, massive-star, split-burn, nuclear-network, silicon-burning, big-net, burner-substeps + This test suite example checks the use of MESA's split burn capabilities in a 25 |Msun| star, during silicon burning Physical checks diff --git a/star/test_suite/starspots/README.rst b/star/test_suite/starspots/README.rst index 0add6211e..b8d7e9509 100644 --- a/star/test_suite/starspots/README.rst +++ b/star/test_suite/starspots/README.rst @@ -4,6 +4,8 @@ starspots ****************** +.. tags:: star, magnetic-field, starspots, surface-boundary-condition, low-mass + This test suite case evolves a 0.9 |Msun|, solar metallicity (Z=0.02) model to an age of 24.63 Gyr using MESA's implementation of the YREC (Yale Rotating Evolution Code) SPOTS formalism introduced by diff --git a/star/test_suite/timing/README.rst b/star/test_suite/timing/README.rst index 0f30c1556..1baaf18d7 100644 --- a/star/test_suite/timing/README.rst +++ b/star/test_suite/timing/README.rst @@ -4,6 +4,8 @@ timing ****** +.. tags:: star, timing, performance, counters, low-mass, main-sequence + This test checks the counter and timing routines with a 1.5 |Msun|, Z=0.02 metallicity model. This test case has 2 part2. diff --git a/star/test_suite/twin_studies/README.rst b/star/test_suite/twin_studies/README.rst index 2516b5d9f..413b0ae12 100644 --- a/star/test_suite/twin_studies/README.rst +++ b/star/test_suite/twin_studies/README.rst @@ -4,6 +4,8 @@ twin_studies ************ +.. tags:: star, twin-studies, overshooting, massive-star, main-sequence + This test case exercise the capability to simultaneously evolve two model stars. The test vehicle is a pair of 15 |Msun|, Z=0.02 metallicity, models one with overshooting and one without overshooting. diff --git a/star/test_suite/tzo/README.rst b/star/test_suite/tzo/README.rst index be9103e10..6b8b1b5ea 100644 --- a/star/test_suite/tzo/README.rst +++ b/star/test_suite/tzo/README.rst @@ -4,6 +4,8 @@ TZO *** +.. tags:: star, thorne-zytkow-object, compact-remnant, neutron-star, accretion, eddington, convective-core + This test case builds and evolves a Thorne-Zytkow object (TZO) (Farmer et al 2023) The model starts by building a 20 |Msun| star mid way through the main sequence (inlist_initial). The precise physics do not matter here, diff --git a/star/test_suite/wd_acc_small_dm/README.rst b/star/test_suite/wd_acc_small_dm/README.rst index 684aee0dd..9b75614d8 100644 --- a/star/test_suite/wd_acc_small_dm/README.rst +++ b/star/test_suite/wd_acc_small_dm/README.rst @@ -4,6 +4,8 @@ wd_acc_small_dm *************** +.. tags:: star, white-dwarf, carbon-oxygen-white-dwarf, accretion, composition, small-timesteps + This test checks accretion in MESA with small timesteps, such that the mass added in the step is similar to the mass of the outer zone. The accreted material has a different composition (H/He mixture) than the diff --git a/star/test_suite/wd_aic/README.rst b/star/test_suite/wd_aic/README.rst index 7c09b8e2c..34fadd0b7 100644 --- a/star/test_suite/wd_aic/README.rst +++ b/star/test_suite/wd_aic/README.rst @@ -4,6 +4,8 @@ wd_aic ****** +.. tags:: star, compact-remnant, white-dwarf, oxygen-neon-white-dwarf, accretion, electron-capture, accretion-induced-collapse + This test case evolves an accreting ONeMg WD up to the point of thermal runaway in the core (see |Schwab2015|). diff --git a/star/test_suite/wd_c_core_ignition/README.rst b/star/test_suite/wd_c_core_ignition/README.rst index 4ad8ee11b..34298a2c5 100644 --- a/star/test_suite/wd_c_core_ignition/README.rst +++ b/star/test_suite/wd_c_core_ignition/README.rst @@ -4,6 +4,8 @@ wd_c_core_ignition ****************** +.. tags:: star, white-dwarf, carbon-oxygen-white-dwarf, accretion, carbon-ignition, thermonuclear-runaway, chandrashekhar-mass, type-ia-progenitor + This test case the checks the onset of a thermonuclear runaway in an accreting Chandrasekhar mass carbon-oxygen white dwarf. This test case has 2 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/wd_cool_0.6M/README.rst b/star/test_suite/wd_cool_0.6M/README.rst index 5943f8b41..4e6a546e1 100644 --- a/star/test_suite/wd_cool_0.6M/README.rst +++ b/star/test_suite/wd_cool_0.6M/README.rst @@ -4,6 +4,8 @@ wd_cool_0.6M ************ +.. tags:: star, white-dwarf, carbon-oxygen-white-dwarf, element-diffusion, white-dwarf-cooling + This test case the checks the evolution of a cooling, element diffusing 0.6 Msun white dwarf. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/wd_diffusion/README.rst b/star/test_suite/wd_diffusion/README.rst index 19ed93de4..593296f10 100644 --- a/star/test_suite/wd_diffusion/README.rst +++ b/star/test_suite/wd_diffusion/README.rst @@ -4,6 +4,8 @@ wd_diffusion ************ +.. tags:: star, element-diffusion, white-dwarf, carbon-oxygen-white-dwarf, white-dwarf-cooling + This test case the checks element diffusion in a 0.6 Msun carbon-oxygen white dwarf. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/wd_he_shell_ignition/README.rst b/star/test_suite/wd_he_shell_ignition/README.rst index 212560160..6d2c4b455 100644 --- a/star/test_suite/wd_he_shell_ignition/README.rst +++ b/star/test_suite/wd_he_shell_ignition/README.rst @@ -4,6 +4,8 @@ wd_he_shell_ignition ******************** +.. tags:: star, white-dwarf, carbon-oxygen-white-dwarf, accretion, helium-burning, helium-shell-ignition, shell-burning + This test case checks the ignition of a helium layer in an accreting in a 0.96 |Msun| carbon-oxygen white dwarf model. This test case has 1 part. Click to see a larger version of a plot. diff --git a/star/test_suite/wd_nova_burst/README.rst b/star/test_suite/wd_nova_burst/README.rst index 0cfcf65a4..7cf693e4e 100644 --- a/star/test_suite/wd_nova_burst/README.rst +++ b/star/test_suite/wd_nova_burst/README.rst @@ -4,11 +4,13 @@ wd_nova_burst ************* +.. tags:: star, white-dwarf, oxygen-neon-white-dwarf, accretion, nova, hydrogen-burning, shell-burning, thermonuclear-runaway + This test case checks the evolution of a nova outburst for one cycle. This test case has 2 parts. Click to see a larger version of a plot. -* Part 1 (``inlist_setup``) loads ``1.1M_lgTc_7.7.mod``, a prebuilt carbon-oxygen white dwarf from the :ref:`make_o_ne_wd` test suite, sets the topical depth to 30, evolves for a few steps to an age of 1e7 year and terminates. +* Part 1 (``inlist_setup``) loads ``1.1M_lgTc_7.7.mod``, a prebuilt oxygen-neon white dwarf from the :ref:`make_o_ne_wd` test suite, sets the topical depth to 30, evolves for a few steps to an age of 1e7 year and terminates. * Part 2 (``inlist_wd_nova_burst``) continues the evolution with the accretion of a hydrogen-helium mixture at a rate of 1e-9 Msun/yr. Eventually hydrogen burning in the accerted envelope causes the luminosity to exceed 1e4 Lsun and an alert is written to the terminate via the ``run_star_extras.f90``: diff --git a/star/test_suite/wd_stable_h_burn/README.rst b/star/test_suite/wd_stable_h_burn/README.rst index 50e4b9ac4..7423eac77 100644 --- a/star/test_suite/wd_stable_h_burn/README.rst +++ b/star/test_suite/wd_stable_h_burn/README.rst @@ -4,6 +4,8 @@ wd_stable_h_burn **************** +.. tags:: star, white-dwarf, carbon-oxygen-white-dwarf, accretion, hydrogen-burning, stable-hydrogen-burning, shell-burning + This test case checks the evolution stable hydrogen burning on a white dwarf. This test case has 1 parts. Click to see a larger version of a plot. diff --git a/star/test_suite/zams_to_cc_80/README.rst b/star/test_suite/zams_to_cc_80/README.rst index 9561c9064..a5312fdce 100644 --- a/star/test_suite/zams_to_cc_80/README.rst +++ b/star/test_suite/zams_to_cc_80/README.rst @@ -4,6 +4,8 @@ ZAMS_to_core_collapse_80 *************************** +.. tags:: star, very-massive-star, pre-main-sequence, full-evolution, core-collapse, mass-loss, wolf-rayet, carbon-burning, silicon-burning + This test suite evolves a solar metalicity 80 |MSun| model from the pre-ms to core collapse with mass loss. A strong mass loss rate is adopted to make a Wolf-rayet star that is ~37 Msun, below the threshold for pair instability. For bit for bit convergence, we recommended to run by using the ./run_all script instead of restarting from models, From c20736c4bc5c6c56881563e2dd513cc761b392e3 Mon Sep 17 00:00:00 2001 From: Earl Patrick Bellinger Date: Thu, 28 May 2026 12:16:41 -0400 Subject: [PATCH 2/6] Improve test suite tag count contrast --- docs/source/_static/theme_overrides.css | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/docs/source/_static/theme_overrides.css b/docs/source/_static/theme_overrides.css index a93037949..6c4a80ea0 100644 --- a/docs/source/_static/theme_overrides.css +++ b/docs/source/_static/theme_overrides.css @@ -183,12 +183,31 @@ } .mesa-tag-count { - background: var(--pst-color-on-surface, #f6f8fa); - border: 1px solid var(--pst-color-border, #d0d7de); + background: #e8f1ff; + border: 1px solid #8fb8ed; border-radius: 999px; - color: var(--pst-color-text-muted, #586069); + color: #1f4f82; flex: 0 0 auto; font-size: 0.78rem; + font-weight: 700; padding: 0.15rem 0.5rem; white-space: nowrap; } + +.mesa-tag-card:hover .mesa-tag-count { + background: #dbeafe; + border-color: var(--pst-color-primary, #2f81f7); + color: #0f4c81; +} + +html[data-theme="dark"] .mesa-tag-count { + background: rgba(96, 165, 250, 0.18); + border-color: rgba(147, 197, 253, 0.65); + color: #bfdbfe; +} + +html[data-theme="dark"] .mesa-tag-card:hover .mesa-tag-count { + background: rgba(96, 165, 250, 0.26); + border-color: #93c5fd; + color: #dbeafe; +} From ac46867122ce1000613c5703f1dfa5795dfea446 Mon Sep 17 00:00:00 2001 From: Earl Patrick Bellinger Date: Thu, 28 May 2026 12:39:09 -0400 Subject: [PATCH 3/6] Audit test suite gallery tags --- astero/test_suite/fast_newuoa/README.rst | 2 +- binary/test_suite/double_bh/README.rst | 2 +- star/test_suite/gyre_in_mesa_wd/README.rst | 2 +- star/test_suite/hb_2M/README.rst | 2 +- star/test_suite/magnetic_braking/README.rst | 2 +- star/test_suite/rsp_BEP/README.rst | 2 +- star/test_suite/rsp_BLAP/README.rst | 2 +- star/test_suite/rsp_Cepheid/README.rst | 2 +- star/test_suite/rsp_Delta_Scuti/README.rst | 2 +- star/test_suite/rsp_RR_Lyrae/README.rst | 2 +- star/test_suite/rsp_Type_II_Cepheid/README.rst | 2 +- star/test_suite/rsp_check_2nd_crossing/README.rst | 2 +- star/test_suite/rsp_save_and_load_file/README.rst | 2 +- star/test_suite/simplex_solar_calibration/README.rst | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/astero/test_suite/fast_newuoa/README.rst b/astero/test_suite/fast_newuoa/README.rst index ef9060b53..193db33b9 100644 --- a/astero/test_suite/fast_newuoa/README.rst +++ b/astero/test_suite/fast_newuoa/README.rst @@ -4,7 +4,7 @@ fast_newuoa *********** -.. tags:: astero, optimization, newuoa, synthetic-data, chi-squared, custom-variables, solar-calibration, low-mass +.. tags:: astero, optimization, newuoa, synthetic-data, chi-squared, custom-variables, solar-calibration, low-mass, element-diffusion Runs first few steps of a NEWUOA optimisation for some synthetic data. This test exists only to increase test coverage of the routines diff --git a/binary/test_suite/double_bh/README.rst b/binary/test_suite/double_bh/README.rst index f88e5c79a..1a57f274e 100644 --- a/binary/test_suite/double_bh/README.rst +++ b/binary/test_suite/double_bh/README.rst @@ -4,7 +4,7 @@ double_bh ********* -.. tags:: binary, binary-evolution, massive-star, black-hole, black-hole-binary, chemically-homogeneous-evolution, mass-transfer, roche-lobe-overflow, tidal-synchronization, contact-binary, point-mass, helium-depletion +.. tags:: binary, binary-evolution, massive-star, black-hole, black-hole-binary, chemically-homogeneous-evolution, rotation, mass-transfer, roche-lobe-overflow, tidal-synchronization, contact-binary, point-mass, helium-depletion This test evolves a close binary with initially massive stars toward a double black-hole configuration through chemically homogeneous diff --git a/star/test_suite/gyre_in_mesa_wd/README.rst b/star/test_suite/gyre_in_mesa_wd/README.rst index f84f4af6e..359519142 100644 --- a/star/test_suite/gyre_in_mesa_wd/README.rst +++ b/star/test_suite/gyre_in_mesa_wd/README.rst @@ -4,7 +4,7 @@ gyre_in_mesa_wd *************** -.. tags:: star, gyre, asteroseismology, g-mode, nonradial-pulsation, white-dwarf +.. tags:: star, gyre, asteroseismology, g-mode, nonradial-pulsation, white-dwarf, carbon-oxygen-white-dwarf This test case checks the implementation of GYRE in MESA for a cooling 0.85 Msun white dwarf model. diff --git a/star/test_suite/hb_2M/README.rst b/star/test_suite/hb_2M/README.rst index e3d4819fe..40b4b22b1 100644 --- a/star/test_suite/hb_2M/README.rst +++ b/star/test_suite/hb_2M/README.rst @@ -4,7 +4,7 @@ hb_2M ***** -.. tags:: star, kap, horizontal-branch, helium-flash, core-helium-burning, type2-opacity, convective-core, breathing-pulses +.. tags:: star, kap, horizontal-branch, helium-flash, core-helium-burning, type2-opacity, convective-core, predictive-mixing, breathing-pulses This test case shows a 2 solar mass stellar model evolving on the Horizontal Branch, from ZACHeB (Zero Age Core Helium Burning) to TACHeB (Terminal Age Core Helium Burning). diff --git a/star/test_suite/magnetic_braking/README.rst b/star/test_suite/magnetic_braking/README.rst index ccd85183a..fc0c36631 100644 --- a/star/test_suite/magnetic_braking/README.rst +++ b/star/test_suite/magnetic_braking/README.rst @@ -4,7 +4,7 @@ magnetic_braking **************** -.. tags:: star, rotation, angular-momentum, magnetic-field, magnetic-braking, mass-loss, massive-star +.. tags:: star, rotation, angular-momentum, magnetic-field, magnetic-braking, mass-loss, stellar-winds, massive-star This test case involves the calculation of the spin down caused by a large-scale magnetic field in a massive star model. The model has an diff --git a/star/test_suite/rsp_BEP/README.rst b/star/test_suite/rsp_BEP/README.rst index 49926908c..057e69037 100644 --- a/star/test_suite/rsp_BEP/README.rst +++ b/star/test_suite/rsp_BEP/README.rst @@ -4,7 +4,7 @@ rsp_BEP ******* -.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, bep +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, bep, colors This test case checks the non-linear pulsation evolution of a 0.26 |Msun|, Teff = 6968 K, L = 33 Lsun, Z = 0.01 metallicity model - a binary evolution pulsator similar the one shown in |Smolec2013|. diff --git a/star/test_suite/rsp_BLAP/README.rst b/star/test_suite/rsp_BLAP/README.rst index 3ab39740c..9902f0e5b 100644 --- a/star/test_suite/rsp_BLAP/README.rst +++ b/star/test_suite/rsp_BLAP/README.rst @@ -4,7 +4,7 @@ rsp_BLAP ******** -.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, blap +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, blap, colors This test case checks the non-linear pulsation evolution of a 0.36 |Msun|, Teff = 26,000 K, L = 320 Lsun, Z = 0.05 metallicity model - a blue large-amplitude pulsator model originally contributed by Alfred Gautschy. diff --git a/star/test_suite/rsp_Cepheid/README.rst b/star/test_suite/rsp_Cepheid/README.rst index fa9f7cbc8..8d50d315b 100644 --- a/star/test_suite/rsp_Cepheid/README.rst +++ b/star/test_suite/rsp_Cepheid/README.rst @@ -4,7 +4,7 @@ rsp_Cepheid *********** -.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, cepheid, classical-cepheid +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, cepheid, classical-cepheid, colors This test case checks the non-linear pulsation evolution of a 4.165 |Msun|, Teff = 6050 K, L = 1438.8 Lsun, Z = 0.007 metallicity model - a classical Cepheid variable similar to CEP-227 shown in |Pilecki2013|. diff --git a/star/test_suite/rsp_Delta_Scuti/README.rst b/star/test_suite/rsp_Delta_Scuti/README.rst index 0e34faac6..cab0739d3 100644 --- a/star/test_suite/rsp_Delta_Scuti/README.rst +++ b/star/test_suite/rsp_Delta_Scuti/README.rst @@ -4,7 +4,7 @@ rsp_Delta_Scuti *************** -.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, delta-scuti, map-output +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, delta-scuti, map-output, colors This test case checks the non-linear pulsation evolution of a 2 |Msun|, Teff = 6900 K, L = 30 Lsun, Z = 0.02 metallicity - a double-mode delta Scuti variable leaving the main-sequence phase originally contributed by Alfred Gautschy. diff --git a/star/test_suite/rsp_RR_Lyrae/README.rst b/star/test_suite/rsp_RR_Lyrae/README.rst index e23afde43..86968f48e 100644 --- a/star/test_suite/rsp_RR_Lyrae/README.rst +++ b/star/test_suite/rsp_RR_Lyrae/README.rst @@ -4,7 +4,7 @@ rsp_RR_Lyrae ************ -.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, rr-lyrae +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, rr-lyrae, colors This test case checks the non-linear pulsation evolution of a 0.65 |Msun|, Teff = 6500 K, L = 60 Lsun, Z = 0.004 metallicity - a long-period RR Lyrae model contributed by Radek Smolec. diff --git a/star/test_suite/rsp_Type_II_Cepheid/README.rst b/star/test_suite/rsp_Type_II_Cepheid/README.rst index 7a8e1cb8a..f65f76d29 100644 --- a/star/test_suite/rsp_Type_II_Cepheid/README.rst +++ b/star/test_suite/rsp_Type_II_Cepheid/README.rst @@ -4,7 +4,7 @@ rsp_Type_II_Cepheid ******************* -.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, type-ii-cepheid, bl-her, chaotic-pulsation +.. tags:: star, rsp, radial-pulsation, nonlinear-pulsation, type-ii-cepheid, bl-her, chaotic-pulsation, colors This test case checks the non-linear pulsation evolution of a 0.55 |Msun|, Teff = 6410 K, L = 136 Lsun, Z = 0.0001 metallicity model - type-II Cepheid of BL Her type based on |Smolec14|. diff --git a/star/test_suite/rsp_check_2nd_crossing/README.rst b/star/test_suite/rsp_check_2nd_crossing/README.rst index 67f061a67..bea0cc7ab 100644 --- a/star/test_suite/rsp_check_2nd_crossing/README.rst +++ b/star/test_suite/rsp_check_2nd_crossing/README.rst @@ -4,7 +4,7 @@ rsp_check_2nd_crossing ********************** -.. tags:: star, rsp, radial-pulsation, linear-analysis, cepheid, instability-strip, second-crossing +.. tags:: star, rsp, radial-pulsation, linear-analysis, cepheid, instability-strip, second-crossing, colors This test case exercises the RSP model building and linear nonadiabatic stability analysis to find the instability strip edges, and effective temperatures offset from the blue edge of the instability strip. diff --git a/star/test_suite/rsp_save_and_load_file/README.rst b/star/test_suite/rsp_save_and_load_file/README.rst index 08ecb3aff..b68717ae9 100644 --- a/star/test_suite/rsp_save_and_load_file/README.rst +++ b/star/test_suite/rsp_save_and_load_file/README.rst @@ -4,7 +4,7 @@ rsp_save_and_load_file ********************** -.. tags:: star, rsp, radial-pulsation, cepheid, save-load +.. tags:: star, rsp, radial-pulsation, cepheid, save-load, colors This test case checks that RSP models can be saved and loaded to produce the same results as test case :ref:`rsp_Cepheid`. diff --git a/star/test_suite/simplex_solar_calibration/README.rst b/star/test_suite/simplex_solar_calibration/README.rst index 7eb3621a5..322ea704d 100644 --- a/star/test_suite/simplex_solar_calibration/README.rst +++ b/star/test_suite/simplex_solar_calibration/README.rst @@ -4,7 +4,7 @@ simplex_solar_calibration ************************* -.. tags:: star, optimization, simplex, solar-calibration, solar-model, helioseismology +.. tags:: star, optimization, simplex, solar-calibration, solar-model, helioseismology, element-diffusion This test case exercises the simplex framework with a check of the chi^2 value for 1.0 |Msun|, Z=0.02 metallicity, solar model. From 3a45172dfc7ff8427d2727dc7573ccc17e1a2303 Mon Sep 17 00:00:00 2001 From: Earl Patrick Bellinger Date: Thu, 28 May 2026 12:54:50 -0400 Subject: [PATCH 4/6] Document test suite gallery tags --- docs/source/developing/test_suite.rst | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/docs/source/developing/test_suite.rst b/docs/source/developing/test_suite.rst index da59bf975..4046462d5 100644 --- a/docs/source/developing/test_suite.rst +++ b/docs/source/developing/test_suite.rst @@ -213,6 +213,43 @@ The description should be one sentence broadly describing what the case does and then one optional sentence about anything interesting illustrated by the case (e.g., other_hooks). +Gallery tags +~~~~~~~~~~~~ + +Test case pages can participate in the searchable Test Suite Gallery by +adding a ``sphinx-tags`` directive near the top of the test case +``README.rst``, after the title:: + + .. tags:: star, rotation, angular-momentum, massive-star + +Use concise, lower-case, hyphenated tags that describe the main purpose +of the case, the tested module, the important physics, or a workflow a +user might search for. Do not tag every enabled inlist option. Many +test cases turn on supporting physics for numerical stability or model +setup; those controls should only become tags when they are part of what +the case is demonstrating or testing. + +A new test suite directory, or a new entry in ``do1_test_source``, does +not by itself add the case to the rendered documentation or gallery. To +make the case appear in the documentation, add the ``README.rst`` link in +``docs/source/test_suite`` as described above. To make it appear on tag +pages and in the generated gallery overview, include an appropriate +``.. tags::`` directive in that README. The tag pages are generated by +Sphinx at documentation build time. + +The gallery groups tag cards under broad headings such as ``Module``, +``Physics``, ``Binaries``, and ``Numerical methods``. These headings +are assigned to tags in ``docs/source/_ext/mesa_tags.py``; they are not +tags to add to individual README files. For example, a README tagged +with ``rotation`` will contribute that case to the ``rotation`` tag +page, and the ``rotation`` tag card appears under the ``Physics`` +heading because ``rotation`` is listed in that group in +``mesa_tags.py``. A single test case can therefore be represented under +several gallery headings through its different tags. If a new tag is +genuinely needed, add it to the appropriate group in +``docs/source/_ext/mesa_tags.py`` so that the generated gallery places +it in the right section. + Inventory helper ^^^^^^^^^^^^^^^^ From d2c082bab2941fbab80bae27328d59aae399e67d Mon Sep 17 00:00:00 2001 From: Debraheem Date: Mon, 1 Jun 2026 23:28:27 -0400 Subject: [PATCH 5/6] clean up and lint --- docs/source/developing/release.rst | 1 + docs/source/developing/test_suite.rst | 2 +- scripts/test_suite_inventory.py | 14 +++++++++----- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/source/developing/release.rst b/docs/source/developing/release.rst index 35785c2a2..2090f6194 100644 --- a/docs/source/developing/release.rst +++ b/docs/source/developing/release.rst @@ -17,6 +17,7 @@ Prior to generating a release - Update the ZAMS model file by running the work directory found in ``data/star_data/zams_models/create_z2m2_y28``. This may take up to a couple of hours or so. This will generate the file ``data/star_data/zams_models/zams_z2m2_y28.data``. Use the ZAMS model plotting script to verify that the HR diagram and central compositions look reasonable, and commit the new data file. - Update figures in the docs by running the ``update_docs_figures`` script in the ``star/test_suite/`` folder. These figures should be checked to make sure they look reasonable. Currently not all test suite problems autogenerate figures. Pay special attention if the model numbers in the filenames of saved figures have changed (script will print an ERROR message) -- this indicates some commit to MESA has slightly changed the results of these problems, and currently the README.rst file needs to be manually updated with the new image filename and the test as to be re-run (e.g. ``./each_test_run -u 13``). A new release should not be made if one of the figures degrade in quality. +- Check that the test suite gallery tags are up to date by following :ref:`developing/test_suite:Gallery tags`, using the Python packages pinned in the top-level ``requirements-dev.txt``, and running ``python scripts/test_suite_inventory.py`` from ``$MESA_DIR``. Update ``docs/source/_ext/mesa_tags.py`` if new tags need to be grouped for the generated gallery. Removing files diff --git a/docs/source/developing/test_suite.rst b/docs/source/developing/test_suite.rst index 4046462d5..8d5a55ba6 100644 --- a/docs/source/developing/test_suite.rst +++ b/docs/source/developing/test_suite.rst @@ -259,7 +259,7 @@ rendered documentation links, and documentation tags. .. code-block:: sh - python3 scripts/test_suite_inventory.py + python scripts/test_suite_inventory.py This can be useful before opening a pull request that adds or migrates test suite documentation. diff --git a/scripts/test_suite_inventory.py b/scripts/test_suite_inventory.py index c62ac494a..8d4d223cd 100755 --- a/scripts/test_suite_inventory.py +++ b/scripts/test_suite_inventory.py @@ -116,17 +116,21 @@ def gather_inventory(root: Path) -> dict[str, object]: ] active_missing_docs = [case for case in active_tests if case.name not in doc_names] active_missing_tags = [ - case - for case in active_tests - if case.label not in tags_by_case + case for case in active_tests if case.label not in tags_by_case ] inactive_dirs = [case for case in test_dirs if case.name not in active_names] documented_inactive = sorted(doc_names - active_names, key=str.lower) readmes_without_docs = [ - case for case in test_dirs if readmes[case].exists() and case.name not in doc_names + case + for case in test_dirs + if readmes[case].exists() and case.name not in doc_names ] broken_docs = sorted( - [path.name for path in docs_pages.values() if path.is_symlink() and not path.exists()], + [ + path.name + for path in docs_pages.values() + if path.is_symlink() and not path.exists() + ], key=str.lower, ) From bb68b10dc7f9a6b5345a43314b4b01a02de65007 Mon Sep 17 00:00:00 2001 From: Debraheem Date: Mon, 1 Jun 2026 23:57:55 -0400 Subject: [PATCH 6/6] [ci skip] add changelog entry --- docs/source/changelog.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index f3cf8c3cf..b8dc582e5 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -28,6 +28,8 @@ For a more in-depth look at the new build system, see :doc:`developing/build-sys New Features ------------ +MESA's documentation now includes a generated :ref:`Test Suite Gallery ` using metadata from test case ``README.rst`` files. The gallery groups test cases by module, physics, numerical method, workflow, and stellar object or phase. This change makes it easier to understand the purpose of each test case, and can help users more easily find a useful starting point for a MESA project. Details on the implementation can be found in :ref:`developing/test_suite:Gallery tags`. + Diffusive overshooting (overmixing) prescriptions now support a ``step+exponential`` option, see :ref:`reference/controls:overshoot_scheme`. @@ -99,7 +101,7 @@ TDC - ``TDC_hydro_nz_outer`` : Analogous to ``RSP_nz_outer`` - ``TDC_hydro_T_anchor`` : Analogous to ``RSP_T_anchor`` - ``TDC_hydro_dq_1_factor`` : Analogous to ``RSP_dq_1_factor`` -- ``TDC_hydro_use_mass_interp_face_values`` : This option determines whether face quantites are computed from simple averages or mass weighted averaging. +- ``TDC_hydro_use_mass_interp_face_values`` : This option determines whether face quantities are computed from simple averages or mass weighted averaging. - ``remesh_for_TDC_pulsations_log_core_zoning`` : This option allows log zoning in the interior as opposed to a power law ( similar to ``RSP``). A new optional boundary condition ``use_RSP_L_eqn_outer_BC`` is available.