diff --git a/HOW_TO_CONTRIBUTE b/HOW_TO_CONTRIBUTE new file mode 100644 index 0000000000000000000000000000000000000000..8c8915581d064ae3c5fda9b2003e48a645d7286f --- /dev/null +++ b/HOW_TO_CONTRIBUTE @@ -0,0 +1 @@ +You can contribute by contacting me (david) or rob and asking what needs to be done diff --git a/binarycpython/utils/grid_options_descriptions.py b/binarycpython/utils/grid_options_descriptions.py index 732a17e949968eb96f09ac2d5ca787d8c223465e..eb4bb60a7d30a33826015bd6f41e2306348d8ceb 100644 --- a/binarycpython/utils/grid_options_descriptions.py +++ b/binarycpython/utils/grid_options_descriptions.py @@ -58,8 +58,8 @@ def grid_options_description_checker(print_info=True): return len(undescribed_keys) -grid_options_help('amt_cores') +# grid_options_help('amt_cores') -grid_options_description_checker() +# grid_options_description_checker() diff --git a/docs/notes.org b/docs/notes.org index 4e0f65d2965be47f238f1699d48309fd39ffdf94..db7c62bf0f5c97d0264fa218a76effee576a39e7 100644 --- a/docs/notes.org +++ b/docs/notes.org @@ -1,7 +1,25 @@ * Notes: +** Building +builing the HTML requires the following python packages: +- sphinx +- clang +- hawkmoth +- m2r +- m2r2 + +We need to run the following couple of commands before the eventual html should be made: +- script to generate all the binary_c commands and explanations +- script to generate all the binarycpython grid commands and explanations + + + +** info +https://stackoverflow.com/questions/20059953/linking-to-source-code-file-in-sphinx https://stackoverflow.com/questions/39534718/how-to-create-a-pdf-out-of-sphinx-documentation-tool + * Todo: ** TODO Write script to automatically rebuild the whole bunch -** TODO: use typing from mypy and build that into the docs +** TODO use typing from mypy and build that into the docs https://github.com/seqan/seqan3-doc/blob/user/source/make_source.py https://www.pythonforthelab.com/blog/documenting-with-sphinx-and-readthedocs/ +** TODO Hijack the make command to add some extra documents diff --git a/docs/source/_static/coverage.svg b/docs/source/_static/coverage.svg new file mode 100644 index 0000000000000000000000000000000000000000..e3a194825898162c01c3ad48af8208fd626e36a5 --- /dev/null +++ b/docs/source/_static/coverage.svg @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" width="99" height="20"> + <linearGradient id="b" x2="0" y2="100%"> + <stop offset="0" stop-color="#bbb" stop-opacity=".1"/> + <stop offset="1" stop-opacity=".1"/> + </linearGradient> + <mask id="a"> + <rect width="99" height="20" rx="3" fill="#fff"/> + </mask> + <g mask="url(#a)"> + <path fill="#555" d="M0 0h63v20H0z"/> + <path fill="#e05d44" d="M63 0h36v20H63z"/> + <path fill="url(#b)" d="M0 0h99v20H0z"/> + </g> + <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> + <text x="31.5" y="15" fill="#010101" fill-opacity=".3">coverage</text> + <text x="31.5" y="14">coverage</text> + <text x="80" y="15" fill="#010101" fill-opacity=".3">5%</text> + <text x="80" y="14">5%</text> + </g> +</svg> diff --git a/docs/source/binary_c_parameters.rst b/docs/source/binary_c_parameters.rst new file mode 100644 index 0000000000000000000000000000000000000000..b24fad112973e222734f17c6c792c598d3bcb77d --- /dev/null +++ b/docs/source/binary_c_parameters.rst @@ -0,0 +1,2333 @@ +Binary\_c parameters +==================== + + +Section: stars +-------------- + +| **Parameter**: metallicity +| **Description**: This sets the metallicity of the stars, i.e. the amount (by mass) of matter which is not hydrogen or helium. If you are using the BSE algorithm, this must be 1e-4 <= metallicity <= 0.03. See also nucsyn_metallicity and effective_metallicity. +| **Parameter input type**: Float +| **Default value**: 0.02 + +| **Parameter**: effective_metallicity +| **Description**: This sets effective metallicity of stars as used in routines like the Schneider wind loss. If not set, or set to DEFAULT_TO_METALLICITY (==-1, the default), this is just the same as metallicity. The main difference between effective_metallicity and metallicity is the range of validity: 0 <= effective_metallicity <= 1, while metallicity's range of validity is limited by the stellar evolution algorithm (so, for BSE, is 1e-4 <= metallicity <= 0.03). +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['DEFAULT_TO_METALLICITY = -1'] + +| **Parameter**: M_1 +| **Description**: The initial mass of star one (in solar units, internally this is star index 0). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: M_2 +| **Description**: The initial mass of star two (in solar units, internally this is star index 1). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: M_3 +| **Description**: The initial mass of star three (in solar units, internally this is star index 2). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: M_4 +| **Description**: The initial mass of star four (in solar units, internally this is star index 3). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: vrot1 +| **Description**: Equatorial rotational speed of star 1 (km/s). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). Requires MANUAL_VROT. See also vrot2. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['VROT_BSE = 0', 'VROT_NON_ROTATING = 1e-10', 'VROT_BREAKUP = -1', 'VROT_SYNC = -2', 'binary_c help for variable : vrot1 <Float>', 'Equatorial rotational speed of star 1 (km/s). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). Requires MANUAL_VROT. See also vrot2.', 'Default : 0'] + +| **Parameter**: vrot2 +| **Description**: Equatorial rotational speed of star 2 (km/s). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). Requires MANUAL_VROT. See also vrot1. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['VROT_BSE = 0', 'VROT_NON_ROTATING = 1e-10', 'VROT_BREAKUP = -1', 'VROT_SYNC = -2', 'binary_c help for variable : vrot2 <Float>', 'Equatorial rotational speed of star 2 (km/s). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). Requires MANUAL_VROT. See also vrot1.', 'Default : 0'] + +| **Parameter**: vrot3 +| **Description**: The initial equatorial rotational velocity of star three (in km/s, internally this is star index 2). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). Requires MANUAL_VROT. See also vrot1,2,4. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: vrot4 +| **Description**: The initial equatorial rotational velocity of star four (in km/s, internally this is star index 3). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). Requires MANUAL_VROT. See also vrot1,2,3. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: inclination1 +| **Description**: The initial inclination of star one (in degrees). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: inclination2 +| **Description**: The initial inclination of star two (in degrees). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: inclination3 +| **Description**: The initial inclination of star three (in degrees). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: inclination4 +| **Description**: The initial inclination of star four (in degrees). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: B_1 +| **Description**: The initial magnetic field of star one (in Gauss, internally this is star index 0). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: B_2 +| **Description**: The initial magnetic field of star two (in Gauss, internally this is star index 1). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: B_3 +| **Description**: The initial magnetic field of star three (in Gauss, internally this is star index 2). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: B_4 +| **Description**: The initial magnetic field of star four (in Gauss, internally this is star index 3). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: B_inclination1 +| **Description**: The initial inclination of the magnetic field of star one (in degrees). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: B_inclination2 +| **Description**: The initial inclination of the magnetic field of star two (in degrees). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: B_inclination3 +| **Description**: The initial inclination of the magnetic field of star three (in degrees). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: B_inclination4 +| **Description**: The initial inclination of the magnetic field of star four (in degrees). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: stellar_type_1 +| **Description**: Set the stellar type of star 1 (internal index 0), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['LOW_MASS_MAIN_SEQUENCE = 0', 'LOW_MASS_MS = 0', 'MAIN_SEQUENCE = 1', 'MS = 1', 'HG = 2', 'HERTZSPRUNG_GAP = 2', 'GIANT_BRANCH = 3', 'FIRST_GIANT_BRANCH = 3', 'CHeB = 4', 'CORE_HELIUM_BURNING = 4', 'EAGB = 5', 'EARLY_ASYMPTOTIC_GIANT_BRANCH = 5', 'TPAGB = 6', 'THERMALLY_PULSING_ASYMPTOTIC_GIANT_BRANCH = 6', 'HeMS = 7', 'NAKED_MAIN_SEQUENCE_HELIUM_STAR = 7', 'HeHG = 8', 'NAKED_HELIUM_STAR_HERTZSPRUNG_GAP = 8', 'HeGB = 9', 'NAKED_HELIUM_STAR_GIANT_BRANCH = 9', 'HeWD = 10', 'HELIUM_WHITE_DWARF = 10', 'COWD = 11', 'CARBON_OXYGEN_WHITE_DWARF = 11', 'ONeWD = 12', 'OXYGEN_NEON_WHITE_DWARF = 12', 'NS = 13', 'NEUTRON_STAR = 13', 'BH = 14', 'BLACK_HOLE = 14', 'MASSLESS_REMNANT = 15'] + +| **Parameter**: stellar_type_2 +| **Description**: Set the stellar type of star 2 (internal index 1), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['LOW_MASS_MAIN_SEQUENCE = 0', 'LOW_MASS_MS = 0', 'MAIN_SEQUENCE = 1', 'MS = 1', 'HG = 2', 'HERTZSPRUNG_GAP = 2', 'GIANT_BRANCH = 3', 'FIRST_GIANT_BRANCH = 3', 'CHeB = 4', 'CORE_HELIUM_BURNING = 4', 'EAGB = 5', 'EARLY_ASYMPTOTIC_GIANT_BRANCH = 5', 'TPAGB = 6', 'THERMALLY_PULSING_ASYMPTOTIC_GIANT_BRANCH = 6', 'HeMS = 7', 'NAKED_MAIN_SEQUENCE_HELIUM_STAR = 7', 'HeHG = 8', 'NAKED_HELIUM_STAR_HERTZSPRUNG_GAP = 8', 'HeGB = 9', 'NAKED_HELIUM_STAR_GIANT_BRANCH = 9', 'HeWD = 10', 'HELIUM_WHITE_DWARF = 10', 'COWD = 11', 'CARBON_OXYGEN_WHITE_DWARF = 11', 'ONeWD = 12', 'OXYGEN_NEON_WHITE_DWARF = 12', 'NS = 13', 'NEUTRON_STAR = 13', 'BH = 14', 'BLACK_HOLE = 14', 'MASSLESS_REMNANT = 15'] + +| **Parameter**: stellar_type_3 +| **Description**: Set the stellar type of star 3 (internal index 2), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. +| **Parameter input type**: Integer +| **Default value**: 0 + +| **Parameter**: stellar_type_4 +| **Description**: Set the stellar type of star 4 (internal index 3), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. +| **Parameter input type**: Integer +| **Default value**: 0 + +| **Parameter**: probability +| **Description**: The probability is a weighting applied to the star based on, say, the initial mass function. When running a grid of stars to simulate *all* stars, the summed probability of all the stars should be 1.0. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: phasevol +| **Description**: The system's phase volume, used by binary_grid. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: stellar_structure_algorithm +| **Description**: Set the stellar structure algorithm. 0=modified BSE (default), 1=none, 2=external function (must be defined by the calling code), 3=binary_c (not yet implemented). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['STELLAR_STRUCTURE_ALGORITHM_MODIFIED_BSE = 0', 'STELLAR_STRUCTURE_ALGORITHM_NONE = 1', 'STELLAR_STRUCTURE_ALGORITHM_EXTERNAL_FUNCTION = 2', 'STELLAR_STRUCTURE_ALGORITHM_MINT = 3'] + +| **Parameter**: solver +| **Description**: The type of solver. Default is the Forward-Euler (0), but could be RK2 (1), RK4 (2) or a predictor-corretor (3). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['SOLVER_FORWARD_EULER = 0', 'SOLVER_RK2 = 1', 'SOLVER_RK4 = 2', 'SOLVER_PREDICTOR_CORRECTOR = 3'] + +| **Parameter**: max_evolution_time +| **Description**: Set the maximum age for the stars (Myr). +| **Parameter input type**: Float +| **Default value**: 15000 + +| **Parameter**: max_model_number +| **Description**: Set the maximum number of models, ignored if 0 (default is 0). +| **Parameter input type**: Integer +| **Default value**: 0 + +| **Parameter**: monte_carlo_kicks +| **Description**: Turn on Monte-Carlo SN kicks. On (True) by default, and indeed other algorithms are probably broken. +| **Parameter input type**: True|False +| **Default value**: True + +| **Parameter**: timestep_logging +| **Description**: Turn on timestep logging (default is False). +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: evolution_splitting +| **Description**: If True, turn on splitting of an evolutionary run if splitpoint (e.g. supernova) occurs. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: disable_events +| **Description**: Whether to disable the new events code (defaults to False, so we use events by default) +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: evolution_splitting_sn_n +| **Description**: Number of runs to split into when a SN occurs. +| **Parameter input type**: Integer +| **Default value**: 10 + +| **Parameter**: evolution_splitting_maxdepth +| **Description**: Max number of splits in an evolutionary run. +| **Parameter input type**: Integer +| **Default value**: 2 + +| **Parameter**: equation_of_state_algorithm +| **Description**: Set the equation of state algorithm. 0 = Paczynski. +| **Parameter input type**: Integer +| **Default value**: NULL +| **Macros**: ['EQUATION_OF_STATE_PACZYNSKI = 0'] + +| **Parameter**: opacity_algorithm +| **Description**: Set the opacity algorithm. 0 = Paczynski, 1 = Ferguson/Opal. +| **Parameter input type**: Integer +| **Default value**: NULL +| **Macros**: ['OPACITY_ALGORITHM_PACZYNSKI = 0', 'OPACITY_ALGORITHM_FERGUSON_OPAL = 1', 'OPACITY_ALGORITHM_STARS = 2'] + +| **Parameter**: wind_mass_loss +| **Description**: Defines the algorithm used for stellar winds. 0 = none, 1 = Hurley et al. (2002), 2 = Schneider (2018). +| **Parameter input type**: Unsigned integer +| **Default value**: 3 +| **Macros**: ['WIND_ALGORITHM_NONE = 0', 'WIND_ALGORITHM_HURLEY2002 = 1', 'WIND_ALGORITHM_SCHNEIDER2018 = 2', 'WIND_ALGORITHM_BINARY_C_2020 = 3'] +| **Extra**: 0 + +| **Parameter**: gbwind +| **Description**: Wind prescription for first red giant branch stars. 0=Reimers (Hurley et al 2000/2002; choose gb_reimers_eta=0.5 for their mass loss rate), 1=Schroeder+Cuntz 2005 (set gb_reimers_eta=1.0 for their mass loss rate). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['GB_WIND_REIMERS = 0', 'GB_WIND_SCHROEDER_CUNTZ_2005 = 1', 'GB_WIND_GOLDMAN_ETAL_2017 = 2', 'GB_WIND_BEASOR_ETAL_2020 = 3'] + +| **Parameter**: mattsson_Orich_tpagbwind +| **Description**: Experimental: turns on Mattsson's TPAGB wind when the star is oxygen rich. Requires MATTSSON_MASS_LOSS. +| **Parameter input type**: Integer +| **Default value**: NULL + +| **Parameter**: magnetic_braking_factor +| **Description**: Multiplier for the magnetic braking angular momentum loss rate. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: magnetic_braking_gamma +| **Description**: gamma factor in Rappaport style magnetic braking expression. +| **Parameter input type**: Float +| **Default value**: 3 + +| **Parameter**: magnetic_braking_algorithm +| **Description**: Algorithm for the magnetic braking angular momentum loss rate. 0 = Hurley et al. 2002, 1 = Andronov, Pinnsonneault and Sills 2003, 2 = Barnes and Kim 2010 +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['MAGNETIC_BRAKING_ALGORITHM_HURLEY_2002 = 0', 'MAGNETIC_BRAKING_ALGORITHM_ANDRONOV_2003 = 1', 'MAGNETIC_BRAKING_ALGORITHM_BARNES_2010 = 2', 'MAGNETIC_BRAKING_ALGORITHM_RAPPAPORT_1983 = 3'] + +| **Parameter**: gb_reimers_eta +| **Description**: First red giant branch wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) +| **Parameter input type**: Float +| **Default value**: 0.4 + +| **Parameter**: gbwindfac +| **Description**: Multiplier for the giant branch wind mass loss rate +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: tpagbwindfac +| **Description**: Multiplier for the TPAGB wind mass loss rate +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: eagbwindfac +| **Description**: Multiplier for the EAGB wind mass loss rate +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: nieuwenhuijzen_windfac +| **Description**: Multiplier for the Nieuwenhuijzen & de Jager wind mass loss rate +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: tpagbwind +| **Description**: Wind prescription during the TPAGB. 0=Karakas 2002 (a modified Vassiliadis and Wood 1993), 1=Hurley et al 2000/2002 (Vassiliadis and Wood 1993), 2=Reimers, 3=Bloecker, 4=Van Loon, 5=Rob's C-wind (broken?), 6,7=Vassiliadis and Wood 1993 (Karakas,Hurley variants respectively) when C/O>1, 8=Mattsson, 9 = Goldman et al. (2017), 10 = Beasor et al. (2020). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['TPAGB_WIND_BLOECKER = 3', 'TPAGB_WIND_VW93_KARAKAS = 0', 'TPAGB_WIND_VW93_ORIG = 1', 'TPAGB_WIND_REIMERS = 2', 'TPAGB_WIND_VAN_LOON = 4', 'TPAGB_WIND_ROB_CWIND = 5', 'TPAGB_WIND_VW93_KARAKAS_CARBON_STARS = 6', 'TPAGB_WIND_VW93_ORIG_CARBON_STARS = 7', 'TPAGB_WIND_MATTSSON = 8', 'TPAGB_WIND_GOLDMAN_ETAL_2017 = 9', 'TPAGB_WIND_BEASOR_ETAL_2020 = 10'] + +| **Parameter**: eagbwind +| **Description**: Wind prescription during the EAGB. 0=BSE (Hurley+2002, based on VW93), 1 = Goldman et al. (2017), 2 = Beasor et al. (2020). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['EAGB_WIND_BSE = 0', 'EAGB_WIND_GOLDMAN_ETAL_2017 = 1', 'EAGB_WIND_BEASOR_ETAL_2020 = 2'] + +| **Parameter**: wind_gas_to_dust_ratio +| **Description**: Gas to dust ratio used in wind calculations (e.g. Goldman et al. 2017). Typically 200 (Milky Way)-500 (Magellanic Clouds). Default is 200, approximately as in MW stars. +| **Parameter input type**: Float +| **Default value**: 200 + +| **Parameter**: vwind_multiplier +| **Description**: Multiplier for the wind velocity as a function of the star's escape speed. In BSE (Hurley et al 2000/2002) this is 1/8=0.125. Does NOT apply on the AGB, when the Vassiliadis and Wood wind velocity is used instead. +| **Parameter input type**: Float +| **Default value**: 0.125 + +| **Parameter**: superwind_mira_switchon +| **Description**: In the Vassiliadis and Wood (1993) AGB wind prescription, the superwind is turned on at a given Mira period, usually 500 days. You can vary when this switch-on happens with this parameter. +| **Parameter input type**: Float +| **Default value**: 500 + +| **Parameter**: vw93_mira_shift +| **Description**: In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate depends on the Mira period plus this offset. Requires VW93_MIRA_SHIFT. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: vw93_multiplier +| **Description**: In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate is multiplied by this factor. Requires VW93_MULTIPLIER. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: tpagb_reimers_eta +| **Description**: TPAGB Reimers wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) Note that Reimers is not the default TPAGB wind prescription. See also tpagbwind. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: mass_accretion_rate1 +| **Description**: Constant mass accretion rate on star 1. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: mass_accretion_rate2 +| **Description**: Constant mass accretion rate on star 2. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: angular_momentum_accretion_rate1 +| **Description**: Constant angular momentum accretion rate on star 1. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: angular_momentum_accretion_rate2 +| **Description**: Constant angular momentum accretion rate on star 2. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: angular_momentum_accretion_rate_orbit +| **Description**: Constant angular momentum accretion rate on the orbit. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: accretion_start_time +| **Description**: Time at which artificial accretion stars. Ignored if <0 (default is -1). +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['ARTIFICIAL_ACCRETION_IGNORE = -1'] + +| **Parameter**: accretion_end_time +| **Description**: Time at which artificial accretion ends. Ignored if <0 (default is -1). +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['ARTIFICIAL_ACCRETION_IGNORE = -1'] + +| **Parameter**: wr_wind +| **Description**: Massive-star (WR) wind prescription. 0 = Hurley et al 2000/2002, 1=Maeder and Meynet, 2=Nugis and Lamers, 3=John Eldridge's version of Vink's early-2000s wind (See Lynnette Dray's thesis, or John Eldridge's thesis) +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['WR_WIND_BSE = 0', 'WR_WIND_MAEDER_MEYNET = 1', 'WR_WIND_NUGIS_LAMERS = 2', 'WR_WIND_ELDRIDGE = 3'] + +| **Parameter**: wr_wind_fac +| **Description**: Massive-star (WR) wind multiplication factor. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: wrwindfac +| **Description**: Massive-star (WR) wind multiplication factor. Synonymous with wr_wind_fac (which you should use instead). +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: BH_prescription +| **Description**: Black hole mass prescription: relates the mass of a newly formed black hole to its progenitor's (CO) core mass. 0=Hurley et al 2000/2002, 1=Belczynski (early 2000s). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['BH_HURLEY2002 = 0', 'BH_BELCZYNSKI = 1', 'BH_SPERA2015 = 2', 'BH_FRYER12_DELAYED = 3', 'BH_FRYER12_RAPID = 4'] + +| **Parameter**: sn_kick_distribution_II +| **Description**: Set the distribution of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_distribution_ECAP +| **Description**: Set the distribution of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_distribution_NS_NS +| **Description**: Set the distribution of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_distribution_IBC +| **Description**: Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_distribution_GRB_COLLAPSAR +| **Description**: Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_distribution_TZ +| **Description**: Set the distribution of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_distribution_AIC_BH +| **Description**: Set the distribution of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_distribution_BH_BH +| **Description**: Set the distribution of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_distribution_BH_NS +| **Description**: Set the distribution of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_distribution_IA_Hybrid_HeCOWD +| **Description**: Set the distribution of speeds applied to any survivor of a hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_distribution_IA_Hybrid_HeCOWD_subluminous +| **Description**: Set the distribution of speeds applied to any survivor of a subluminous hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2'] + +| **Parameter**: sn_kick_dispersion_II +| **Description**: Set the dispersion of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 190 + +| **Parameter**: sn_kick_dispersion_ECAP +| **Description**: Set the dispersion of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: sn_kick_dispersion_NS_NS +| **Description**: Set the dispersion of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: sn_kick_dispersion_IBC +| **Description**: Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 190 + +| **Parameter**: sn_kick_dispersion_GRB_COLLAPSAR +| **Description**: Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 190 + +| **Parameter**: sn_kick_dispersion_TZ +| **Description**: Set the dispersion of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: sn_kick_dispersion_AIC_BH +| **Description**: Set the dispersion of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: sn_kick_dispersion_BH_BH +| **Description**: Set the dispersion of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: sn_kick_dispersion_BH_NS +| **Description**: Set the dispersion of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: sn_kick_dispersion_IA_Hybrid_HeCOWD +| **Description**: Set the dispersion of speeds applied to the survivor of a SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: sn_kick_dispersion_IA_Hybrid_HeCOWD_subluminous +| **Description**: Set the dispersion of speeds applied to the survivor of a subluminous SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: sn_kick_companion_IA_He +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia He supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_IA_ELD +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia ELD (sub-Mch) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_IA_CHAND +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_AIC +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an accretion induced collapse (supernova) occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_ECAP +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an electron capture supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_IA_He_Coal +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia helium merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_IA_CHAND_Coal +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_NS_NS +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron-star neutron-star merger. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_GRB_COLLAPSAR +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a GRB Collapsar (rapidly rotating SN Ibc) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_HeStarIa +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a He-star Ia supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_IBC +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type Ib/c supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_II +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type II supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_IIa +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type IIa supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_WDKICK +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a WD is kicked. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_TZ +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Thorne-Zytkow object is formed. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_AIC_BH +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron star collapses to a black hole. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_BH_BH +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when two black holes merge. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_BH_NS +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a black hole merges with a neutron star. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_IA_Hybrid_HeCOWD +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: sn_kick_companion_IA_Hybrid_HeCOWD_subluminous +| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a subluminous hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2', 'SN_IMPULSE_WHEELER1975 = 2', 'SN_IMPULSE_WHEELER1975 = 2'] + +| **Parameter**: wd_sigma +| **Description**: Set the speed at which white dwarfs are kicked when they form, in km/s. Default is zero (i.e. no kick). Requires WD_KICKS. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: wd_kick_direction +| **Description**: Set the direction of white dwarf kicks. 0 = random, 1 = up, 2 = forward, 3 = backward, 4 = inward, 5 = outward. Requires WD_KICKS. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['KICK_RANDOM = 0', 'KICK_FORWARD = 2', 'KICK_BACKWARD = 3', 'KICK_STRAIGHT_UP = 1', 'KICK_INWARD = 4', 'KICK_OUTWARD = 5'] + +| **Parameter**: wd_kick_when +| **Description**: Decide when to kick a white dwarf. 0=at birth, 1=at first RLOF, 2=at given pulse number (see wd_kick_pulse_number), 3 at every pulse Requires WD_KICKS. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['WD_KICK_END_AGB = 0', 'WD_KICK_FIRST_RLOF = 1', 'WD_KICK_AT_GIVEN_PULSE = 2', 'WD_KICK_AT_EVERY_PULSE = 3'] + +| **Parameter**: wd_kick_pulse_number +| **Description**: Apply a kick to a star at a desired pulse number on the TPAGB (i.e. pre-WD). Requires WD_KICKS. +| **Parameter input type**: Integer +| **Default value**: 0 + +| **Parameter**: minimum_helium_ignition_core_mass +| **Description**: Minimum helium core mass required to ignite helium in the case that the hydrogen envelope is stripped on the giant branch, e.g. to make an sdB or sdO star. Typically 0.4, if 0.0 then the BSE algorithm (based on the total mass) is used. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: minimum_CO_core_mass_for_carbon_ignition +| **Description**: Minimum CO core mass for carbon ignition, assuming Mc,bagb>1.6Msun. Typically around 1.08Msun (Pols+1998). +| **Parameter input type**: Float +| **Default value**: 1.08 + +| **Parameter**: minimum_CO_core_mass_for_neon_ignition +| **Description**: Minimum CO core mass for neon ignition. Typically around 1.42Msun. Stars that have cores that ignite carbon, but not neon explode in electon-capture supernovae. +| **Parameter input type**: Float +| **Default value**: 1.42 + +| **Parameter**: minimum_mcbagb_for_nondegenerate_carbon_ignition +| **Description**: Minimum Mc,bagb (core mass at the base of the AGB) for non-degenerate carbon ignition. Typically around 2.25Msun (Pols+1998). +| **Parameter input type**: Float +| **Default value**: 2.25 + +| **Parameter**: maximum_mcbagb_for_degenerate_carbon_ignition +| **Description**: Maximum Mc,bagb (core mass at the base of the AGB) for degenerate carbon ignition. Typically around 1.6Msun (Pols+1998). +| **Parameter input type**: Float +| **Default value**: 1.6 + +| **Parameter**: max_neutron_star_mass +| **Description**: Maximum mass of a neutron star before it collapses to a black hole. Typically around 2Msun. +| **Parameter input type**: Float +| **Default value**: 2.2 + +| **Parameter**: chandrasekhar_mass +| **Description**: The Chandrasekhar mass, usually 1.44Msun +| **Parameter input type**: Float +| **Default value**: 1.38 + +| **Parameter**: delta_mcmin +| **Description**: A parameter to reduce the minimum core mass for third dredge up to occur on the TPAGB. As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: lambda_min +| **Description**: A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. See also lambda_multiplier. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: lambda_multiplier +| **Description**: A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: minimum_envelope_mass_for_third_dredgeup +| **Description**: The minimum envelope mass for third dredge up on the TPAGB. Early, solar metallicity models by Straniero et al suggested 0.5Msun is typical. However, circumstantial evidence (Izzard et al 2009) as well as newer models by Stancliffe and Karakas suggest that at low metallicity a value nearer zero is more appropriate. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: mass_of_pmz +| **Description**: The mass in the partial mixing zone of a TPAGB star, using the Karakas 2012 tables. Ask Carlo Abate for more details, or see the series of papers Abate et al 2012, 2013, 2014. Requires NUCSYN and USE_TABULAR_INTERSHELL_ABUNDANCES_KARAKAS_2012. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: c13_eff +| **Description**: The "efficiency" of partial mixing in a TPAGB star intershell region, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: mc13_pocket_multiplier +| **Description**: Multiplies the mass in the partial mixing zone of a TPAGB star, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: E2_prescription +| **Description**: Choose how to calculate the E2 structural parameter (used in tidal timescale calculations). 0=Hurley 1=Izzard (see Siess et al 2013) +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['E2_HURLEY_2002 = 0', 'E2_IZZARD = 1'] + +| **Parameter**: dtfac +| **Description**: A parameter to decrease the timestep ONLY during the TPAGB phase. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: hbbtfac +| **Description**: A parameter to modulate the temperature at the base of the hot-bottom burning zone in TPAGB stars. (Works only if NUCSYN is defined) +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: wind_multiplier_%d +| **Description**: Wind multiplier for the stellar type specified by %d. By default these are all 1.0. +| **Parameter input type**: Float(scanf) +| **Default value**: NULL + +| **Parameter**: pre_main_sequence +| **Description**: Set to True to turn on pre-main sequence evolution. Currently this is not a special stellar type, rather the first (small) fraction of the main sequence has increased radii to match the Railton et al 2014 fits to Tout's pre-main sequence stars. Requires PRE_MAIN_SEQUENCE. See also pre_main_sequence_fit_lobes. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: pre_main_sequence_fit_lobes +| **Description**: Set to True force a pre-main sequence star into its Roche lobe. This is done by artificially aging it. Requires PRE_MAIN_SEQUENCE +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: small_envelope_method +| **Description**: Choose the method used to determine the stellar radius when the envelope mass is very thin. 0 = Hurley et al. (2002), 1 = Miller Bertolami et al. (2016+) for GB and AGB stars only. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['SMALL_ENVELOPE_METHOD_BSE = 0', 'SMALL_ENVELOPE_METHOD_MILLER_BERTOLAMI = 1'] + +| **Parameter**: timestep_modulator +| **Description**: Multiplier applied to the global timestep. Requires TIMESTEP_MODULATION. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: timestep_multiplier%d +| **Description**: Multiplier applied to timestep limit <n>. +| **Parameter input type**: Float(scanf) +| **Default value**: NULL + +| **Parameter**: maximum_timestep +| **Description**: The maximum timestep (MYr). +| **Parameter input type**: Float +| **Default value**: 1e+20 + +| **Parameter**: zoomfac_multiplier_decrease +| **Description**: When a timestep is rejected, decrease the timestep by this factor (0.5). +| **Parameter input type**: Float +| **Default value**: 0.5 + +| **Parameter**: zoomfac_multiplier_increase +| **Description**: When a timestep is rejected, zooms, then succeeds, increase the timestep by this factor (1.2). +| **Parameter input type**: Float +| **Default value**: 1.2 + +| **Parameter**: maximum_timestep_factor +| **Description**: The maximum factor between two subsequent timesteps (1.2). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: maximum_nuclear_burning_timestep +| **Description**: The maximum timestep (MYr) in any nuclear burning phase. +| **Parameter input type**: Float +| **Default value**: 1e+20 + +| **Parameter**: nova_retention_method +| **Description**: Algorithm used to calculate the amount of mass retained during a nova explosion. 0=use nova_retention_fraction. (other methods pending) +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['NOVA_RETENTION_ALGORITHM_CONSTANT = 0', 'NOVA_RETENTION_ALGORITHM_CLAEYS2014 = 1', 'NOVA_RETENTION_ALGORITHM_HILLMAN2015 = 2'] + +| **Parameter**: gaia_Teff_binwidth +| **Description**: log10(Effective temperature) bin width used to make Gaia-like HRDs +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: gaia_L_binwidth +| **Description**: log10(luminosity) bin width used to make Gaia-like HRDs +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: gaia_colour_transform_method +| **Description**: Use this to select the method used to transform to Gaia colours from other colour schemes. GAIA_CONVERSION_UBVRI_UNIVARIATE_JORDI2010 = 0 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_UBVRI_BIVARIATE_JORDI2010 = 1 Jordi et al.'s bivariate UBVRI fits, GAIA_CONVERSION_ugriz_UNIVARIATE_JORDI2010 = 2 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_ugriz_BIVARIATE_JORDI2010 = 3 Jordi et al.'s univariate ugriv fits, GAIA_CONVERSION_UBVRI_UNIVARIATE_EVANS2018 = 4 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_ugriz_UNIVARIATE_EVANS2018 = 5 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_UBVRI_RIELLO2020 = 6 Riello et al. (2020, DR3) fits, GAIA_CONVERSION_ugriz_RIELLO2020 = 7 Riello et al. (2020, DR3) fits. +| **Parameter input type**: Integer +| **Default value**: 4 +| **Macros**: ['GAIA_CONVERSION_UBVRI_UNIVARIATE_JORDI2010 = 0', 'GAIA_CONVERSION_UBVRI_BIVARIATE_JORDI2010 = 1', 'GAIA_CONVERSION_ugriz_UNIVARIATE_JORDI2010 = 2', 'GAIA_CONVERSION_ugriz_BIVARIATE_JORDI2010 = 3', 'GAIA_CONVERSION_UBVRI_UNIVARIATE_EVANS2018 = 4', 'GAIA_CONVERSION_ugriz_UNIVARIATE_EVANS2018 = 5', 'GAIA_CONVERSION_UBVRI_RIELLO2020 = 6', 'GAIA_CONVERSION_ugriz_RIELLO2020 = 7'] + +| **Parameter**: rotationally_enhanced_mass_loss +| **Description**: Set to 1 to enable rotationally enhanced mass loss rate algorithms: 0= none, 1=formula cf. Langer models (=ROTATIONALLY_ENHNACED_MASSLOSS_LANGER_FORMULA), 2=limit accretion rate before wind loss is applied, 3 = both 1 and 2. See also rotationally_enhanced_exponent +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['ROTATIONALLY_ENHNACED_MASSLOSS_NONE = 0', 'ROTATIONALLY_ENHNACED_MASSLOSS_LANGER_FORMULA = 1', 'ROTATIONALLY_ENHNACED_MASSLOSS_ANGMOM = 2', 'ROTATIONALLY_ENHNACED_MASSLOSS_LANGER_FORMULA_AND_ANGMOM = 3'] + +| **Parameter**: AGB_core_algorithm +| **Description**: Algorithm to use for calculating AGB core masses. 0=Hurley et al. 2002 if no NUCSYN, Karakas 2002 if NUCSYN is defined; 1=Hurley et al. 2002 (overshooting models); 1=Karakas 2002 (non-overshooting models). +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['AGB_CORE_ALGORITHM_DEFAULT = 0', 'AGB_CORE_ALGORITHM_HURLEY = 1', 'AGB_CORE_ALGORITHM_KARAKAS = 2'] + +| **Parameter**: AGB_radius_algorithm +| **Description**: Algorithm to use for calculating radii on the TPAGB. +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['AGB_RADIUS_ALGORITHM_DEFAULT = 0', 'AGB_RADIUS_ALGORITHM_HURLEY = 1', 'AGB_RADIUS_ALGORITHM_KARAKAS = 2'] + +| **Parameter**: AGB_luminosity_algorithm +| **Description**: Algorithm to use for calculating luminosities on the TPAGB. +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['AGB_LUMINOSITY_ALGORITHM_DEFAULT = 0', 'AGB_LUMINOSITY_ALGORITHM_HURLEY = 1', 'AGB_LUMINOSITY_ALGORITHM_KARAKAS = 2'] + +| **Parameter**: AGB_3dup_algorithm +| **Description**: Algorithm to use for calculating third dredge up efficiency on the TPAGB. +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['AGB_THIRD_DREDGE_UP_ALGORITHM_DEFAULT = 0', 'AGB_THIRD_DREDGE_UP_ALGORITHM_HURLEY = 1', 'AGB_THIRD_DREDGE_UP_ALGORITHM_KARAKAS = 2', 'AGB_THIRD_DREDGE_UP_ALGORITHM_STANCLIFFE = 3'] + +| **Parameter**: overspin_algorithm +| **Description**: Algorithm to determine what we do when a star is rotating at its breakup velocity. OVERSPIN_BSE (0) conservatively transfers the angular momentum back to the orbit. OVERSPIN_MASSLOSS uses the rotationally_enhanced_massloss parameter to lose mass which carries away the angular momentum. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['OVERSPIN_BSE = 0', 'OVERSPIN_MASSLOSS = 1'] + +| **Parameter**: rotationally_enhanced_exponent +| **Description**: The exponent (power) by which rotationally enhanced mass loss is raised. Requires ROTATIONALLY_ENHANCED_MASS_LOSS. See also rotationally_enhanced_mass_loss. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: batchmode +| **Description**: Set the batchmode control variable. Use only if you know what you are doing! +| **Parameter input type**: Integer +| **Default value**: 3 + +| **Parameter**: speedtests +| **Description**: If True, turns on speedtests during version information (off by default). +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: use_fixed_timestep_%d +| **Description**: Set to True to use fixed timestep <n>, False to turn off. Fixed timesteps are on (this is True) by default. +| **Parameter input type**: Boolean(scanf) +| **Default value**: NULL + +| **Parameter**: task%d +| **Description**: Control tasks to be performed by binary_c. By default, these are all TRUE. For more information see binary_c_macros.h, particularly the BINARY_C_TASK_* macros. +| **Parameter input type**: Boolean(scanf) +| **Default value**: NULL + +| **Parameter**: PPISN_prescription +| **Description**: (Pulsational) Pair-Instability Supernova prescription: Relates initial helium core mass of star to whether the star undergoes PPISN or PISN. Requires PPISN. 0=no ppisn, 1=farmer 2019, 2=Marchant 2018, 3=Woosley 2019 +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['PPISN_DISABLED = 0', 'PPISN_FARMER19 = 1'] +| **Extra**: Ignore + +| **Parameter**: angmom_to_orbit_factor +| **Description**: Parameter to control the fraction of the excess angular momentum thats returned to the orbit during a disk mass transfer episode +| **Parameter input type**: Float +| **Default value**: NULL +| **Extra**: Ignore + +Section: binary +--------------- + +| **Parameter**: separation +| **Description**: Set the orbital separation (actually the semi-major axis) of the binary (internal index 0, stellar indices 0 and 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: separation_triple +| **Description**: Set the orbital separation (actually the semi-major axis) of the triple (internal index 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: separation_quadruple +| **Description**: Set the orbital separation (actually the semi-major axis) of the quadruple (internal index 2) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: orbital_period +| **Description**: Set the initial orbital period of the binary, stars 1 and 2 (internal indices 0 and 1) in days. See also separation. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: orbital_period_triple +| **Description**: Set the initial orbital period of the triple in days. See also separation. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: orbital_period_quadruple +| **Description**: Set the orbital period of the outer binary in a quadrulple (stars 3 and 4, internal indices 2 and 3) in days. See also separation. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: eccentricity +| **Description**: Set the initial eccentricity of the binary orbit (stars 1 and 2, internal indices 0 and 1). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: eccentricity_triple +| **Description**: Set the initial eccentricity of the triple orbit. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: eccentricity_quadruple +| **Description**: Set the initial eccentricity of the outer binary of a quadruple (stars 3 and 4, internal indices 2 and 3). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: incliniation +| **Description**: Set the initial orbital_inclination of the binary relative to zero. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: incliniation_triple +| **Description**: Set the initial orbital_inclination of the triple orbit relative to zero. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: incliniation_quadruple +| **Description**: Set the initial orbital_inclinationy of the quadruple orbit relative to zero. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: orbital_phase +| **Description**: Set the initial orbital phase of the binary orbit. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: orbital_phase_triple +| **Description**: Set the initial orbital phase of the triple orbit. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: orbital_phase_quadruple +| **Description**: Set the initial orbital phase of the quadruple orbit. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: argument_of_periastron +| **Description**: Set the initial argument of periastron of the binary orbit. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: argument_of_periastron_triple +| **Description**: Set the initial argument of periastron of the triple orbit. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: argument_of_periastron_quadruple +| **Description**: Set the initial argument of periastron of the quadruple orbit. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: disc_timestep_factor +| **Description**: Factor that multiplies the natural timestep of a disc. +| **Parameter input type**: Float +| **Default value**: 0.01 + +| **Parameter**: cbdisc_mass_loss_inner_viscous_accretion_method +| **Description**: Chooses where the mass that is accreted from the inner edge of a circumbinary disc goes, i.e. to which star. 0 = Young and Clarke 2015, 1 = Gerosa et al 2015, 2 = 50:50 (i.e. not dependence on mass). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['CBDISC_MASS_LOSS_INNER_VISCOUS_ACCRETION_METHOD_YOUNG_CLARKE_2015 = 0', 'CBDISC_MASS_LOSS_INNER_VISCOUS_ACCRETION_METHOD_GEROSA_2015 = 1', 'CBDISC_MASS_LOSS_INNER_VISCOUS_ACCRETION_METHOD_EQUAL = 2', 'CBDISC_MASS_LOSS_INNER_VISCOUS_ACCRETION_METHOD_NONE = 3'] + +| **Parameter**: cbdisc_inner_edge_stripping +| **Description**: If True, allow inner edge mass stripping. +| **Parameter input type**: True|False +| **Default value**: True + +| **Parameter**: cbdisc_end_evolution_after_disc +| **Description**: If True, stop evolution when a disc evaporates. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: cbdisc_no_wind_if_cbdisc +| **Description**: If True, disable stellar winds when there is a circumbinary disc. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: cbdisc_outer_edge_stripping +| **Description**: If True, allow outer edge mass stripping. +| **Parameter input type**: True|False +| **Default value**: True + +| **Parameter**: disc_n_monte_carlo_guesses +| **Description**: Number of monte carlo guesses to try in the disc solver if the normal list of guesses fails (0). +| **Parameter input type**: Integer +| **Default value**: 0 + +| **Parameter**: disc_log +| **Description**: If 1, turn on the disc log. Requires DISC_LOG to be defined on build. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['DISC_LOG_LEVEL_NONE = 0', 'DISC_LOG_LEVEL_NORMAL = 1', 'DISC_LOG_LEVEL_SUBTIMESTEP = 2', 'DISC_LOG_LEVEL_NORMAL_FIRST_DISC_ONLY = -1', 'DISC_LOG_LEVEL_SUBTIMESTEP_FIRST_DISC_ONLY = -2'] + +| **Parameter**: disc_log2d +| **Description**: If 1, turn on the 2d disc log. Requires DISC_LOG to be defined on build. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['DISC_LOG_LEVEL_NONE = 0', 'DISC_LOG_LEVEL_NORMAL = 1', 'DISC_LOG_LEVEL_SUBTIMESTEP = 2', 'DISC_LOG_LEVEL_NORMAL_FIRST_DISC_ONLY = -1', 'DISC_LOG_LEVEL_SUBTIMESTEP_FIRST_DISC_ONLY = -2'] + +| **Parameter**: disc_log_dt +| **Description**: If non-zero, only allows disc log output every disc_log_dt Myr. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: disc_log_directory +| **Description**: Directory into which disc logging is sent (must exist!). +| **Parameter input type**: String +| **Default value**: /tmp/ +| **Extra**: /tmp/ + +| **Parameter**: cbdisc_eccentricity_pumping_method +| **Description**: Select from various eccentricity-pumping methods when there is a circumbinary disc. Requires DISCS. 0 = off. +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['CBDISC_ECCENTRICITY_PUMPING_NONE = 0', 'CBDISC_ECCENTRICITY_PUMPING_DERMINE = 1'] + +| **Parameter**: cbdisc_viscous_photoevaporative_coupling +| **Description**: Set to 1 to turn on viscous-photoevaporative coupling in circumbinary discs. Requires DISCS. 0 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_NONE = off, 1 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_INSTANT instant, 2 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_VISCOUS slow, viscous wind. +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_NONE = 0', 'CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_INSTANT = 1', 'CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_VISCOUS = 2'] + +| **Parameter**: cbdisc_inner_edge_stripping_timescale +| **Description**: Defines the timescale for mass loss from by inner edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_in. +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['DISC_STRIPPING_TIMESCALE_INSTANT = 1', 'DISC_STRIPPING_TIMESCALE_INFINITE = 2', 'DISC_STRIPPING_TIMESCALE_VISCOUS = 3', 'DISC_STRIPPING_TIMESCALE_ORBIT = 4'] + +| **Parameter**: cbdisc_outer_edge_stripping_timescale +| **Description**: Defines the timescale for mass loss from by outer edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_out. +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['DISC_STRIPPING_TIMESCALE_INSTANT = 1', 'DISC_STRIPPING_TIMESCALE_INFINITE = 2', 'DISC_STRIPPING_TIMESCALE_VISCOUS = 3', 'DISC_STRIPPING_TIMESCALE_ORBIT = 4'] + +| **Parameter**: cbdisc_viscous_L2_coupling +| **Description**: Set to 1 to turn on viscous-L2-loss coupling in circumbinary discs. Requires DISCS. 0 = off. +| **Parameter input type**: Integer +| **Default value**: 1 + +| **Parameter**: gravitational_radiation_model +| **Description**: Model for gravitational radiation from the system. 0=Hurley et al 2002 (Landau and Lifshitz 1951). 1 = as 0 but only when there is no RLOF. 2 = none. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['GRAVITATIONAL_RADIATION_BSE = 0', 'GRAVITATIONAL_RADIATION_BSE_WHEN_NO_RLOF = 1', 'GRAVITATIONAL_RADIATION_NONE = 2', 'GRAVITATIONAL_RADIATION_LANDAU_LIFSHITZ = 3', 'GRAVITATIONAL_RADIATION_LANDAU_LIFSHITZ_WHEN_NO_RLOF = 4'] + +| **Parameter**: nova_irradiation_multiplier +| **Description**: Multiplier for nova-radiative induced mass loss. (Shara+1986) +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: gravitational_radiation_modulator_J +| **Description**: Modulator for gravitational wave radiation angular momentum loss rate (1.0). +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: gravitational_radiation_modulator_e +| **Description**: Modulator for gravitational wave radiation eccentricity pumping rate (1.0). +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: nova_faml_multiplier +| **Description**: Nova friction-induced angular momentum loss multiplier. (Shara+1986) +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: RLOF_angular_momentum_transfer_model +| **Description**: Choose angular momentum transfer model in RLOF. 0=BSE (with discs), 1=conservative +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['RLOF_ANGULAR_MOMENTUM_TRANSFER_MODEL_BSE = 0', 'RLOF_ANGULAR_MOMENTUM_TRANSFER_MODEL_CONSERVATIVE = 1'] + +| **Parameter**: post_SN_orbit_method +| **Description**: Method by which the post-SN orbit is calculated. 0=BSE, 1=Tauris&Taken 1998. +| **Parameter input type**: Integer +| **Default value**: 1 +| **Macros**: ['POST_SN_ORBIT_BSE = 0', 'POST_SN_ORBIT_TT98 = 1'] + +| **Parameter**: accretion_limit_eddington_steady_multiplier +| **Description**: Steady accretion is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_steady_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: accretion_limit_eddington_LMMS_multiplier +| **Description**: Accretion from a low-mass, convective, main_sequence star is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_LMMS_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: accretion_limit_eddington_WD_to_remnant_multiplier +| **Description**: Accretion from a WD onto a remnant star (e.g. another white dwarf, neutron star or black hole) is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_WD_to_remnant_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. +| **Parameter input type**: Float +| **Default value**: -1 + +| **Parameter**: accretion_limit_thermal_multiplier +| **Description**: Mass transfer onto a MS, HG or CHeB star is limited by the accretor's thermal rate times this multiplier. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: accretion_limit_dynamical_multiplier +| **Description**: Mass transfer is limited by the accretor's dynamical rate times this multiplier. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: donor_limit_envelope_multiplier +| **Description**: Mass transfer by RLOF is limited by this fraction of the donor's envelope mass per timestep +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: donor_limit_thermal_multiplier +| **Description**: Mass transfer by RLOF is limited by the accretor's thermal rate times this multiplier. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: donor_limit_dynamical_multiplier +| **Description**: Mass transfer by RLOF is limited by the donor's dynamical rate times this multiplier. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: Bondi_Hoyle_accretion_factor +| **Description**: Wind accretion rate, as calculated by the Bondi-Hoyle-Littleton formula, multiplcation factor. (Used to be called 'acc2' which is now deprecated.) Hurley et al 2002 use 1.5, which is the default. +| **Parameter input type**: Float +| **Default value**: 1.5 + +| **Parameter**: tidal_strength_factor +| **Description**: A modulator for the tidal strength. If this factor > 1 then tides are stronger, i.e. tidal timescales are reduced. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: hachisu_qcrit +| **Description**: Critical q=Maccretor/Mdonor above which Hachisu's disk wind turns on. +| **Parameter input type**: Float +| **Default value**: 1.15 +| **Macros**: ['HACHISU_IGNORE_QCRIT = -1'] + +| **Parameter**: hachisu_disk_wind +| **Description**: Set to True to turn on Hachisu's disk wind when material accretes too fast onto a white dwarf. This helps to make more SNeIa. See also hachisu_qcrit. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: mass_accretion_for_eld +| **Description**: The mass that must be accreted onto a COWD for it to ignite as an edge-lit detonation SNIa. +| **Parameter input type**: Float +| **Default value**: 0.15 + +| **Parameter**: WDWD_merger_algorithm +| **Description**: Algorithm to be used when merging two white dwarfs. 0 = Hurley et al. (2002), 1 = Perets+ (2019), 2 = Chen+ (2016, todo) +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['WDWD_MERGER_ALGORITHM_BSE = 0', 'WDWD_MERGER_ALGORITHM_PERETS2019 = 1', 'WDWD_MERGER_ALGORITHM_CHEN2016 = 2'] + +| **Parameter**: type_Ia_MCh_supernova_algorithm +| **Description**: Algorithm to be used when calculating type Ia yields from Chandrasekhar-mass exploders. 0 = DD7 (Iwamoto 1999), 1 = Seitenzahl 2013 3D hydro yields (you must also set Seitenzahl2013_model) +| **Parameter input type**: Integer +| **Default value**: NULL +| **Macros**: ['TYPE_IA_MCH_SUPERNOVA_ALGORITHM_DD2 = 0', 'TYPE_IA_MCH_SUPERNOVA_ALGORITHM_SEITENZAHL2013 = 1', 'TYPE_IA_MCH_SUPERNOVA_ALGORITHM_SEITENZAHL2013_AUTOMATIC = 2'] + +| **Parameter**: Seitenzahl2013_model +| **Description**: Which of Seitenzahl et al. 2013's models to use? One of N1,N3,N5,N10,N20,N40,N100L,N100,N100H,N150,N200,N300C,N1600,N1600C,N100_Z0.5,N100_Z0.1,N100_Z0.01 (defaults to N100). +| **Parameter input type**: String +| **Default value**: NULL +| **Extra**: N1 + +| **Parameter**: type_Ia_sub_MCh_supernova_algorithm +| **Description**: Algorithm to be used when calculating type Ia yields from sub-Chandrasekhar-mass exploders. (Currently unused.) +| **Parameter input type**: Integer +| **Default value**: NULL +| **Macros**: ['TYPE_IA_SUB_MCH_SUPERNOVA_ALGORITHM_LIVNE_ARNETT_1995 = 0'] + +| **Parameter**: max_HeWD_mass +| **Description**: The maximum mass a HeWD can have before it ignites helium (0.7). +| **Parameter input type**: Float +| **Default value**: 0.7 + +| **Parameter**: merger_angular_momentum_factor +| **Description**: When two stars merge the resulting single star retains a fraction of the total system angular momentum (or the critical spin angular momentum, if it is smaller) multiplied by this factor. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: wind_angular_momentum_loss +| **Description**: Prescription for losing angular momentum in a stellar wind. 0=Hurley et al 2002 ('Tout') prescription, 1=lw i.e. a factor multiplying the specific orbital angular momentum, 2=lw hybrid for fast winds. Set wind_djorb_fac to the desired factor.. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['WIND_ANGMOM_LOSS_BSE = 0', 'WIND_ANGMOM_LOSS_LW = 1', 'WIND_ANGMOM_LOSS_LW_HYBRID = 2', 'WIND_ANGMOM_LOSS_SPHERICALLY_SYMMETRIC = 3'] + +| **Parameter**: wind_djorb_fac +| **Description**: Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=0 (the Tout/Hurley et al 2002 prescription). See wind_angular_momentum_loss. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: lw +| **Description**: Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=1,2 (the 'lw' prescription). See wind_angular_momentum_loss. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: VW93_EAGB_wind_speed +| **Description**: Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: VW93_TPAGB_wind_speed +| **Description**: Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: use_periastron_Roche_radius +| **Description**: Set this to True to use the Roche lobe radius at periastron, rather than (the default to) assume a circular orbit. This will be useful one day when we treat RLOF in eccentric orbits properly, hopefully. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: qcrit_LMMS +| **Description**: Apply critical q=Mdonor/Maccretor value for low-mass main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 0.6944 + +| **Parameter**: qcrit_MS +| **Description**: Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 1.6 + +| **Parameter**: qcrit_HG +| **Description**: Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 4 + +| **Parameter**: qcrit_GB +| **Description**: Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['QCRIT_GB_BSE = -1', 'QCRIT_GB_HJELLMING_WEBBINK = -2', 'QCRIT_GB_Q_NO_COMENV = -3', 'QCRIT_GB_CHEN_HAN_TABLE = -4', 'QCRIT_GB_CHEN_HAN_FORMULA = -5', 'QCRIT_GB_GE2015 = -6', 'QCRIT_GB_VOS2018 = -7'] + +| **Parameter**: qcrit_CHeB +| **Description**: Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 3 + +| **Parameter**: qcrit_EAGB +| **Description**: Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['QCRIT_GB_BSE = -1', 'QCRIT_GB_HJELLMING_WEBBINK = -2', 'QCRIT_GB_Q_NO_COMENV = -3', 'QCRIT_GB_CHEN_HAN_TABLE = -4', 'QCRIT_GB_CHEN_HAN_FORMULA = -5', 'QCRIT_GB_GE2015 = -6', 'QCRIT_GB_VOS2018 = -7'] + +| **Parameter**: qcrit_TPAGB +| **Description**: Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['QCRIT_GB_BSE = -1', 'QCRIT_GB_HJELLMING_WEBBINK = -2', 'QCRIT_GB_Q_NO_COMENV = -3', 'QCRIT_GB_CHEN_HAN_TABLE = -4', 'QCRIT_GB_CHEN_HAN_FORMULA = -5', 'QCRIT_GB_GE2015 = -6', 'QCRIT_GB_VOS2018 = -7'] + +| **Parameter**: qcrit_HeMS +| **Description**: Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 3 + +| **Parameter**: qcrit_HeHG +| **Description**: Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 4 + +| **Parameter**: qcrit_HeGB +| **Description**: Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 0.78125 + +| **Parameter**: qcrit_HeWD +| **Description**: Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 3 + +| **Parameter**: qcrit_COWD +| **Description**: Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 3 + +| **Parameter**: qcrit_ONeWD +| **Description**: Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 3 + +| **Parameter**: qcrit_NS +| **Description**: Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 3 + +| **Parameter**: qcrit_BH +| **Description**: Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 3 + +| **Parameter**: qcrit_degenerate_LMMS +| **Description**: Apply critical q=Mdonor/Maccretor value for (low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: qcrit_degenerate_MS +| **Description**: Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: qcrit_degenerate_HG +| **Description**: Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 4.7619 + +| **Parameter**: qcrit_degenerate_GB +| **Description**: Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 1.15 + +| **Parameter**: qcrit_degenerate_CHeB +| **Description**: Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 3 + +| **Parameter**: qcrit_degenerate_EAGB +| **Description**: Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 1.15 + +| **Parameter**: qcrit_degenerate_TPAGB +| **Description**: Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 1.15 + +| **Parameter**: qcrit_degenerate_HeMS +| **Description**: Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 3 + +| **Parameter**: qcrit_degenerate_HeHG +| **Description**: Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 4.7619 + +| **Parameter**: qcrit_degenerate_HeGB +| **Description**: Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 1.15 + +| **Parameter**: qcrit_degenerate_HeWD +| **Description**: Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 0.625 + +| **Parameter**: qcrit_degenerate_COWD +| **Description**: Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 0.625 + +| **Parameter**: qcrit_degenerate_ONeWD +| **Description**: Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 0.625 + +| **Parameter**: qcrit_degenerate_NS +| **Description**: Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 0.625 + +| **Parameter**: qcrit_degenerate_BH +| **Description**: Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. +| **Parameter input type**: Float +| **Default value**: 0.625 + +| **Parameter**: mass_for_Hestar_Ia_upper +| **Description**: Only helium stars below this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_lower. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: mass_for_Hestar_Ia_lower +| **Description**: Only helium stars above this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_upper. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: alphaCB +| **Description**: Circumbinary disk viscosity parameter, alpha. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: minimum_donor_menv_for_comenv +| **Description**: Minimum donor envelope mass for common envelope evolution to be triggered (Msun). Default 0. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: comenv_prescription +| **Description**: Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the Paczyński energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['COMENV_UNDEF = -1', 'COMENV_BSE = 0', 'COMENV_NELEMANS_TOUT = 1', 'COMENV_NANDEZ2016 = 2'] + +| **Parameter**: comenv_prescription%d +| **Description**: Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the Paczyński energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. +| **Parameter input type**: Int(scanf) +| **Default value**: NULL +| **Macros**: ['COMENV_UNDEF = -1', 'COMENV_BSE = 0', 'COMENV_NELEMANS_TOUT = 1', 'COMENV_NANDEZ2016 = 2'] + +| **Parameter**: comenv_ejection_spin_method +| **Description**: When a common envelope is ejected, we need to decide how fast the stars are left spinning. COMENV_EJECTION_SPIN_METHOD_DO_NOTHING (0) is the default, this just leaves the stars/stellar cores spinning with the same spin rate (omega = angular velocity) with which they entered the common envelope phase. COMENV_EJECTION_SPIN_METHOD_SYCHRONIZE instead tidally synchronizes the stars with their new orbital angular velocity. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['COMENV_EJECTION_SPIN_METHOD_DO_NOTHING = 0', 'COMENV_EJECTION_SPIN_METHOD_SYNCHRONIZE = 1'] + +| **Parameter**: comenv_merger_spin_method +| **Description**: When a common envelope binary merges, we need to decide how fast the resulting single star is left spinning. COMENV_MERGER_SPIN_METHOD_SPECIFIC (0) is the default, this preserves angular momentum but limits the specific angular momentum of the merged star to the specific angular momentum of the system at the onset of common envelope evolution. COMENV_MERGER_SPIN_METHOD_CONSERVE_ANGMOM (1) sets the merger's angular momentum to be that of the system at the onset of common envelope evolution (which means the star may be rotating supercritically). COMENV_MERGER_SPIN_METHOD_CONSERVE_OMEGA (2) sets the spin rate (angular frequency = omega) of the merged star to be that of the orbit just at the onset of common envelope evolution. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['COMENV_MERGER_SPIN_METHOD_SPECIFIC = 0', 'COMENV_MERGER_SPIN_METHOD_CONSERVE_ANGMOM = 1', 'COMENV_MERGER_SPIN_METHOD_CONSERVE_OMEGA = 2', 'COMENV_MERGER_SPIN_METHOD_BREAKUP = 3'] + +| **Parameter**: comenv_ms_accretion_mass +| **Description**: Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: comenv_ms_accretion_fraction +| **Description**: Experimental. During common envelope evolution, a main sequence may accrete a fraction of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_mass. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: comenv_ns_accretion_mass +| **Description**: Experimental. During common envelope evolution, a neutron star may accrete some of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_fraction. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: comenv_ns_accretion_fraction +| **Description**: Experimental. During common envelope evolution, a neutron star may accrete a fraction of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_mass. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: alpha_ce +| **Description**: Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: alpha_ce%d +| **Description**: Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. +| **Parameter input type**: Float(scanf) +| **Default value**: NULL + +| **Parameter**: lambda_ce +| **Description**: Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to -1 binary_c uses the Dewi and Tauris fits instead, -2 uses the formalism of Wang, Jia and Li (2016) and if -3 then a polytropic formalism is used (see also comenv_splitmass). +| **Parameter input type**: Float +| **Default value**: 0.5 +| **Macros**: ['LAMBDA_CE_DEWI_TAURIS = -1', 'LAMBDA_CE_WANG_2016 = -2', 'LAMBDA_CE_POLYTROPE = -3'] + +| **Parameter**: lambda_ce%d +| **Description**: Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to -1 binary_c uses the Dewi and Tauris fits instead, -2 uses the formalism of Wang, Jia and Li (2016) and if -3 then a polytropic formalism is used (see also comenv_splitmass). +| **Parameter input type**: Float(scanf) +| **Default value**: NULL +| **Macros**: ['LAMBDA_CE_DEWI_TAURIS = -1', 'LAMBDA_CE_WANG_2016 = -2', 'LAMBDA_CE_POLYTROPE = -3'] + +| **Parameter**: comenv_splitmass +| **Description**: When lambda_ce=-2, the envelope binding energy, lambda, is calculated using a polytropic formalism. The comenv_splitmass defines the point, in the units of the core mass, above which material is ejected. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: nelemans_recalc_eccentricity +| **Description**: If True, recalculate the eccentricity after angular momentum is removed. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: comenv_post_eccentricity +| **Description**: Eccentricity remaining after common envelope ejection. +| **Parameter input type**: Float +| **Default value**: 1e-05 + +| **Parameter**: nelemans_gamma +| **Description**: Set the fraction of the orbital specific angular momentum that is used to eject the common envelope according to the Nelemans and Tout prescription. See also nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs. +| **Parameter input type**: Float +| **Default value**: 1.75 + +| **Parameter**: nelemans_minq +| **Description**: Only activate the Nelemans and Tout common envelope prescription for q>nelemans_minq. See also nelemans_gamma, nelemans_max_frac_j_change, nelemans_n_comenvs. +| **Parameter input type**: Float +| **Default value**: 0.2 + +| **Parameter**: nelemans_max_frac_j_change +| **Description**: Maximum fractional angular momentum change in the Nelemans and Tout common envelope prescription. See also nelemans_gamma, nelemans_minq, nelemans_n_comenvs. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: nelemans_n_comenvs +| **Description**: Set the maximum number of common envelope ejections allowed to follow the Nelemans and Tout prescription, after which the standard alpha prescription is used. +| **Parameter input type**: Integer +| **Default value**: 1 + +| **Parameter**: lambda_ionisation +| **Description**: A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. +| **Parameter input type**: Float +| **Default value**: 0.5 + +| **Parameter**: lambda_ionisation%d +| **Description**: A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. +| **Parameter input type**: Float(scanf) +| **Default value**: NULL + +| **Parameter**: lambda_enthalpy +| **Description**: A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: lambda_enthalpy%d +| **Description**: A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). +| **Parameter input type**: Float(scanf) +| **Default value**: NULL + +| **Parameter**: cbdisc_gamma +| **Description**: Circumbinary disc gamma (equation of state) parameter. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1.4 + +| **Parameter**: cbdisc_alpha +| **Description**: Circumbinary disc alpha (viscosity) parameter. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 0.001 + +| **Parameter**: cbdisc_kappa +| **Description**: Circumbinary disc kappa (opacity) parameter. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 0.01 + +| **Parameter**: cbdisc_minimum_evaporation_timescale +| **Description**: Circumbinary disc minimum evaporation timescale (years). If (slow, not edge stripped) mass loss would evaporate the disc on a timescale less than this, simply evaporate the disc immediated. Usually set to 1y, ignore if zero. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: cbdisc_torquef +| **Description**: Circumbinary disc binary torque multiplier. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 0.001 + +| **Parameter**: cbdisc_max_lifetime +| **Description**: Circumbinary disc maximum lifetime (years, ignored if 0). Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1e+06 + +| **Parameter**: cbdisc_init_dM +| **Description**: On cbdisc start, reduce mass by a fraction dM if it won't converge. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 0.1 + +| **Parameter**: cbdisc_init_dJdM +| **Description**: On cbdisc start, reduce angular momentum by a fraction dJ/dM*dM if it won't converge. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 0.5 + +| **Parameter**: cbdisc_mass_loss_constant_rate +| **Description**: Circumbinary disc constant mass loss rate (Msun/year). Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: cbdisc_mass_loss_FUV_multiplier +| **Description**: Circumbinary disc FUV mass loss rate multiplier (no units). Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: cbdisc_mass_loss_Xray_multiplier +| **Description**: Circumbinary disc X-ray mass loss rate multiplier (no units). Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: cbdisc_mass_loss_ISM_ram_pressure_multiplier +| **Description**: Circumbinary disc interstellar medium ram pressure stripping mass loss rate multiplier (no units). Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: cbdisc_mass_loss_ISM_pressure +| **Description**: Circumbinary disc interstellar medium ram pressure in units of Boltzmann constant per Kelvin (I think...). Requires DISCS. Typically 3000.0. See e.g. http://www.astronomy.ohio-state.edu/~pogge/Ast871/Notes/Intro.pdf page 15 or https://arxiv.org/pdf/0902.0820.pdf Fig. 1 (left panel). +| **Parameter input type**: Float +| **Default value**: 3000 + +| **Parameter**: cbdisc_mass_loss_inner_viscous_multiplier +| **Description**: Circumbinary disc inner edge viscous mass loss rate multiplier (no units). Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier +| **Description**: Circumbinary disc inner edge viscous angular momentum multiplier (no units). The inner edge angular momentum Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: cbdisc_resonance_multiplier +| **Description**: Circumbinary disc resonant interaction multiplier, affects eccentricity pumping and angular momentum rates. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: cbdisc_resonance_damping +| **Description**: Circumbinary disc resonant interaction damping: should be on (True) to damp the l=1, m=2 resonance when the disc inner edge lies outside the resonance location. Requires DISCS. +| **Parameter input type**: True|False +| **Default value**: True + +| **Parameter**: cbdisc_fail_ring_inside_separation +| **Description**: If True, while converging on a structure, circumbinary discs with Rring < the binary separation are immediately failed. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: cbdisc_mass_loss_inner_L2_cross_multiplier +| **Description**: Circumbinary disc inner edge L2-crossing mass loss rate multiplier (no units). Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: cbdisc_minimum_luminosity +| **Description**: Circumbinary disc minimum luminosity. If the disc becomes dimmer than this, the disc is evaporated instantly. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: cbdisc_minimum_mass +| **Description**: Circumbinary disc minimum mass. If the disc becomes less massive than this, the disc is evaporated instantly. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 1e-06 + +| **Parameter**: cbdisc_minimum_fRing +| **Description**: Circumbinary disc minimum fRing. If the disc becomes a ring, and fRing = |Rout/Rin-1| < this value (and this value is non-zero), the disc is evaporated instantly. Requires DISCS. +| **Parameter input type**: Float +| **Default value**: 0.2 + +| **Parameter**: comenv_disc_angmom_fraction +| **Description**: If >0 Fraction of the common envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the moments of inertia to calculate (deprecated), if -2 use the common envelope's specific angular momentum, if -3 uses the L2 point at the end of the common envelope to set the angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: comenv_disc_mass_fraction +| **Description**: Fraction of the common envelope's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: wind_disc_angmom_fraction +| **Description**: If >0 Fraction of the wind envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the L2 point's specific angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: wind_disc_mass_fraction +| **Description**: Fraction of the stellar wind's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: WRLOF_method +| **Description**: Choose whether and how to apply wind-Roche-lobe-overflow. 0=none, 1=q-dependent, 2=quadratic See Abate et al 2013/14 for details. Requires WRLOF_MASS_TRANSFER. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['WRLOF_NONE = 0', 'WRLOF_Q_DEPENDENT = 1', 'WRLOF_QUADRATIC = 2'] + +| **Parameter**: minimum_timestep +| **Description**: The minimum timestep (Myr). +| **Parameter input type**: Float +| **Default value**: 1e-08 + +| **Parameter**: timestep_solver_factor +| **Description**: Factor applied in timestep_limits, e.g. to prevent X changing too fast by comparing to X/dX/dt, which is usually 1 but can be higher to lengthen timesteps when using an alternative solver. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: RLOF_mdot_factor +| **Description**: Multiplier applied to the mass transfer rate during Roche-lobe overflow. Requires RLOF_MDOT_MODULATION. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: RLOF_f +| **Description**: Factor to enlarge a Roche lobe, nominally because of radiation pressure (see Dermine et al paper). Requires RLOF_RADIATION_CORRECTION. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: minimum_separation_for_instant_RLOF +| **Description**: If True, instead of evolving the system just report the minimum separation (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_orbital_period_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: minimum_orbital_period_for_instant_RLOF +| **Description**: If True, instead of evolving the system just report the minimum orbital period (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_separation_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: maximum_mass_ratio_for_instant_RLOF +| **Description**: If True, instead of evolving the system just report the maximum mass ratio (on the zero-age main sequence) that would lead to instant RLOF, given M1 and orbital period. Used by binary_grid. See also minimum_separation_for_instant_RLOF and minimum_orbital_period_for_instant_RLOF. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: RLOF_method +| **Description**: Use RLOF_method to choose the algorithm you use for Roche-lobe overflow mass loss rate calculations. 0=Hurley et al 2002, 1=Adaptive (for radiative stars) R=RL method, 2=Ritter (probably broken), 3=Claeys etal 2014 variant on Hurley et al 2002. +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['RLOF_METHOD_BSE = 0', 'RLOF_METHOD_ADAPTIVE = 1', 'RLOF_METHOD_RITTER = 2', 'RLOF_METHOD_CLAEYS = 3', 'RLOF_METHOD_ADAPTIVE2 = 4'] + +| **Parameter**: RLOF_interpolation_method +| **Description**: When a star overflows its Roche lobe, it always has R>RL because of the limited time resolution of the simulation. Binary_c then uses an algorithm to get back to when R~RL (within a desired tolerance, set in RLOF_ENTRY_THRESHOLD which is usually 1.02, i.e. overflow of 2%). You can choose algorithm 0, the Hurley et al 2002 method which reverses time (i.e. uses a Newton-like scheme), or 1 to use the binary_c method which rejects a timestep (and hence does no logging on that timestep) and repeats with half the timestep until R~RL. The latter is now the default, because this means there are no negative timesteps which break various other algorithms (e.g. nucleosynthesis). +| **Parameter input type**: Integer +| **Default value**: 0 +| **Macros**: ['RLOF_INTERPOLATION_BINARY_C = 0', 'RLOF_INTERPOLATION_BSE = 1'] + +| **Parameter**: nova_retention_fraction +| **Description**: The mass accreted during a nova as fraction of mass transferred +| **Parameter input type**: Float +| **Default value**: 0.001 + +| **Parameter**: beta_reverse_nova +| **Description**: The fraction of mass ejected in a nova explosion which is accreted back onto the companion star. Set to -1 to automatically calculate based on a geometric argument, or 0 or positive to set the value. +| **Parameter input type**: Float +| **Default value**: 0 +| **Macros**: ['BETA_REVERSE_NOVAE_GEOMETRY = -1'] + +| **Parameter**: WD_accretion_rate_novae_upper_limit_hydrogen_donor +| **Description**: Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is hydrogen rich: above this rate the mass transfer leads to stable burning. +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['DONOR_RATE_ALGORITHM_CLAEYS2014 = -1', 'DONOR_RATE_ALGORITHM_BSE = -2'] + +| **Parameter**: WD_accretion_rate_novae_upper_limit_helium_donor +| **Description**: Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is helium rich: above this rate the mass transfer leads to stable burning. +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['DONOR_RATE_ALGORITHM_CLAEYS2014 = -1', 'DONOR_RATE_ALGORITHM_BSE = -2'] + +| **Parameter**: WD_accretion_rate_novae_upper_limit_other_donor +| **Description**: Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is neither hydrogen nor helium rich: above this rate the mass transfer leads to stable burning. +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['DONOR_RATE_ALGORITHM_CLAEYS2014 = -1', 'DONOR_RATE_ALGORITHM_BSE = -2'] + +| **Parameter**: WD_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor +| **Description**: Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a hydrogen-rich donor. Below this mass transfer leads to stable burning. +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['DONOR_RATE_ALGORITHM_CLAEYS2014 = -1', 'DONOR_RATE_ALGORITHM_BSE = -2'] + +| **Parameter**: WD_accretion_rate_new_giant_envelope_lower_limit_helium_donor +| **Description**: Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a helium-rich donor. Below this mass transfer leads to stable burning. +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['DONOR_RATE_ALGORITHM_CLAEYS2014 = -1', 'DONOR_RATE_ALGORITHM_BSE = -2'] + +| **Parameter**: WD_accretion_rate_new_giant_envelope_lower_limit_other_donor +| **Description**: Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope when the donor is neither hydrogen nor helium rich. Below this mass transfer leads to stable burning. +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['DONOR_RATE_ALGORITHM_CLAEYS2014 = -1', 'DONOR_RATE_ALGORITHM_BSE = -2'] + +| **Parameter**: CRAP_parameter +| **Description**: Tidally enhanced mass loss parameter. See Tout and Eggleton's paper on the subject. (Was the parameter bb). +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: individual_novae +| **Description**: If individual_novae is True, novae are resolved such that each explosion is performed separtaely. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: nova_timestep_accelerator_num +| **Description**: The nova timestep is accelerated if the nova number exceeds nova_timestep_accelerator_num. If zero or negative, acceleration is off. See also nova_timestep_accelerator_index and nova_timestep_accelerator_max. Only used if individual_novae is on. +| **Parameter input type**: Float +| **Default value**: 100 + +| **Parameter**: nova_timestep_accelerator_index +| **Description**: The index at which the nova timestep is accelerated. A larger value gives longer timesteps. See also nova_timestep_accelerator_num and nova_timestep_accelerator_max. Only used if individual_novae is on. +| **Parameter input type**: Float +| **Default value**: 0.5 + +| **Parameter**: nova_timestep_accelerator_max +| **Description**: The nova timestep is accelerated by a factor that is capped at nova_timestep_accelerator_max. This parameter is ignored if it is zero or negative. See also nova_timestep_accelerator_num and nova_timestep_accelerator_index. Only used if individual_novae is on. +| **Parameter input type**: Float +| **Default value**: -1 + +| **Parameter**: nonconservative_angmom_gamma +| **Description**: Mass lost from the system (but NOT from a stellar wind) takes a fraction gamma of the orbital angular momentum with it. Set to -1 to take the specific angular momentum of the donor star. Set to -2 to take super-Eddington, nova and disk-wind angular momenta as if a wind from the accretor. +| **Parameter input type**: Float +| **Default value**: -1 +| **Macros**: ['RLOF_NONCONSERVATIVE_GAMMA_DONOR = -1', 'RLOF_NONCONSERVATIVE_GAMMA_ISOTROPIC = -2'] + +| **Parameter**: max_stellar_angmom_change +| **Description**: Maxmimum fractional change in stellar angular momentum allowed before a timestep is rejected (0.05). +| **Parameter input type**: Float +| **Default value**: 0.05 + +Section: nucsyn +--------------- + +| **Parameter**: third_dup +| **Description**: If True, enables third dredge up. Requires NUCSYN and NUCSYN_THIRD_DREDGE_UP. +| **Parameter input type**: True|False +| **Default value**: True + +| **Parameter**: third_dup_multiplier +| **Description**: Usage: --third_dup_multiplier <i> <f>. Multiplies the abundance of element <i> by <f> during third dredge up. +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: 1.0 + +| **Parameter**: NeNaMgAl +| **Description**: Enables NeNaMgAl reaction network. Requires NUCSYN and NUCSYN_HBB. +| **Parameter input type**: True|False +| **Default value**: NULL +| **Extra**: Ignore + +| **Parameter**: nucreacmult%d +| **Description**: Usage: --nucreacmult%d <f>. Multiply nuclear reaction given by the integer %d (integer) by f (float). +| **Parameter input type**: Float(scanf) +| **Default value**: NULL + +| **Parameter**: nucsyn_metallicity +| **Description**: This sets the metallicity of the nucleosynthesis algorithms, i.e. the amount (by mass) of matter which is not hydrogen or helium. Usually you'd just set this with the metallicity parameter, but if you want the nucleosynthesis to be outside the range of the stellar evolution algorithm (e.g. Z=0 or Z=0.04) then you need to use nucsyn_metallicity. That said, it's also outside the range of some of the nucleosynthesis algorithms as well, so you have been warned! +| **Parameter input type**: Float +| **Default value**: NULL +| **Macros**: ['DEFAULT_TO_METALLICITY = -1'] + +| **Parameter**: initial_abundance_mix +| **Description**: initial abundance mixture: 0=AG89, 1=Karakas 2002, 2=Lodders 2003, 3=Asplund 2005 (not available?), 4=Garcia Berro, 5=Grevesse Noels 1993 +| **Parameter input type**: Unsigned integer +| **Default value**: NULL +| **Macros**: ['NUCSYN_INIT_ABUND_MIX_AG89 = 0', 'NUCSYN_INIT_ABUND_MIX_KARAKAS2002 = 1', 'NUCSYN_INIT_ABUND_MIX_LODDERS2003 = 2', 'NUCSYN_INIT_ABUND_MIX_ASPLUND2005 = 3', 'NUCSYN_INIT_ABUND_MIX_GARCIABERRO = 4', 'NUCSYN_INIT_ABUND_MIX_GREVESSE_NOELS_1993 = 5', 'NUCSYN_INIT_ABUND_MIX_ASPLUND2009 = 6', 'NUCSYN_INIT_ABUND_MIX_KOBAYASHI2011_ASPLUND2009 = 7', 'NUCSYN_INIT_ABUND_MIX_LODDERS2010 = 8'] +| **Extra**: 0 + +| **Parameter**: init_abund +| **Description**: Usage: --init_abund <i> <X>. Sets the initial abundance of isotope number <i> to mass fraction <X>. +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: 0.02 + +| **Parameter**: init_abund_mult +| **Description**: Usage: --init_abund_mult <i> <f>. Multiplies the initial abundance of isotope number <i> by <f>. +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: 1.0 + +| **Parameter**: init_abund_dex +| **Description**: Usage: --init_abund_dex <i> <f>. Changes the initial abundance of isotope number <i> by <f> dex. +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: 0.0 + +| **Parameter**: init_abunds_only +| **Description**: If True, outputs only the initial abundances, then exits. +| **Parameter input type**: True|False +| **Default value**: NULL + +| **Parameter**: initial_abunds_only +| **Description**: If True, outputs only the initial abundances, then exits. +| **Parameter input type**: True|False +| **Default value**: NULL + +| **Parameter**: no_thermohaline_mixing +| **Description**: If True, disables thermohaline mixing. +| **Parameter input type**: True|False +| **Default value**: NULL + +| **Parameter**: lithium_GB_post_Heflash +| **Description**: Sets the lithium abundances after the helium flash. Requires NUCSYN and LITHIUM_TABLES. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: lithium_GB_post_1DUP +| **Description**: Sets the lithium abundance after first dredge up. Requires NUCSYN and LITHIUM_TABLES. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: lithium_hbb_multiplier +| **Description**: Multiplies the lithium abundances on the AGB during HBB (based on Karakas/Fishlock et al models).Requires NUCSYN and LITHIUM_TABLES. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_decay_function +| **Description**: Functional form which describes Li7 decay. Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Choices are: 0 expoential (see angelou_lithium_decay_time). +| **Parameter input type**: Integer +| **Default value**: NULL +| **Macros**: ['ANGELOU_LITHIUM_DECAY_FUNCTION_EXPONENTIAL = 0'] + +| **Parameter**: angelou_lithium_LMMS_time +| **Description**: Time at which lithium manufacture is triggered in a low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_MS_time +| **Description**: Time at which lithium manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_HG_time +| **Description**: Time at which lithium manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_GB_time +| **Description**: Time at which lithium manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_CHeB_time +| **Description**: Time at which lithium manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_EAGB_time +| **Description**: Time at which lithium manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_TPAGB_time +| **Description**: Time at which lithium manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_LMMS_decay_time +| **Description**: Decay time for surface lithium abundance during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_MS_decay_time +| **Description**: Decay time for surface lithium abundance on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_HG_decay_time +| **Description**: Decay time for surface lithium abundance on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_GB_decay_time +| **Description**: Decay time for surface lithium abundance on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_CHeB_decay_time +| **Description**: Decay time for surface lithium abundance during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_EAGB_decay_time +| **Description**: Decay time for surface lithium abundance on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_TPAGB_decay_time +| **Description**: Decay time for surface lithium abundance on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_LMMS_massfrac +| **Description**: Lithium mass fraction when its manufacture is triggered during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_MS_massfrac +| **Description**: Lithium mass fraction when its manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_HG_massfrac +| **Description**: Lithium mass fraction when its manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_GB_massfrac +| **Description**: Lithium mass fraction when its manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_CHeB_massfrac +| **Description**: Lithium mass fraction when its manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_EAGB_massfrac +| **Description**: Lithium mass fraction when its manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_TPAGB_massfrac +| **Description**: Lithium mass fraction when its manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_vrot_trigger +| **Description**: Equatorial rotational velocity at which lithium manufacture is triggered (km/s). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: angelou_lithium_vrotfrac_trigger +| **Description**: Fraction of Keplerian (breakup) equatorial rotational velocity at which lithium manufacture is triggered (must be <1, ignored if 0). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0. +| **Parameter input type**: Float +| **Default value**: NULL + +Section: output +--------------- + +| **Parameter**: cf_amanda_log +| **Description**: Enable logging to compare to Amanda's models. +| **Parameter input type**: True|False +| **Default value**: NULL + +| **Parameter**: disable_end_logging +| **Description**: Disable the logging that happens at the end of the evolution. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: ensemble +| **Description**: Turn on ensemble calculations and output. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: ensemble_filters_off +| **Description**: Sets all ensemble filters to be off (FALSE) - these can then be enabled one-by-one with --ensemble_filter_[...] TRUE. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: ensemble_filter_%d +| **Description**: Turn on or off ensemble filter <n>. For a list of filters, see binary_c_macros.h and ensemble_log.c +| **Parameter input type**: Boolean(scanf) +| **Default value**: NULL + +| **Parameter**: ensemble_legacy_ensemble +| **Description**: Turn on ensemble legacy population output. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: legacy_yields +| **Description**: Turn on ensemble legacy yield output. +| **Parameter input type**: True|False +| **Default value**: NULL + +| **Parameter**: ensemble_defer +| **Description**: Defer ensemble output. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: ensemble_dt +| **Description**: When doing ensemble calculations, data is stored and/or output every ensemble_dt Myr. See also ensemble, ensemble_logdt, ensemble_startlogtime. +| **Parameter input type**: Float +| **Default value**: 1 + +| **Parameter**: ensemble_logdt +| **Description**: When doing ensemble calculations, and when logensembletimes is set, the ensemble is stored/output every ensemble_logdt Myr. See also ensemble, ensemble_dt, ensemble_startlogtime. +| **Parameter input type**: Float +| **Default value**: 0.1 + +| **Parameter**: ensemble_startlogtime +| **Description**: Start log ensemble data storage/calculations/output at ensemble_startlogtime. See also ensemble, ensemble_dt, ensemble_startlogtime. +| **Parameter input type**: Float +| **Default value**: 0.1 + +| **Parameter**: ensemble_logtimes +| **Description**: When doing ensemble calculations/output, set this to act at log times rather than linear times. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: postagb_legacy_logging +| **Description**: Turn on post-AGB legacy logging. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: disc_legacy_logging +| **Description**: Turn on disc legacy logging. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: EMP_logg_maximum +| **Description**: Maximum logg that EMP stars are allowed to have. See Izzard et al 2009. See also CEMP_cfe_minimum, EMP_minimum_age. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: EMP_minimum_age +| **Description**: Minimum age that EMP stars are required to have. See Izzard et al 2009. See also CEMP_cfe_minimum, EMP_logg_maximum. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: CEMP_cfe_minimum +| **Description**: Minimum [C/Fe] that CEMP stars are required to have. See Izzard et al 2009. See also EMP_logg_maximum, EMP_minimum_age. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: thick_disc_start_age +| **Description**: Lookback time for the start of the thick disc star formation, e.g. 13e3 Myr. Units = Myr. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: thick_disc_end_age +| **Description**: Lookback time for the end of the thick disc star formation, e.g. 4e3 Myr. Units = Myr. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: thick_disc_logg_min +| **Description**: Minimum logg for thick disc giants to be logged. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: thick_disc_logg_max +| **Description**: Maximum logg for thick disc giants to be logged. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: escape_velocity +| **Description**: A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 1e9 km/s. See also escape_fraction. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: escape_fraction +| **Description**: A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 0.0. See also escape_velocity. +| **Parameter input type**: Float +| **Default value**: NULL + +| **Parameter**: colour_log +| **Description**: If set to True, thelog is coloured with ANSI colour formatting. Requires FILE_LOG to be defined. +| **Parameter input type**: True|False +| **Default value**: False +| **Extra**: + +| **Parameter**: log_filename +| **Description**: Location of the output logging filename. If set to "/dev/null" then there is no logging. +| **Parameter input type**: String +| **Default value**: /tmp/c_log.dat +| **Extra**: + +| **Parameter**: stardata_dump_filename +| **Description**: Location of the stardata dump file. +| **Parameter input type**: String +| **Default value**: +| **Extra**: + +| **Parameter**: stardata_load_filename +| **Description**: Location of the stardata file to load. +| **Parameter input type**: String +| **Default value**: +| **Extra**: + +| **Parameter**: api_log_filename_prefix +| **Description**: Location of the output logging filename prefix for the API. If set to "/dev/null" then there is no logging. +| **Parameter input type**: String +| **Default value**: +| **Extra**: 0 + +| **Parameter**: hrdiag_output +| **Description**: Set to True to output high time-resolution Hertzstrpung-Russell diagram information. Requires HRDIAG. +| **Parameter input type**: True|False +| **Default value**: NULL + +| **Parameter**: internal_buffering +| **Description**: Experimental. Set to non-zero values to implement internal buffering prior to output. For use with binary_grid, you shouldn't really be playing with this. +| **Parameter input type**: Integer +| **Default value**: 2 +| **Macros**: ['INTERNAL_BUFFERING_OFF = 0', 'INTERNAL_BUFFERING_PRINT = 1', 'INTERNAL_BUFFERING_STORE = 2'] + +| **Parameter**: eccentric_RLOF_model +| **Description**: Chooses which model is used to handle eccentric RLOF. Default is RLOF_ECCENTRIC_AS_CIRCULAR, i.e. ignore the eccentricity. Note: requires force_corotation_of_primary_and_orbit to be FALSE. +| **Parameter input type**: Integer +| **Default value**: 0 + +| **Parameter**: force_circularization_on_RLOF +| **Description**: If True forces circularization of stars and orbit when RLOF starts, this is as in the BSE algorithm. (True) +| **Parameter input type**: True|False +| **Default value**: True + +| **Parameter**: wtts_log +| **Description**: If True, enables log file output for WTTS2. +| **Parameter input type**: True|False +| **Default value**: False + +| **Parameter**: fabian_imf_log_time +| **Description**: Time at which to output for Fabian Schneider's IMF project. Requires FABIAN_IMF_LOG +| **Parameter input type**: Float +| **Default value**: NULL +| **Extra**: Ignore + +| **Parameter**: fabian_imf_log_timestep +| **Description**: Timestep for Fabian Schneider's IMF project logging. Requires FABIAN_IMF_LOG +| **Parameter input type**: Float +| **Default value**: NULL +| **Extra**: Ignore + +| **Parameter**: version +| **Description**: Display binary_c version and build information. Also performs timing tests. +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: Ignore + +| **Parameter**: dumpversion +| **Description**: Display binary_c version number (short format). +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: Ignore + +| **Parameter**: version_only +| **Description**: Display binary_c version number and build information, but do not perform timing tests or anything that requires stardata to be non-NULL. +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: Ignore + +| **Parameter**: david_logging_function +| **Description**: Function to choose which kind of information gets logged Requires DAVID. Choices are: 0= None, 1= +| **Parameter input type**: Integer +| **Default value**: 0 +| **Extra**: Ignore + +Section: input +-------------- + +| **Parameter**: MINT_dir +| **Description**: Location of MINT algorithm data. : +| **Parameter input type**: String +| **Default value**: NULL +| **Extra**: + +Section: i/o +------------ + +| **Parameter**: go +| **Description**: batchmode control command +| **Extra**: Ignore + +| **Parameter**: gogo +| **Description**: batchmode control command +| **Extra**: Ignore + +| **Parameter**: reset_stars +| **Description**: Reset the star structures. Used in batchmode +| **Extra**: Ignore + +| **Parameter**: reset_stars_defaults +| **Description**: Reset the star structures and set defaults. Used in batchmode +| **Extra**: Ignore + +| **Parameter**: defaults +| **Description**: Reset all defaults. Used in batchmode +| **Extra**: Ignore + +| **Parameter**: echo +| **Description**: Activate batchmode command echoing, i.e. when you enter a command, binary_c repeats the command then executes it. +| **Extra**: Ignore + +| **Parameter**: noecho +| **Description**: Deactivate batchmode command echoing. See 'echo'. +| **Extra**: Ignore + +| **Parameter**: noechonow +| **Description**: Deactivate batchmode command echoing. See 'echo'. +| **Extra**: Ignore + +| **Parameter**: bye +| **Description**: Quit binary_c. Used in batchmode. +| **Extra**: Ignore + +| **Parameter**: fin +| **Description**: batchmode control command +| **Extra**: Ignore + +| **Parameter**: reset_prefs +| **Description**: Reset preferences struct. Used in batchmode +| **Extra**: Ignore + +| **Parameter**: status +| **Description**: Output batchmode status information. +| **Extra**: Ignore + +Section: algorithms +------------------- + +| **Parameter**: repeat +| **Description**: If > 1, repeats the system as many times as required. Handy if you're using Monte-Carlo kicks and want to sample the parameter space well. Also, if you are running speed tests this is good to give a statistically more reasonable result. (See e.g. 'tbse pgo'). +| **Parameter input type**: Integer +| **Default value**: 1 + +| **Parameter**: random_systems +| **Description**: Experimental. Use this to apply random initial system parameters (masses, separations, etc.). Useful for testing only. +| **Parameter input type**: Integer +| **Default value**: 0 + +Section: misc +------------- + +| **Parameter**: random_seed +| **Description**: Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). +| **Parameter input type**: Integer +| **Default value**: 0 + +| **Parameter**: random_systems_seed +| **Description**: Random number seed for the generation of random systems. See random_systems and random_seed. +| **Parameter input type**: Integer +| **Default value**: 0 + +| **Parameter**: random_skip +| **Description**: Skip the first <random_seed> random numbers that are generated. Usually this is 0 so they are all used. +| **Parameter input type**: Integer +| **Default value**: 0 + +| **Parameter**: idum +| **Description**: [NB: deprecated, please use 'random_seed' instead.] Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). +| **Parameter input type**: Integer +| **Default value**: 0 + +| **Parameter**: reverse_time +| **Description**: Make time go backwards. To be considered very experimental! +| **Parameter input type**: True|False +| **Default value**: NULL + +| **Parameter**: start_time +| **Description**: Start time for the simulation. +| **Parameter input type**: Float +| **Default value**: 0 + +| **Parameter**: warmup_cpu +| **Description**: Uses the CPU at maximum power the given number of seconds, prior to running normal stellar evolution. +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: Ignore + +| **Parameter**: help +| **Description**: Display help pages. Usage: --help <help topic>. +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: Ignore + +| **Parameter**: help_all +| **Description**: Display all help pages. +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: Ignore + +| **Parameter**: list_args +| **Description**: Display list of arguments with their default values. Useful for batchmode. +| **Parameter input type**: * +| **Default value**: NULL +| **Extra**: Ignore \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index d3280f31bcc646a8808c87b2a4867130f621e65c..ccf1ef45f4204c4f9e9c59d959033cc58178bed6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -19,6 +19,7 @@ import sys sys.path.insert(0, os.path.abspath(".")) sys.path.insert(0, os.path.abspath("../../binarycpython")) # sys.path.insert(0, os.path.abspath('../../examples')) +sys.path.insert(0, os.path.abspath("../../")) sys.path.insert(0, os.path.abspath("../../binarycpython/utils")) sys.path.insert(0, os.path.join(os.getenv("BINARY_C"), "src/API/")) @@ -28,8 +29,11 @@ cautodoc_root = os.path.abspath("../../") # -- Project information ----------------------------------------------------- project = "binary_c-python" -copyright = "2020, David Hendriks, Robert Izzard, Jeff Andrews" -author = "David Hendriks, Robert Izzard, Jeff Andrews" +copyright = "2020, David Hendriks, Robert Izzard" +author = "David Hendriks, Robert Izzard" + + + # -- General configuration --------------------------------------------------- @@ -45,7 +49,7 @@ extensions = [ "sphinx.ext.viewcode", "sphinx.ext.napoleon", "hawkmoth", - "m2r", + "m2r2", ] @@ -85,3 +89,22 @@ html_theme = "alabaster" # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] + + + +"""Patching m2r2""" +import m2r2 + +current_m2r2_setup = m2r2.setup + +def patched_m2r2_setup(app): + try: + return current_m2r2_setup(app) + except (AttributeError): + app.add_source_suffix(".md", "markdown") + app.add_source_parser(m2r2.M2RParser) + return dict( + version=m2r2.__version__, parallel_read_safe=True, parallel_write_safe=True, + ) + +m2r2.setup = patched_m2r2_setup \ No newline at end of file diff --git a/docs/source/coverage.svg b/docs/source/coverage.svg new file mode 100644 index 0000000000000000000000000000000000000000..e3a194825898162c01c3ad48af8208fd626e36a5 --- /dev/null +++ b/docs/source/coverage.svg @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" width="99" height="20"> + <linearGradient id="b" x2="0" y2="100%"> + <stop offset="0" stop-color="#bbb" stop-opacity=".1"/> + <stop offset="1" stop-opacity=".1"/> + </linearGradient> + <mask id="a"> + <rect width="99" height="20" rx="3" fill="#fff"/> + </mask> + <g mask="url(#a)"> + <path fill="#555" d="M0 0h63v20H0z"/> + <path fill="#e05d44" d="M63 0h36v20H63z"/> + <path fill="url(#b)" d="M0 0h99v20H0z"/> + </g> + <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> + <text x="31.5" y="15" fill="#010101" fill-opacity=".3">coverage</text> + <text x="31.5" y="14">coverage</text> + <text x="80" y="15" fill="#010101" fill-opacity=".3">5%</text> + <text x="80" y="14">5%</text> + </g> +</svg> diff --git a/docs/source/distribution_functions.rst b/docs/source/distribution_functions.rst new file mode 100644 index 0000000000000000000000000000000000000000..0e6da4a9e8c1316096fd26270cb5aa306526dee7 --- /dev/null +++ b/docs/source/distribution_functions.rst @@ -0,0 +1,7 @@ +distribution_functions module +================================= + +.. automodule:: distribution_functions + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/examples.rst b/docs/source/examples.rst index 619224b9c847e5cb18bc55eb22c43f60382e5398..281bfaa659e3e775f75243f608c963bde50b7049 100644 --- a/docs/source/examples.rst +++ b/docs/source/examples.rst @@ -1,9 +1,8 @@ -examples +Examples ======== -This chapter serves to document several of the example usages +This chapter contains the source code of example scripts which show the way of using certain functions +.. toctree:: + :hidden: -.. automodule:: examples.examples - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file + general_examples \ No newline at end of file diff --git a/docs/source/general_examples.rst b/docs/source/general_examples.rst new file mode 100644 index 0000000000000000000000000000000000000000..4a070790a2c7ef4fa05a5c5d76026750ff9bfae4 --- /dev/null +++ b/docs/source/general_examples.rst @@ -0,0 +1,7 @@ +Examples +======== +The source code of the general examples. + +.. literalinclude:: ../../examples/examples.py + :language: ruby + :linenos: \ No newline at end of file diff --git a/docs/source/grid_options_defaults.rst b/docs/source/grid_options_defaults.rst new file mode 100644 index 0000000000000000000000000000000000000000..185893b362605acab15f229763846bbf9c5820f2 --- /dev/null +++ b/docs/source/grid_options_defaults.rst @@ -0,0 +1,7 @@ +grid\_options\_defaults module +================================= + +.. automodule:: grid_options_defaults + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/grid_options_descriptions.rst b/docs/source/grid_options_descriptions.rst new file mode 100644 index 0000000000000000000000000000000000000000..db86452ceafe504bd31d52e7460da162d3f5ca26 --- /dev/null +++ b/docs/source/grid_options_descriptions.rst @@ -0,0 +1,7 @@ +grid\_options\_descriptions module +================================== + +.. automodule:: grid_options_descriptions + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/hpc_functions.rst b/docs/source/hpc_functions.rst new file mode 100644 index 0000000000000000000000000000000000000000..bb7f5b3503383e6cb0e0213e0c587ea70405db6a --- /dev/null +++ b/docs/source/hpc_functions.rst @@ -0,0 +1,7 @@ +hpc\_functions module +================================= + +.. automodule:: hpc_functions + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 3bff440954836df8c1fcb1f32fcebf3091716f8a..2cc0b56d9d1dffc2d2b6e4b9f0da1bdb53f89ed7 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -13,7 +13,8 @@ Welcome to binary_c-python's documentation! readme_link modules examples - + tutorials + binary_c_parameters Indices and tables ================== diff --git a/docs/source/modules.rst b/docs/source/modules.rst index acd2830a5d69f201ae3db6e68f9ab3a9f2265e97..c3304001b567c72b00229415882dc867bc69fd7c 100644 --- a/docs/source/modules.rst +++ b/docs/source/modules.rst @@ -1,10 +1,19 @@ -binaryc_python_utils -==================== +Binarycpython code +=================== +This chapter contains the (auto)documentation for all the functions and modules in the source code of binarycpython .. toctree:: :maxdepth: 4 custom_logging_functions + distribution_functions functions grid + grid_options_defaults + grid_options_descriptions + hpc_functions + plot_functions + run_system_wrapper + spacing_functions stellar_types + useful_funcs \ No newline at end of file diff --git a/docs/source/plot_functions.rst b/docs/source/plot_functions.rst new file mode 100644 index 0000000000000000000000000000000000000000..9eef3f7f864cad7a21b73b050af2701f5d611b8c --- /dev/null +++ b/docs/source/plot_functions.rst @@ -0,0 +1,7 @@ +plot\_functions module +================================= + +.. automodule:: plot_functions + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/run_system_wrapper.rst b/docs/source/run_system_wrapper.rst new file mode 100644 index 0000000000000000000000000000000000000000..44020176e8a9dca366b30a41931b088fb0cca6df --- /dev/null +++ b/docs/source/run_system_wrapper.rst @@ -0,0 +1,7 @@ +run\_system\_wrapper module +================================= + +.. automodule:: run_system_wrapper + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/spacing_functions.rst b/docs/source/spacing_functions.rst new file mode 100644 index 0000000000000000000000000000000000000000..22af7e645b221c7db9166638f690aa8bb4079a5c --- /dev/null +++ b/docs/source/spacing_functions.rst @@ -0,0 +1,7 @@ +spacing\_functions module +================================= + +.. automodule:: spacing_functions + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/tutorials.rst b/docs/source/tutorials.rst new file mode 100644 index 0000000000000000000000000000000000000000..ec639385c16adfdd23371baf56de0b3a805235a0 --- /dev/null +++ b/docs/source/tutorials.rst @@ -0,0 +1,3 @@ +Tutorials +========= +This chapter contains some tutorials for some problems \ No newline at end of file diff --git a/docs/source/useful_funcs.rst b/docs/source/useful_funcs.rst new file mode 100644 index 0000000000000000000000000000000000000000..0c0e9d99a4999b94344d7d1c3bdc86ecc399c5ff --- /dev/null +++ b/docs/source/useful_funcs.rst @@ -0,0 +1,7 @@ +useful\_funcs module +================================= + +.. automodule:: useful_funcs + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/examples/example_population.py b/examples/example_population.py index 3316f5fe5ee56f96b986e2ac61a3f474abf6d588..41567d6ba80af1fff1db992ab20c9a1d60785873 100644 --- a/examples/example_population.py +++ b/examples/example_population.py @@ -13,7 +13,6 @@ from binarycpython.utils.custom_logging_functions import temp_dir # The use of help(<function>) is a good way to inspect what parameters are there to use ######################################################### - ## Quick script to get some output def output_lines(output): """ @@ -24,7 +23,6 @@ def output_lines(output): def parse_function(self, output): # extract info from the population instance - # TODO: think about whether this is smart. Passing around this object might be an overkill # Get some information from the data_dir = self.custom_options["data_dir"] @@ -75,7 +73,6 @@ example_pop.set( # grid_options amt_cores=1, # grid_options verbose=1, # verbosity. Not fully configured correctly yet but having it value of 1 prints alot of stuff - parse_function=parse_function, # Setting the parse function thats used in the evolve_population # Custom options # TODO: need to be set in grid_options probably data_dir=os.path.join( temp_dir(), "example_python_population_result" @@ -83,6 +80,12 @@ example_pop.set( base_filename="example_pop.dat", # custom_options ) + +# Creating a parsing function +example_pop.set( + parse_function=parse_function, # Setting the parse function thats used in the evolve_population +) + ### Custom logging ## Below example requires changing the parse function @@ -147,9 +150,6 @@ example_pop.add_grid_variable( # setting use_datadir=False and providing an outfile=<> example_pop.export_all_info() -# Creating a parsing function -# TODO: add example of setting up a parsing function - ## Executing a single system ## This uses the M_1 orbital period etc set with the set function output = example_pop.evolve_single() diff --git a/examples/examples.py b/examples/examples.py index c15add4afb42129b6fd58b27caadabc32a8f01f7..2ffdce3fa3a4ccfdddd8ef274a83be67ed5503c7 100644 --- a/examples/examples.py +++ b/examples/examples.py @@ -2,7 +2,7 @@ import os import sys -import binary_c_python_api +from binarycpython import _binary_c_bindings from binarycpython.utils.functions import parse_output from binarycpython.utils.custom_logging_functions import ( @@ -44,7 +44,7 @@ def run_example_binary(): metallicity=metallicity, max_evolution_time=max_evolution_time, ) - output = binary_c_python_api.run_system(argstring) + output = _binary_c_bindings.run_system(argstring) print(output) @@ -145,7 +145,7 @@ def run_example_custom_logging_autogenerated(): metallicity, max_evolution_time, ) - output = binary_c_python_api.run_system( + output = _binary_c_bindings.run_system( argstring, custom_logging_func_memaddr=func_memaddr ) print(output)