Code Usage Questions
Welcome to the code usage FAQ for POSYDON. This section is designed to answer questions related to how to use various features and functionalities of POSYDON. If your question isn’t addressed here, consider reaching out to our support channels or checking our general FAQ.
Frequently Asked Questions
- How do I start a basic population synthesis simulation with POSYDON?
Start with the binary population synthesis guide to learn how to run POSYDON.
- I’m getting an error when using the
where
parameter in theselect
function If you’re trying to select based on values in an unsupported column, you’ll receive an error message like the one below. Only specific columns are supported for selection. These are limited to string columns, the indices, and the column names. Please perform the selection in-memory instead.
population.history.select('S1_mass > 10')
The above code will produce the following error:
ValueError: The passed where expression S1_mass > 10 contains an invalid variable reference. All of the variable references must be a reference to an axis (e.g. 'index' or 'columns'), or a data_column. The currently defined references are: index, columns, state, event, step_names, S1_state, S2_state
- I’m getting an error when using the
- How should I tune my memory usage for a population synthesis run?
A population run requires a bare minimum of 8GB of memory per CPU. The DR2 POSYDON grids need to be loaded in completely. At the moment, the binary grids are loaded in at startup, but single star models are loaded when needed. However, 8GB allows you to run a small population, but it restricts the number of binaries you can keep in memory and requires a
dump_rate < 1000
to keep the memory usage low, which slows down the simulation.As such, 9GB or 10GB per CPU is a better starting point. This allows you to keep more binaries in memory and increases the speed of the population synthesis run and work well with with a
dump_rate
of 5.000 binaries.In general, the
dump_rate
should be at least 500 for populations of 100,000 binaries or more. Setting a very lowdump_rate
for larger populations can potentially introduce I/O issues during the reading, writing, and merging of output files.
- What should the walltime and job array size be for my population synthesis run?
The
walltime
and job array size are dependent on the number of binaries you want to simulate and the memory usage of the simulation. The job array size should be set such that the number of binaries per job is at least 1000, since there’s a minimum overhead per job due to loading the grids.The
walltime
depends on the number of binaries per job, where each binary takes about 1-2 seconds to run. For example, 100,000 binaries split over 100 jobs (per metallicity) means that every job runs 1,000 binaries. This will take around 33 minutes per job. So awalltime
of00:45:00
is reasonable.The balance between
walltime
and the size of the job array is important. If thewalltime
is too long, it might be worth increasing the job array size to decrease the time per job and allow the population synthesis to finish faster. But if thewalltime
is too short, the job array size should be decreased, since each job has an initial overhead that is not dependent on the number of binaries in the job.Note
The processing time increases if you make the
dump_rate
too low due to many I/O operations.
- I am unable to open HDF5 files created by POSYDON. What should I do?
If you’re on a Mac, there might be an issue with the HDF5 installation. Make sure you have the
hdf5
andpytables
packages installed through conda in your environment withconda install hdf5 pytables
before running POSYDON! Although they are dependencies of POSYDON, sometimes they are not installed correctly on Mac.
- Can I run POSYDON on an HPC facility?
Absolutely! Refer to our HPC guide for detailed instructions on running POSYDON in an HPC environment.
- Help, I’m stuck! Where can I get support?
Please check if your question has been answered already on the the POSYDON Github Discussions. If it has not yet been answered, please make a new discussion with your question and a detailed description of your problem.
Are you unable to post on Github? Please check our email group or email us at posydon-users [at] googlegroups.com
- How can I stay updated with the latest features and updates?
You can regularly visit our official website for news and updates.
- I’ve come across a FAILED binary. What does this mean?
A
FAILED
binary has encountered an error during the simulation because POSYDON was unable to evolve it. This can be due to a variety of reasons:The evolutionary state of the binary is not represented in the currently supported stellar evolution grids. For example, we do not have a grid for Roche lobe overflow between two helium stars.
The binary has masses outside the grid range. For example, the HMS-HMS grid does not contain binaries with a secondary mass below 0.5.
The binary could not be matched to a single star or a binary due to a too large matching error, preventing further evolution.
- What approximations does POSYDON make?
This is a complex question and the best answer is provided in the POSYDON papers: Fragos et al. (2023) and Andrews et al. (submitted).
Additional Resources
Examples and Tutorials: Learn by doing!
API Reference: Dive deep into the functionality provided by POSYDON with our API Reference.
Github Discussions: Engage with the community, ask questions, and share your experiences on our GitHub Discussions page.
Still Have Questions?
If your question remains unanswered, we’re here to help! Reach out to our community through the support channels or consider checking our general installation FAQ for non-usage related questions.
Your feedback helps us improve the code and documentation. If you think a common question should be added here, don’t hesitate to suggest it!