![]() |
SEVN
|
Website: https://sevncodes.gitlab.io/sevn/index.html
SEVN (Stellar EVolution for 𝑁-body) is a rapid binary population synthesis code. It gets as input the initial conditions of stars or binaries (masses, spin, semi-major axis, eccentricity) and evolve them. SEVN calculates stellar evolution by interpolating pre-computed sets of stellar tracks. Binary evolution is implemented by means of analytic and semi-analytic prescriptions. The main advantage of this strategy is that it makes the implementation more general and flexible: the stellar evolution models adopted in sevn can easily be changed or updated just by loading a new set of look-up tables. SEVN allows to choose the stellar tables at runtime, without modifying the internal structure of the code or even recompiling it.
SEVN is written entirely in C++ (without external dependencies) following the object-oriented programming paradigm. SEVN exploits the CPU-parallelisation through OpenMP. The repository contains also SEVNpy, a Python companion module can be used to easily access the SEVN backend in Python.
Additional information on the technical details of SEVN can be found in the presentation paper (Iorio et al., 2022, see also Spera et al., 2019) and in the user guide.
[30-05-24] Version 2.10.0 released
Main changes:
[16-04-24] Version 2.8.0 released
The main change with respect to the other minor versions is that we changed the Binary kick processes so that the SN kick (vkick in class Star) remains always with the same units (km/s). Before this versione they were changed to Rsun/yr after a SN explosion in a binary.
[24-03-24] Bugs fixed!
The current version contains fixes on minor bugs. The only one that deserve a mention is a bug on the estimate of the common envelope lambda with the fitting equation by Klencki+21, i.e. when the option star_lambda -4 is used. All the other options are not impacted by this bug.
Anyway, during the bug fixing, we found that when massive (>30 Msun) and metal-rich (Z/Zsun>0.4) stars contract toward the end of their life, the lambda estimate (with option star_lambda -4 and star_lambda -41) by enters in a regime of extrapolations with respect the domain studied in Klencki+21. As a consequence, the lambda becomes very small producing (likely) unphysical very large binding energies (>1E52 ergs). We are working on finding the best solutions (see Issue#4), meanwhile, we suggest to not use the options star_lambda -4 and star_lambda -41 for production runs.
[29-08-23] New development line released
The new SEVN development line zelaous_redgiant has been publicly released. The old development line humble_yellowdwarf is still available at this link.
The most import novelties are:
In order to install and use SEVN
SEVN uses OpenMP to parallelise the runs, if the Cmake compiler will not find a working OpenMP version (check the Cmake log), SEVN will run only in the serial mode.
We provide two conda environments that already fulfill the SEVN requirements. They are both located in the folder _resources/:
In order to use them:
conda create —-name <env_name> —-file conda_sevn_env.txt or conda create —-name <env_name> —-file conda_sevn_python_env_V2.txtconda activate <env_name>See the user guide (in resources) for additional information
Cmake is used to compile SEVN, there are two options, using directly Cmake or using a compile script
SEVN="<Insert absolute SEVNpath>" and replace the string with the absolute path to the SEVN folderchmod u+x compile.sh./compile.sh./compile.sh -j. Be Careful: this will speed up the compilation at the cost of a significant memory usage. If you machine has less than 4 GB of RAM or if you are running other memory consuming processes do not use this option.rm -r build; mkdir build cd build; cmake ..makemake -j. Be Careful: this will speed up the compilation at the cost of a significant memory usage. If you machine has less than 4 GB of RAM or if you are running other memory consuming processes do not use this option.The SEVN compilation produces two executable sevn.x to simulate the single stellar evolution of a list of star, and sevnB.x to simulate the binary evolution of a list of binaries.
The two executable can be run with a list of runtime parameters. All of them are optional except for the parameter -list containing the path of the input file storing the systems to evolve, e.g.
./sevnB.x -list ../../listBin.dat
The available runtime parameters are described in the user guide
Writing a long list of runtime parameters can be tedious. For this reason we provide two run script template that can be used to quickly set a SEVN run. The two scripts are located in the [run_scripts folder](run_scripts):
In order to use the scripts:
SEVN="<Insert absolute SEVNpath>" replacing the string with the absolute path to the SEVN folderLISTBIN="${SEVN}/run_scripts/listBin.dat" replacing the string "${SEVN}/run_scripts/listBin.dat" with the path to the initial condition filechmod u+x compile.sh./run.sh or ./run_sse.shThe SEVN user guide contains a general overview of SEVN, information on compilation and running, information on the runtime parameters and stellar tables, decription of the SEVN outputs and some hints and tips to analyse them.
A more technical documentation on the code and its components has been generated with Doxygen and can be found in the doc/doxyfiles folder.
If you have problem in running SEVN or you find some weird behaviour/bugs please open an issue on the Gitlab repository. Please use the Gitlab issue tracker also to ask for requiring additional features for the next SEVN versions.
For any other questions/doubts/contributions send an email to: giuliano.iorio.astro@gmail.com and/or sevnpeople@gmail.com
SEVN is a general-purpose population-synthesis code and our idea is to create a network of users/developers. So, any contributions is highly encouraged. If you think it could be useful to add new processes/features in SEVN or you need it for a scientific project, please open an issue on Gitlab or contact the main SEVN team (see Support section).
We are working to create a SEVN-guide for developers that will help to directly modify and extend the code. The ideal way to contribute to the code is to fork it in your gitlab account and then send a merge-request when your version is ready to be included in the main SEVN repository. Please, contact us (see Support section) for any doubts.
The original version of SEVN was developed by Mario Spera, Michela Mapelli and Alessandro Alberto Trani.
The current updated version is developed and maintained by Giuliano Iorio (main developer). The SEVN core team includes Guglielmo Costa, Gaston Escobar, Erika Korb, Michela Mapelli, Mario Spera, Cecilia Sgalletta.
The developers thank all the people in the DEMOBLACK group for all the valuable comments and suggestions during the code development.
MIT License
Copyright (c) 2022 Giuliano Iorio, Michela Mapelli, Mario Spera, Guglielmo Costa
See file LICENSE in the repository