Commit 6564732
feat(accrete): parametric giant migration model behind -r (Phase 1)
Implements migrate_giant() per research/modern/11-giant-migration.md, replacing
the crude uniform-random relocation in dist_planetary_masses (accrete.cpp). Behind
allow_planet_migration (-r), default OFF -> the default golden path is byte-
identical (verify.sh --determinism ref=294147B, unchanged from pre-migration;
goldens clean; ctest 23/23).
Model: inward drift a_final = a_form*exp(-dt/tau) to an inner trap (~0.05 AU disk
edge), tau = viscous Type II (a^1.5) above the ~0.5 M_Jup gap mass (Crida 2006) or
Tanaka 2002 Type I (M^-1 a^(25/14)) below, with the empirical rate reduction in
MIGRATION_EFFICIENCY; hot orbits (perihelion < ~0.05 AU) tidally circularized; only
bodies > 0.1 M_Jup migrate (terrestrials untouched -> inner architecture preserved).
Determinism: a FIXED two-draw order from the per-system RandomContext and an
ANALYTIC perihelion clamp (no rejection loops). Verified -r byte-identical across
-T1/-T2/-T4/-T8.
Calibration (MIGRATION_EFFICIENCY=1e-4, 600-seed harness --migrate):
hot-Jupiter occurrence (a<0.1 AU) 0.5% (matches transit rate Howard12/Fressin13)
giant a-bins: <0.1:3 0.1-1:35 1-3:39 3-10:504 >10:325 (cold peak preserved)
mass p50/p90 0.71 / 343 M_earth (no inflation) density-sane 0.946
architecture (-r): peas 0.28, hill 19, sigma_e 0.052, min period-ratio 1.012 (>1)
The 1e-4 efficiency is a calibrated value (not derived): StarGen's snapshot Type
I/II model + the steep isothermal Tanaka rate over-migrate massively, so a strong
suppression is needed to match the observed ~0.5% HJ rate -- consistent with the
known Type-I over-efficiency problem (Ida & Lin 2008a reduce by >=10x; the snapshot
model needs more).
Also adds --migrate to validate_population.py (passes -r) to measure it.
KNOWN LIMITATIONS (documented follow-ups, NOT migration bugs):
- cold:hot ratio is ~169 (target ~10-20) ONLY because StarGen over-produces cold
giants (~84% of systems vs observed ~10-20%) -- a giant-FREQUENCY issue distinct
from migration (giant occurrence / metallicity).
- giant eccentricity dichotomy not achieved (<e>~0 hot AND cold): the post-accretion
Cresswell-Nelson gas damping circularizes migration's broad e. Reconciling needs
exempting cold giants from the damping, which changes the default path/goldens --
deferred to its own PR.
- hot Jupiters are mostly 0.3-0.5 M_Jup (Type I cores); the snapshot model does not
carry a >1 M_Jup core inward (it is Type II by final mass) -- a model limitation.
Stays opt-in (-r) per the plan's phased rollout; default-ON is a later, separately-
gated decision (needs the cold-frequency + eccentricity follow-ups first).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 1ff9e03 commit 6564732
3 files changed
Lines changed: 107 additions & 42 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
747 | 747 | | |
748 | 748 | | |
749 | 749 | | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
750 | 820 | | |
751 | 821 | | |
752 | 822 | | |
| |||
902 | 972 | | |
903 | 973 | | |
904 | 974 | | |
905 | | - | |
906 | | - | |
907 | | - | |
908 | | - | |
909 | | - | |
910 | | - | |
911 | | - | |
912 | | - | |
913 | | - | |
914 | | - | |
915 | | - | |
916 | | - | |
917 | | - | |
918 | | - | |
919 | | - | |
920 | | - | |
921 | | - | |
922 | | - | |
923 | | - | |
924 | | - | |
925 | | - | |
926 | | - | |
927 | | - | |
928 | | - | |
929 | | - | |
930 | | - | |
931 | | - | |
932 | | - | |
933 | | - | |
934 | | - | |
935 | | - | |
936 | | - | |
937 | | - | |
938 | | - | |
939 | | - | |
940 | | - | |
941 | | - | |
942 | | - | |
943 | | - | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
944 | 984 | | |
945 | 985 | | |
946 | 986 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
189 | 210 | | |
190 | 211 | | |
191 | 212 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
59 | 62 | | |
60 | | - | |
| 63 | + | |
61 | 64 | | |
62 | 65 | | |
63 | 66 | | |
| |||
311 | 314 | | |
312 | 315 | | |
313 | 316 | | |
| 317 | + | |
314 | 318 | | |
315 | 319 | | |
316 | 320 | | |
| |||
323 | 327 | | |
324 | 328 | | |
325 | 329 | | |
326 | | - | |
| 330 | + | |
327 | 331 | | |
328 | 332 | | |
329 | 333 | | |
| |||
0 commit comments