Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
477 commits
Select commit Hold shift + click to select a range
e8a7564
Merge branch 'sg_v2.3_fix_ram_usage' of github.com:POSYDON-code/POSYD…
sgossage Mar 18, 2026
6aa0e69
adding function that handles printing test info and checking the resu…
sgossage Mar 18, 2026
f06b299
Adding an RNG kwarg to load_steps() and load_a_step() in simulationpr…
sgossage Mar 18, 2026
3f78229
change is not to != and update __repr__ for StepSN
sgossage Mar 18, 2026
85bfa7e
use __dict__ to print all attributes of StepSN in __repr__
sgossage Mar 18, 2026
003060a
use __dict__ to print all attributes of StepSN in __repr__
sgossage Mar 18, 2026
c358857
Merge remote-tracking branch 'origin/v2.3' into sg_v2.3_binpop_test_s…
sgossage Mar 18, 2026
04cf587
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 18, 2026
90249b3
fix typo in population test output file name
sgossage Mar 18, 2026
c256384
Merge branch 'sg_v2.3_binpop_test_suite' of github.com:POSYDON-code/P…
sgossage Mar 18, 2026
dc5180b
re-enabling optimize_ram test check
sgossage Mar 18, 2026
28e6af9
Update binaries_suite.py to save path_to_posydon_data in the H5 metadata
elizabethteng Mar 19, 2026
0bab574
Update generate_baseline.sh to save PATH_TO_POSYDON_DATA to baseline_…
elizabethteng Mar 19, 2026
b1f5166
Update binaries_suite.py to check how many binaries ran and save to m…
elizabethteng Mar 19, 2026
f2e9361
Update generate_baseline.sh to check if any binaries didn't run
elizabethteng Mar 19, 2026
5c505c8
Update compare_runs.py to eliminate redundancies in report (missing b…
elizabethteng Mar 19, 2026
2963bdf
Merge branch 'main' into v2.3
maxbriel Mar 19, 2026
b24ee24
Merge branch 'v2.3' into mb_initial_conditions_sampling
maxbriel Mar 19, 2026
e1e2213
change description
maxbriel Mar 19, 2026
b47dd21
Merge remote-tracking branch 'origin/v2.3' into et-validation
elizabethteng Mar 19, 2026
64be558
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 19, 2026
d0555a4
added more descriptive errors to evolve_binaries
elizabethteng Mar 19, 2026
7d3290f
Merge branch 'et-validation' of https://github.com/POSYDON-code/POSYD…
elizabethteng Mar 19, 2026
5f57b85
Merge branch 'v2.3' into sg_v2.3_fix_ram_usage
sgossage Mar 19, 2026
b9e823a
Merge branch 'v2.3' into sg_v2.3_rng_for_steps
sgossage Mar 19, 2026
316ae3f
Merge branch 'v2.3' into sg_v2.3_binpop_test_suite
sgossage Mar 19, 2026
305dff4
fix path to .ini for binary suite and also print paths
sgossage Mar 19, 2026
c604093
pass RNG down to bondi_hoyle accretion functions in step_mesa and ste…
sgossage Mar 19, 2026
00c257c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 19, 2026
5ced319
add RNG argument for SimulationProperties.from_ini that may be used t…
sgossage Mar 19, 2026
daec081
Merge branch 'sg_v2.3_rng_for_steps' of github.com:POSYDON-code/POSYD…
sgossage Mar 19, 2026
8cfb9bc
update bondi_hoyle unit test
sgossage Mar 19, 2026
d785905
move key_library.py from posydon/binary_evol/DT to posydon/utils
sgossage Mar 19, 2026
d2d3f84
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 19, 2026
42374a3
Merge branch 'sg_v2.3_fix_ram_usage' into sg_v2.3_rng_for_steps
sgossage Mar 19, 2026
8e267c2
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 19, 2026
6457eed
Merge branch 'main' of github.com:POSYDON-code/POSYDON
sgossage Mar 20, 2026
247ef50
Rebase popsyn unit tests onto v2.3
elizabethteng Mar 26, 2026
1c9bda5
population helper function
elizabethteng Mar 26, 2026
9527e7c
Refactor test_synthetic_population to use make_test_pop helper
elizabethteng Mar 26, 2026
30bcbcf
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 26, 2026
cc63eaf
fix failing tests
elizabethteng Mar 26, 2026
af54106
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 26, 2026
0e89d23
Merge pull request #797 from POSYDON-code/mb_initial_conditions_sampling
astroJeff Mar 26, 2026
a97e18b
Update setup.cfg to exclude analysis.py and GRB.py from testing
elizabethteng Mar 26, 2026
00ff3e8
Merge pull request #818 from POSYDON-code/sg_v2.3_fix_ram_usage
astroJeff Mar 26, 2026
e85ff24
removed tests for inactive code
elizabethteng Mar 26, 2026
904ac5c
Merge branch 'et_unittest_popsyn' of https://github.com/POSYDON-code/…
elizabethteng Mar 26, 2026
4f604c1
add note about being omitted from testing
elizabethteng Mar 26, 2026
ec77dea
Merge branch 'v2.3' into et_unittest_popsyn
elizabethteng Mar 26, 2026
1c50d14
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 26, 2026
111225a
Merge branch 'v2.3' into sg_v2.3_rng_for_steps
sgossage Mar 26, 2026
02cd07d
Merge pull request #826 from POSYDON-code/sg_v2.3_rng_for_steps
astroJeff Mar 26, 2026
b989bf6
Merge branch 'main' of github.com:POSYDON-code/POSYDON
sgossage Mar 26, 2026
81b03ca
Merge branch 'main' into v2.3
sgossage Mar 26, 2026
b25e22f
add [grid_paths] section to .ini file and link settings to MESA grid …
sgossage Mar 26, 2026
9babcf0
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 26, 2026
101da5c
only check path existence if a custom path provided
sgossage Mar 26, 2026
559caec
Merge branch 'sg_v2.3_gpaths_in_ini' of github.com:POSYDON-code/POSYD…
sgossage Mar 26, 2026
27253e5
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 26, 2026
7653a32
disabling path validity check for unit test
sgossage Mar 26, 2026
eb9e619
Merge branch 'sg_v2.3_gpaths_in_ini' of github.com:POSYDON-code/POSYD…
sgossage Mar 26, 2026
22492a4
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 26, 2026
3475da5
add doc string to SimulationProperties.set_path() and delete the path…
sgossage Mar 26, 2026
5e2d126
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 26, 2026
8ec80b5
Merge branch 'v2.3' into sg_v2.3_binpop_test_suite
sgossage Mar 26, 2026
cf3e57e
Merge branch 'et-validation' into sg_v2.3_binpop_test_suite
sgossage Mar 26, 2026
81abcd1
merge + add list
maxbriel Mar 27, 2026
b7987c9
Remove added model after merge
maxbriel Mar 27, 2026
4cb4ac7
Merge branch 'v2.3' into mb_add_docs_model_weight
maxbriel Mar 27, 2026
9ec2752
add additional info on types of info in dict
maxbriel Mar 27, 2026
cd8693c
Merging et-validation branch into this one
sgossage Mar 27, 2026
beb9dc1
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 27, 2026
83b4060
adding workdirs, logs, output, baselines directories explicitly
sgossage Mar 27, 2026
5e87ee2
updated for change from metallicity to metallicities
elizabethteng Mar 30, 2026
7b75f9f
updated coverage
elizabethteng Mar 30, 2026
08c42b3
update test coverage
elizabethteng Mar 30, 2026
a8481aa
finishing tests for synthetic_population
elizabethteng Mar 30, 2026
a7246a6
fix small issue with rates helper function
elizabethteng Mar 30, 2026
6fa63f6
finish coverage of synthetic population test
elizabethteng Mar 30, 2026
a2d2dea
cleaning up annoying warnings
elizabethteng Mar 30, 2026
79444d7
update to remove tests for things that have been removed
elizabethteng Mar 30, 2026
063a5c3
update independent_sample test to reflect changes to distributions, a…
elizabethteng Mar 30, 2026
9422a5f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 30, 2026
fe0aad6
change author to authors
elizabethteng Mar 30, 2026
08528e6
update test for io.py
elizabethteng Mar 30, 2026
c8953ec
unit test for sample_from_file
elizabethteng Mar 30, 2026
7183c04
updated transient_select_funcs tests to add a new one for new funcito…
elizabethteng Mar 30, 2026
cfb4493
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 30, 2026
c2bfaab
Update continuous_integration.yml to cover all of popsyn
elizabethteng Mar 30, 2026
152abaa
update defaults for multiple metallicities being in list form
elizabethteng Mar 30, 2026
b77d96f
debug tests
elizabethteng Mar 30, 2026
fb0ea07
fix bug in conditional statement
elizabethteng Mar 30, 2026
e0f8c61
clean up coverage of branches
elizabethteng Mar 30, 2026
cbb02b5
add coverage
elizabethteng Mar 30, 2026
64856a1
Merge branch 'et_unittest_popsyn' of https://github.com/POSYDON-code/…
elizabethteng Mar 30, 2026
773037e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 30, 2026
74861af
moved coverage addition to correct location
elizabethteng Mar 30, 2026
0f4ecec
format
elizabethteng Mar 30, 2026
ef8fed4
get rid of isclass, isroutine imports -- no longer necessary
elizabethteng Mar 30, 2026
24f36bc
add test for selection effects
elizabethteng Mar 30, 2026
d6e7e5a
merge
elizabethteng Mar 30, 2026
6975dfc
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 30, 2026
5467494
write tests for Moes_distributions.py
elizabethteng Mar 30, 2026
a6695db
fix bug and update coverage
elizabethteng Mar 30, 2026
72bd2e9
fix bug and update coverage
elizabethteng Mar 30, 2026
013a7cc
remove isroutine checks
elizabethteng Mar 30, 2026
89bedc9
update coverage
elizabethteng Mar 30, 2026
d0a98fb
Merge branch 'et_unittest_popsyn' of https://github.com/POSYDON-code/…
elizabethteng Mar 30, 2026
9232de2
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 30, 2026
f865de8
Update continuous_integration.yml
elizabethteng Mar 30, 2026
9c5c45b
restore test I accidentally deleted
elizabethteng Mar 30, 2026
28be49d
fix mistake from merge
elizabethteng Mar 30, 2026
baff2c1
Merge branch 'et_unittest_popsyn' of https://github.com/POSYDON-code/…
elizabethteng Mar 30, 2026
fc9d205
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 30, 2026
9547b8c
first draft of binarypopulation test
elizabethteng Mar 30, 2026
bf60169
mock out dependence on external data file
elizabethteng Mar 30, 2026
0b5bdb4
Merge branch 'et_unittest_popsyn' of https://github.com/POSYDON-code/…
elizabethteng Mar 30, 2026
0706981
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 30, 2026
3200c54
adjust coverage for binarypopulation
elizabethteng Mar 30, 2026
60224de
debug tests and adjust coverage
elizabethteng Mar 30, 2026
c572068
fix merge conflict
elizabethteng Mar 30, 2026
9936534
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 30, 2026
5902f3c
Apply suggestion from @sgossage -- indent dummy_code
sgossage Mar 31, 2026
fef6715
Apply suggestion from @sgossage
sgossage Mar 31, 2026
71688ae
Apply suggestion from @sgossage
sgossage Mar 31, 2026
530f12c
Apply suggestion from @sgossage -- fix indent
sgossage Mar 31, 2026
b0382d7
Apply suggestion from @sgossage -- remove alt code
sgossage Mar 31, 2026
d4fceb0
Apply suggestion from @sgossage -- fix indent
sgossage Mar 31, 2026
dc1bd2b
Apply suggestion from @sgossage - fix indent
sgossage Mar 31, 2026
e4a60eb
Adding ini_path back to test_io.py
sgossage Mar 31, 2026
3528041
Update posydon/unit_tests/_helper_functions_for_tests/population.py
elizabethteng Mar 31, 2026
21082c8
revert change to population.py
elizabethteng Mar 31, 2026
c71f929
Refactor ini and dummy code content in test_io.py using dedent
sgossage Mar 31, 2026
7d4608e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 31, 2026
e98f569
Fix indent test_io.py
sgossage Mar 31, 2026
d4cf906
Remove extra quote in test_io.py
sgossage Mar 31, 2026
9058f40
added option to skip evolution in validate_binaries, added info about…
elizabethteng Mar 31, 2026
ff2294f
updated README with more in-depth information that may be useful for …
elizabethteng Mar 31, 2026
322d05e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 31, 2026
6278790
re-enabling popsynth suite tests and reconfiguring to new format
sgossage Mar 31, 2026
af07783
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 31, 2026
d02aa9a
add note about RNG reproducibility fix by Seth's PR
elizabethteng Mar 31, 2026
3d9fb8e
Merge branch 'et-validation' of https://github.com/POSYDON-code/POSYD…
elizabethteng Mar 31, 2026
dd4e0bb
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 31, 2026
7799b8e
Update dev-tools/README.md
elizabethteng Mar 31, 2026
bd616e9
Update dev-tools/README.md
elizabethteng Mar 31, 2026
a7ad842
Update dev-tools/README.md
elizabethteng Mar 31, 2026
ba4ac8a
Update dev-tools/README.md
elizabethteng Mar 31, 2026
a537d08
update .gitignore and remove some old code in run_test_suite.sh
sgossage Mar 31, 2026
db9e95b
Merge branch 'sg_v2.3_binpop_test_suite' of github.com:POSYDON-code/P…
sgossage Mar 31, 2026
03c1b4a
added more details about --promote option
elizabethteng Mar 31, 2026
b36f237
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 31, 2026
f90436c
adding verbosity to pop runer
sgossage Mar 31, 2026
b3db415
Merge branch 'et-validation' into sg_v2.3_binpop_test_suite
sgossage Mar 31, 2026
d7936c2
cherrypicking changed from latest et-validation commit to preserve them
sgossage Mar 31, 2026
1b29915
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 31, 2026
6e4f5fd
updating error text
sgossage Apr 4, 2026
5faeafc
update succeed text
sgossage Apr 4, 2026
b683d60
add pipeline test and update .gitignore
sgossage Apr 6, 2026
37eb6b6
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 6, 2026
71b5333
adding flush to print statements involving shell commands to place th…
sgossage Apr 7, 2026
ca0b2d6
updating comment
sgossage Apr 7, 2026
52a73e6
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 7, 2026
d715e96
Remove metallicity print statement
sgossage Apr 9, 2026
0f6197f
Merge pull request #821 from POSYDON-code/mb_stepCE_docstring
astroJeff Apr 9, 2026
e793c16
Merge pull request #823 from POSYDON-code/mb_add_docs_model_weight
astroJeff Apr 9, 2026
a5722ea
Merge pull request #780 from POSYDON-code/et-validation
astroJeff Apr 9, 2026
d45cf88
Merge branch 'v2.3' into sg_v2.3_binpop_test_suite
sgossage Apr 9, 2026
09e6f1f
Merge pull request #831 from POSYDON-code/sg_v2.3_gpaths_in_ini
astroJeff Apr 9, 2026
a2a230a
Merge pull request #499 from POSYDON-code/et_unittest_popsyn
astroJeff Apr 9, 2026
9864ad3
add concurrent and exlude options to popsyn setup. Originally impleme…
maxbriel Apr 15, 2026
50d85a7
Merge branch 'v2.3' into Maltsev_prescription
maxbriel Apr 15, 2026
787e7ba
f_fb and state assigned independent of conserve_hydrogen_envelope state
maxbriel Apr 15, 2026
47daf41
change RNG from random to self.RNG
maxbriel Apr 15, 2026
1627c18
change comment indeptation
maxbriel Apr 15, 2026
2d5e456
fix indentation of comments
maxbriel Apr 15, 2026
cf59c5d
flip k1 and k2 values in the explod_crit function
maxbriel Apr 15, 2026
1779e6e
add k1 and k2 as input values for explod_crit function
maxbriel Apr 15, 2026
d91b105
flip criteria
maxbriel Apr 15, 2026
28e8dcc
change NS_vs_fallbackBH output from int to informative string string
maxbriel Apr 15, 2026
57c3349
add reference function call
maxbriel Apr 15, 2026
8e33dd7
change verbose output
maxbriel Apr 15, 2026
053be4e
docstring addition
maxbriel Apr 15, 2026
bf6344c
add SN prescription to SN_MODELS
maxbriel Apr 15, 2026
255f9ed
add power law mass ratio options
maxbriel Apr 16, 2026
1c97a65
[fix] add test for failing unit tests (`[grid_path]` + symlink) (#835)
maxbriel Apr 17, 2026
e4b9b50
Merge branch 'v2.3' into mb_mass_ratio_slope
maxbriel Apr 17, 2026
05d21c8
Merge branch 'v2.3' into mb_v2.3_max_concurrent_exclude
maxbriel Apr 17, 2026
0de835f
[fix/feat] Remove duplicate functions in `grid_utils` (#815)
maxbriel Apr 17, 2026
6111a04
add unit tests to cover new powerlaw mass ratio distribution function
maxbriel Apr 17, 2026
4d3eda6
add unit tests for the new CI lines
maxbriel Apr 17, 2026
edb8748
Merge branch 'v2.3' into Maltsev_prescription
maxbriel Apr 17, 2026
b81d2df
[v2.3] Add `to_df()` method for `LazyHDF5` (#836)
sgossage Apr 23, 2026
63d1591
move n_points to function argument
maxbriel Apr 29, 2026
3b1ccff
add other n_points as function arg
maxbriel Apr 29, 2026
6f5a9e1
add Kepler sc data table to unit_test directory
maxbriel Apr 29, 2026
442ecc3
make sure a new RNG is created for each instance of a stepSN
maxbriel Apr 29, 2026
7cd3974
change to whitespace delimiter
maxbriel Apr 29, 2026
ec6a5a5
clean up whitespace
maxbriel Apr 29, 2026
24bdfd5
Merge pull request #817 from POSYDON-code/sg_v2.3_binpop_test_suite
astroJeff Apr 30, 2026
090779f
Merge pull request #837 from POSYDON-code/mb_mass_ratio_slope
astroJeff Apr 30, 2026
c5583f4
clean posydon repo; redo PR784 into v2.3 instead
maxbriel May 4, 2026
aefa45b
remove more tests
maxbriel May 4, 2026
1ae0b90
add setup.py and pytproject.toml changes
maxbriel May 4, 2026
00d7c5d
Correct spelling of 'remnant' in step_SN.py
maxbriel May 4, 2026
2781490
uncomment binary test run code (#840)
sgossage May 5, 2026
6f25cfc
[fix/enhancement] Remove forced lower mass ratio limit (#819)
maxbriel May 6, 2026
70e69ec
Merge pull request #842 from POSYDON-code/mb_typo_fix
astroJeff May 7, 2026
99b918d
fix comments to explain that metallicity is in Z/Zsun ratio
maxbriel May 7, 2026
46a072a
[fix] suppress warnings for overflow & divide by zero from unbound bi…
maxbriel May 7, 2026
81d69f9
Merge pull request #843 from POSYDON-code/mb_comment_fix
astroJeff May 7, 2026
78f5f3c
Update step_SN.py
astroJeff May 7, 2026
1d00733
Update step_SN.py
astroJeff May 7, 2026
724c445
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 7, 2026
773e66c
Change indentation of comments
maxbriel May 7, 2026
6411b0e
Merge pull request #844 from POSYDON-code/mb_runtimewarning
astroJeff May 7, 2026
41975af
change license
maxbriel May 7, 2026
87bbb53
correct format
maxbriel May 7, 2026
c8eabe5
Merge pull request #834 from POSYDON-code/mb_v2.3_max_concurrent_exclude
astroJeff May 7, 2026
14e3ae7
add pre-commit autoupdate
maxbriel May 7, 2026
d1cabfa
Update step_SN.py
astroJeff May 7, 2026
c6b9299
Merge pull request #786 from POSYDON-code/Maltsev_prescription
astroJeff May 7, 2026
f9608a9
improve error text in case adding a column to PSyGrid fails. Add supp…
sgossage May 9, 2026
4046042
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 9, 2026
b7683d5
fixing circular import by moving LazyHDF5 to gridutils, from psygrid
sgossage May 9, 2026
d1a7a2e
Merge branch 'sg_postproc_lazyhdf5_support' of https://github.com/POS…
sgossage May 9, 2026
0d78e54
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 9, 2026
1223f7e
move LazyHDF5 class into its own file to resolve circular imports
sgossage May 9, 2026
845cafd
Merge branch 'sg_postproc_lazyhdf5_support' of https://github.com/POS…
sgossage May 9, 2026
bc5d575
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 9, 2026
b616447
fix imports
sgossage May 9, 2026
a33eada
Merge branch 'sg_postproc_lazyhdf5_support' of https://github.com/POS…
sgossage May 9, 2026
466b45a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 9, 2026
7f9f7d2
fixing compatibility in update_final_values
sgossage May 9, 2026
e31d459
Merge branch 'sg_postproc_lazyhdf5_support' of https://github.com/POS…
sgossage May 9, 2026
bc0cd09
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 9, 2026
9f169f5
fix unit tests
sgossage May 9, 2026
0633c52
Merge branch 'sg_postproc_lazyhdf5_support' of https://github.com/POS…
sgossage May 9, 2026
b4a83c2
fixing unit tests
sgossage May 9, 2026
70880f9
fixing unit tests
sgossage May 9, 2026
840c3e8
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 9, 2026
c229940
removing coverage from astype for LazyHDF5
sgossage May 9, 2026
d7d6aa8
Merge branch 'sg_postproc_lazyhdf5_support' of https://github.com/POS…
sgossage May 9, 2026
9e6dadb
update error message in update_final_values regarding ndarray require…
sgossage May 11, 2026
744bbbb
Merge pull request #845 from POSYDON-code/sg_postproc_lazyhdf5_support
astroJeff May 14, 2026
0dadd29
Merge pull request #841 from POSYDON-code/mb_update_repo_v2.3
astroJeff May 14, 2026
951b632
Set compression arguments in grid initialization
maxbriel May 19, 2026
47b6ead
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 19, 2026
1c41992
Merge pull request #849 from POSYDON-code/mb_compression
astroJeff Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 3 additions & 18 deletions .github/workflows/continuous_integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,29 +25,14 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

- name: Install POSYDON without extras
- name: Install POSYDON with test dependencies
run: |
python -m pip install --upgrade pip
pip install .
pip install .[test]

- name: Run all tests in posydon/unit_tests
run: |
# python -m pip install --upgrade pip
# pip install .
pip install pytest
pip install pytest-cov
export PATH_TO_POSYDON=./
export PATH_TO_POSYDON_DATA=./posydon/unit_tests/_data/
export MESA_DIR=./
python -m pytest posydon/unit_tests/ \
--cov=posydon.config \
--cov=posydon.utils \
--cov=posydon.grids \
--cov=posydon.popsyn.IMFs \
--cov=posydon.popsyn.norm_pop \
--cov=posydon.popsyn.distributions \
--cov=posydon.popsyn.star_formation_history \
--cov=posydon.CLI \
--cov-branch \
--cov-report term-missing \
--cov-fail-under=100
pytest # run and coverage parameters are defined in pyproject.toml
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ instance/
# Sphinx documentation
docs/_build/
docs/_tmp/
docs/_source/_build/
docs/_source/api_reference
docs/checkautodoc
*.h5
Expand Down
6 changes: 0 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
[submodule "grid_params/POSYDON-MESA-INLISTS"]
path = grid_params/POSYDON-MESA-INLISTS
url = https://github.com/POSYDON-code/POSYDON-MESA-INLISTS.git
[submodule "data/POSYDON_data"]
path = data/POSYDON_data
url = https://github.com/POSYDON-code/POSYDON_data.git
[submodule "posydon/tests/data/POSYDON-UNIT-TESTS"]
path = posydon/tests/data/POSYDON-UNIT-TESTS
url = https://github.com/POSYDON-code/POSYDON-UNIT-TESTS.git
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ repos:
- id: requirements-txt-fixer
- id: trailing-whitespace
- repo: https://github.com/pycqa/isort
rev: 8.0.1
rev: 9.0.0a3
hooks:
- id: isort
args:
Expand Down
30 changes: 30 additions & 0 deletions bin/posydon-popsyn
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,16 @@ if __name__ == '__main__':
'--account',
help='the account you would like to use',
default=None)
setup_parser.add_argument(
'--max_concurrent_jobs',
help='the maximum number of concurrent jobs to run in the job array',
type=int,
default=None)
setup_parser.add_argument(
'--exclude',
help='a comma-separated list of nodes to exclude when submitting the job',
type=str,
default=None)
setup_parser.set_defaults(func=setup_popsyn_function)

# Check the run subcommand
Expand Down Expand Up @@ -110,6 +120,16 @@ if __name__ == '__main__':
'--account',
help='the account you would like to use',
default=None)
check_parser.add_argument(
'--max_concurrent_jobs',
help='the maximum number of concurrent jobs to run in the job array',
type=int,
default=None)
check_parser.add_argument(
'--exclude',
help='a comma-separated list of nodes to exclude when submitting the job',
type=str,
default=None)
check_parser.set_defaults(func=check_popsyn_function)

# Rescue the run subcommand (DEPRECATED)
Expand Down Expand Up @@ -149,6 +169,16 @@ if __name__ == '__main__':
'--account',
help='the account you would like to use',
default=None)
rescue_parser.add_argument(
'--max_concurrent_jobs',
help='the maximum number of concurrent jobs to run in the job array',
type=int,
default=None)
rescue_parser.add_argument(
'--exclude',
help='a comma-separated list of nodes to exclude when submitting the job',
type=str,
default=None)
rescue_parser.set_defaults(func=rescue_popsyn_function)

args = parser.parse_args()
Expand Down
6 changes: 3 additions & 3 deletions conda/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
{% set name = "posydon" %}
{% set version = "2.2.8" %}

package:
name: "{{ name|lower }}"
version: "{{ version }}"
version: {{ GIT_DESCRIBE_TAG }}

source:
path: ..
Expand All @@ -17,7 +16,8 @@ requirements:
host:
- pip
- python==3.11
- setuptools>=38.2.5
- setuptools>=76.0.0
- setuptools-scm>=8.0

run:
- python==3.11
Expand Down
1 change: 0 additions & 1 deletion data/POSYDON_data
Submodule POSYDON_data deleted from e5d8d7
7 changes: 7 additions & 0 deletions dev-tools/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
workdirs/
output/
logs/
baselines/
test_*.h5
*.ini
*.txt
210 changes: 210 additions & 0 deletions dev-tools/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
Validation suite for POSYDON binary evolution. Evolves a fixed set of test binaries on a candidate branch and compares results against a stored baseline to catch regressions. A baseline can be formed from any branch (`main` by default) and is represented by a set of results from `binary_suite.py`, saved HDF5 files, all stored in `dev-tools/baselines/<branch-name>`.

## Quick Start

```bash
# 1. Generate a baseline from the main branch (once)
./generate_baseline.sh main

# 2. Validate a candidate branch against that baseline
./validate_binaries.sh feature/my-branch
```

Results are written to `outputs/<branch>/`. After validation, check:

- `outputs/<branch>/comparison_summary.txt` for a pass/fail overview across all metallicities
- `outputs/<branch>/comparison_<Z>Zsun.txt` for detailed per-metallicity diff reports
- `logs/<branch>/evolve_<Z>Zsun.log` for the full evolution output of each metallicity

By default, all eight POSYDON metallicities are run. To validate only a subset, pass a quoted space-separated list as the third argument:

```bash
./generate_baseline.sh main "" "1 0.45"
./validate_binaries.sh feature/my-branch main "1 0.45"
```

To re-run comparison with different tolerances without re-evolving:

```bash
./validate_binaries.sh feature/my-branch main "1 0.45" --skip-evolve --loose
```

## Scripts

### `validate_binaries.sh`

Top-level entry point. Evolves test binaries on a candidate branch, then compares results against an existing baseline. This script will look for baseline HDF5 files stored in `dev-tools/baseline/<branch-name>`, where `main` is the default `<branch-name>`.

```bash
./validate_binaries.sh <candidate_branch> [baseline_branch] [metallicities] [--loose] [--rtol VALUE] [--atol VALUE] [--skip-evolve]
```

By default, comparison is exact (rtol=0, atol=0). Use `--loose` for relaxed floating-point tolerances (rtol=1e-12, atol=1e-15), or set `--rtol`/`--atol` explicitly as per [np.allclose](https://numpy.org/devdocs/reference/generated/numpy.allclose.html). Use `--skip-evolve` to skip the evolution step and compare existing candidate outputs against the baseline.

### `generate_baseline.sh`

Generates baseline HDF5 files from a designated branch name and optionally a SHA to specify a commit.

```bash
./generate_baseline.sh <branch> [sha] [metallicities]
```

If you already have results from prior runs of `evolve_binaries.sh` saved as HDF5 files in `outputs/<branch>/`, you can copy these directly into the baselines directory with the `--promote` option, skipping re-evolution:

```bash
./generate_baseline.sh --promote <branch> [metallicities]
```

### `evolve_binaries.sh`

Clones a POSYDON branch, creates a conda environment, installs POSYDON, and runs the binary suite at all requested metallicities. Called by `validate_binaries.sh` and `generate_baseline.sh`; can also be run standalone. Records the resolved commit SHA and branch name in each HDF5 file's metadata for provenance tracking.

```bash
./evolve_binaries.sh <branch> [sha] [metallicities]
```

### `binaries_suite.py`

Defines and evolves the set of 44 test binaries at a given metallicity. Each binary targets a specific edge case or past bug fix (e.g., matching failures, oRLO2 looping, SN type errors, NaN spins). Results are saved to an HDF5 file with a `/metadata` table that records metallicity, binary counts, `PATH_TO_POSYDON_DATA`, and optionally branch name, commit SHA, and generation timestamp (via `--branch`/`--sha`).

```bash
python binaries_suite.py --output results.h5 --metallicity 1
python binaries_suite.py --output results.h5 --metallicity 1 --branch main --sha abc123f
```

### `compare_runs.py`

Compares two HDF5 files produced by `binaries_suite.py` and reports differences in three categories:

- **Structural**: missing or extra binaries, evolution step count changes, binaries that newly fail or newly pass, missing HDF5 tables.
- **Qualitative**: changes to categorical columns such as state, event, step name, SN type, interpolation class, and mass transfer history.
- **Quantitative**: changes to any numeric column. By default, comparison is exact (bitwise identical floats). Use `--loose` for slightly relaxed tolerances (rtol=1e-12, atol=1e-15), or set `--rtol`/`--atol` explicitly as per [np.allclose](https://numpy.org/devdocs/reference/generated/numpy.allclose.html).

The script also compares warning and error tables, reporting new, removed, or changed warnings per binary. The report header includes provenance metadata (branch, commit SHA, generation time, POSYDON data path) read from each file when available.

```bash
python compare_runs.py baseline.h5 candidate.h5 [--loose] [--rtol VALUE] [--atol VALUE] [--verbose]
```

### `binaries_params.ini`

Configuration file for `SimulationProperties`. Defines the POSYDON evolution steps, supernova prescriptions, common envelope parameters, and output column selections. Metallicity is overridden at runtime by `binaries_suite.py`.

## Running Scripts Manually

The shell scripts handle cloning, environment setup, orchestration, and execution. If you already have POSYDON installed in your current environment, you can execute the Python scripts directly.

### Evolving binaries

```bash
# Evolve all 44 test binaries at solar metallicity
python binaries_suite.py --output my_results.h5 --metallicity 1

# Evolve at a specific metallicity with verbose output
python binaries_suite.py --output my_results.h5 --metallicity 0.01 --verbose

# Use a custom ini file
python binaries_suite.py --output my_results.h5 --metallicity 1 --ini /path/to/custom.ini

# Record branch/SHA provenance in HDF5 metadata (done automatically by evolve_binaries.sh)
python binaries_suite.py --output my_results.h5 --metallicity 1 --branch main --sha abc123f
```

The output HDF5 contains three tables: `evolution` (per-step binary data), `errors` (binaries that failed), and `warnings` (warnings raised during evolution). The `/metadata` table records metallicity, binary counts, `PATH_TO_POSYDON_DATA`, and optionally branch, commit SHA, and generation timestamp.

### Comparing two result files

```bash
# Exact comparison
python compare_runs.py file_a.h5 file_b.h5

# Relaxed tolerances
python compare_runs.py file_a.h5 file_b.h5 --loose

# Custom tolerances with verbose diagnostics
python compare_runs.py file_a.h5 file_b.h5 --rtol 1e-8 --atol 1e-12 --verbose
```

The two files do not need to come from the shell pipeline; any pair of HDF5 files produced by `binaries_suite.py` can be compared.

## Directory Structure

```
dev-tools/
├── README.md
├── validate_binaries.sh # full validation pipeline
├── generate_baseline.sh # create or promote baselines
├── evolve_binaries.sh # clone, install, and run suite
├── binaries_suite.py # test binary definitions and evolution
├── binaries_params.ini # SimulationProperties configuration
├── compare_runs.py # diff two HDF5 result files
├── baselines/ # stored baseline HDF5 files (per branch)
├── outputs/ # candidate evolution results (per branch)
├── logs/ # per-metallicity evolution logs (per branch)
└── workdirs/ # cloned repos and conda environments (per branch)
```

## Interpreting Results

The comparison report groups differences into four categories. Here's how to read them:

**Structural** differences (missing/extra binaries, step count changes, newly failing/passing) almost always indicate a real change. A binary that newly fails or changes its number of evolution steps means the code is following a different evolutionary path. These warrant investigation regardless of tolerance settings.

**Qualitative** differences (state, event, step name, SN type) also represent real behavioral changes. Even a single qualitative diff means the binary is being classified differently, e.g. a different mass transfer history or a changed SN type. These are never tolerance-dependent.

**Quantitative** differences are more nuanced. With exact comparison (the default), any floating-point difference is reported. This is useful for detecting unintended changes, but expected after compiler/platform changes or numpy version bumps. If you see many quantitative diffs but zero structural/qualitative diffs, the evolution paths are the same and the differences are likely numerical noise — re-run with `--loose` or a custom `--rtol` to confirm. If quantitative diffs persist at `--rtol 1e-6` or larger, something meaningful has changed.

**Warning** differences are informational. New warnings may indicate a physics edge case being hit differently, or changes to warnings in the code, but are not failures on their own.

A healthy validation run after a non-physics code change should show zero structural and qualitative differences, and minimal quantitative changes. After an intentional physics change, expect significant diffs. If binaries unrelated to intentional physics changes show structural or qualitative diffs, that may indicate a problem with implementation.

## Tolerance Design

By default, comparison is exact (`rtol=0, atol=0`): any bitwise difference in a float is reported. The `--loose` flag sets `rtol=1e-12, atol=1e-15`, which is appropriate for filtering out platform-level floating-point noise while still catching meaningful changes.

For custom tolerances, `--rtol` and `--atol` follow the semantics of `np.allclose`: a value passes if `abs(baseline - candidate) <= atol + rtol * abs(baseline)`. In practice, `rtol` dominates for most columns (masses, periods, separations are all large numbers), while `atol` only matters near zero (e.g., eccentricity, certain hydrogen fractions).

Known limitation: when `baseline == 0` and `candidate != 0`, `rtol`-based comparison produces `0 + rtol * 0 = 0`, so any nonzero candidate value fails. This is correct behavior (a zero-to-nonzero change is meaningful), but be aware that the reverse (both values very small but nonzero) may pass even if the relative change is large, since `atol` provides a floor. For most POSYDON quantities this is not an issue, but it matters for quantities that are genuinely expected to be zero (e.g., eccentricity at ZAMS for circular binaries).

A single global tolerance works well for catching regressions but is a blunt instrument for columns spanning many orders of magnitude. Per-column or per-quantity scaling is a possible future improvement but is not currently implemented.

The `--loose` defaults (`rtol=1e-12, atol=1e-15`) were chosen just above float64 machine epsilon and may need to be adjusted if there are parts of the code that are non-deterministic. If parts of the POSYDON pipeline in the branches being tested introduce stochasticity (e.g. unseeded RNG), the irreducible noise floor may be higher. To calibrate, run the same branch against itself and check what tolerance is needed for a clean pass:

```bash
# Evolve the same branch twice under different output names
python binaries_suite.py --output /tmp/run_a.h5 --metallicity 1
python binaries_suite.py --output /tmp/run_b.h5 --metallicity 1

# Compare — any diffs here are the stochasticity floor
python compare_runs.py /tmp/run_a.h5 /tmp/run_b.h5

# Find the tolerance that absorbs the noise
python compare_runs.py /tmp/run_a.h5 /tmp/run_b.h5 --rtol 1e-10
```

The `--loose` defaults should sit just above whatever self-comparison noise you observe. If the self-comparison is clean at exact, the current defaults are fine.

**RNG reproducibility.** Several POSYDON evolution steps (Bondi-Hoyle accretion in `step_detached` and `MesaGridStep`, SN kicks in `step_SN`) use random number generation internally. Without a fixed seed, these produce nondeterministic results that appear as spurious `S1_lg_mdot` diffs in the validation suite. To ensure reproducibility, set the `entropy` parameter to a fixed integer in `binaries_params.ini`. This seeds the RNG passed to each step (see PR#826).

## Updating the Baseline

The baseline should be regenerated when the "expected correct" output changes. Typical triggers:

- **After a release or version tag.** Generate a baseline from the release tag so future development is compared against the release state: `./generate_baseline.sh v2.3`
- **After merging an intentional physics change.** If a PR deliberately changes evolution outcomes (e.g., a new SN prescription), validate the PR branch first to confirm only the expected binaries are affected, then regenerate the baseline from the updated main branch.
- **After updating POSYDON data grids.** Grid changes will alter interpolated values. Regenerate the baseline and record the new `PATH_TO_POSYDON_DATA` in `baseline_info.txt`.

Do not regenerate the baseline to silence unexpected diffs. If a validation run shows differences you don't understand, investigate them before updating the baseline.

The `--promote` flag on `generate_baseline.sh` is a convenience for skipping re-evolution when you've already run the suite and are satisfied with the outputs: `./generate_baseline.sh --promote main "1 0.45"`.

## Adding New Test Binaries

New binaries are added by appending entries to the `get_test_binaries()` function in `binaries_suite.py`. Each entry is a tuple of `(star1_kwargs, star2_kwargs, binary_kwargs, description)`.

When adding a binary:

- Choose initial conditions that reliably trigger the edge case or evolutionary pathway you want to test. Verify it does so at multiple metallicities if possible, since grid coverage varies.
- Use a descriptive string that references the PR or issue number if the binary guards a specific fix (e.g., `"PR574 - stepCE fix"`).
- After adding the binary, regenerate the baseline so it includes the new binary's expected output.
- The binary ID is assigned by list position. Appending to the end avoids changing IDs of existing binaries, which would invalidate old baselines against new code for no reason.
Loading
Loading