Configuration files for CMC
The cmc command-line executable cannot run without a configuration file. These ini files are designed to contain all the stellar evolution physics to generate a COSMIC population (i.e. the initial conditions for CMC) and all the dynamical options. Note that there are two distinct modes you might want to run CMC in: either as a purely dynamics code, with no real stars or stellar evolution, or with all the bells and whistles, to produce realistic models of clusters. These are sufficiently different that we have included two ini files in the examples directory:
KingProfile.ini is designed to run a cluster with most of the available physics. Use this for realistic star cluster simulations (it is what is described as “default” below). The ini file can be found Here
PlummerSphere.ini is designed to run a cluster with pure dynamics; no stars or stellar evolution, and will halt once the cluster reaches core collapse. Use this for classical dynamics studies and learning the code. The ini file can be found Here
Warning
The parameter names are case insensitive, and we’ve tried to include everything currently used in the code here. If you forget one, CMC will substitute a default value. However, note that there are several default values still in the code that are NOT described here. These are largely from either deprecated features, or parts of the code that are not working yet in the parallel version. If they work at all, we would strongly advise against using them for any type of production run.
[cmc]
Although this is all one section, we have grouped the flags/parameters which get passed to the dynamics and binary stellar evolution codes into (rough) categories. Each group will start with a note to indicate. the type of parameter or flag.
SNAPSHOT FLAGS
|
Turn snapshotting on or of (doesn’t control black hole snapshots below)
SNAPSHOTTING = 1 |
|
How many timesteps to write a snapshot SNAPSHOT_DELTACOUNT = 1000 |
|
Turn on snapshots for just the black holes (in the output.blackhole.snapshots.h5 file)
BH_SNAPSHOTTING = 0 |
|
write the black hole snapshots every X timesteps BH_SNAPSHOT_DELTACOUNT = 500 |
|
write additional snapshots around core collapse (in the output.snapshots.h5 file)
SNAPSHOT_CORE_COLLAPSE = 0 |
|
write snapshots every X units of time into the <output>.window.snapshots.h5 file. Format is:
SNAPSHOT_WINDOWS = “0,0.1,13.8” (will write one snapshot to snapshot.h5 every 100 Myr) |
|
What units should the snapshot windows be in. Options are:
SNAPSHOT_WINDOW_UNITS = Gyr |
RELAXATION FLAGS
|
perform two-body relaxation (0=off, 1=on)
RELAXATION = 1 |
|
Value of the Coulomb Logarithm (lambda = log(gamma*N)). Suggested values are:
CMC_GAMMA = 0.01 |
|
Maximum value of theta during two-body encounters. Suggested values are:
THETASEMAX = 1.412 |
DYNAMICS FLAGS
|
Turn on Fewbody encounters between two binaries
BINBIN = 1 |
|
Turn on Fewbody encounters between binaries and single objects
BINSINGLE = 1 |
|
Turn on post-Newtonian corrections for black holes. NOTE: this activates GW captures for both single BHs and during fewbody encounters. Note if SS_COLLISION=0 and BH_CAPTURE=1, GW captures will happen only in fewbody.
BH_CAPTURE = 1 |
|
Factor to multiply the radii of BHs by for collisions in fewbody (default is 5, since PN breaks down at ~10M) BH_RADIUS_MULTIPLYER = 5 |
|
Turn on three-body binary formation semi-analytic treatment from Morscher et al., 2013
THREEBODYBINARIES = 1 |
|
Only form three-body binaries if the three objects are black holes
ONLY_FORM_BH_THREEBODYBINARIES = 1 |
|
Minimum hardness ratio for forming three-body binaries (or breaking wide binaries if BINARY_BREAKING_MIN = 1) MIN_BINARY_HARDNESS = 5 |
|
whether to use 10% of the interparticle seperation (0, default) or MIN_BINARY_HARDNESS (1) as the criterion for breaking wide binaries
BINARY_BREAKING_MIN = 0 |
|
enable collisions between stars. NOTE: this activates collisions between single stars AND during fewbody encounters
SS_COLLISION = 1 |
|
Enable collisions bewteen giants and other individual stars. Can lead to binary formation. Uses cross sections from Lombardi et al., 2006. Only activated if SS_COLLISION = 1
TIDAL_CAPTURE = 0 |
|
Enable tidal captures during single-single interactions. Uses polytropic stellar models for stars. Uses cross sections from Kim & Lee 1999. Only activated if SS_COLLISION = 1
TC_POLYTROPE = 0 |
|
Set the multiplying factor for direct collisions. Default = 1.0 (sticky sphere) COLL_FACTOR = 1.0 |
|
Treat BH(NS)–MS TDEs in TDE vs direct collision limit. Follows prescription in Kremer et al., 2020
BHNS_TDE = 0 |
INPUT OPTIONS
|
the input hdf5 file for our intial conditions generated using COSMIC INPUT_FILE = input.hdf5 |
TIDAL FIELD OPTIONS
|
Tidally strip stars that pass the tidal boundary
TIDALLY_STRIP_STARS = 1 |
|
choose the tidal cut-off criteria for removing stars
TIDAL_TREATMENT = 0 |
|
whether to take the tidal boundary from a file (i.e. a tidal tensor)
USE_TT_FILE = 0 |
|
name of tidal tensor file to take tidal boundary from. Should be formatted as TT_FILE=NULL |
TERMINATION OPTIONS
|
maximum integration time (Gyr) T_MAX_PHYS = 13.8 |
|
maximum integration time (relaxation time) T_MAX = 100 |
|
maximum number of timesteps T_MAX_COUNT = 10000000 |
|
maximum amount of wallclock time to integrate for (seconds) MAX_WCLOCK_TIME = 604800 |
|
how often to save checkpoint files (seconds) CHECKPOINT_INTERVAL = 7200 |
|
how many previous checkpoints to keep at once CHECKPOINTS_TO_KEEP = 2 |
|
energy change calculation stopping criterion (i.e. if \(e/e_0\) changes by this much, stop calculation) TERMINAL_ENERGY_DISPLACEMENT = 10 |
|
stop once the cluster reaches core collapse (< 100 stars in core)
STOPATCORECOLLAPSE = 0 |
|
whether to compute a lifetime according to dynamical friction criterion. This controls whether an external file (
USE_DF_CUTOFF = 0 |
|
name of dynamical friction file to use as potential termination criterion. Should be formatted as DF_FILE = NULL |
|
dynamical friction criterion to use for terminating the simulation
DF_INTEGRATED_CRITERION = 1 |
OUTPUT OPTIONS
|
mass fractions for Lagrange radii, i.e. what fractions to actually print in the laggard files MASS_PC = 0.0001,0.0003,0.0005,0.0007,0.0009, 0.001,0.003,0.005,0.007,0.009,0.01, 0.03,0.05,0.07,0.09,0.1,0.2,0.3,0.4, 0.5,0.6,0.7,0.8,0.9,0.99 |
|
mass ranges for calculating derived quantities, i.e. what bins to use in mass for the different mass files MASS_BINS = 0.1,1.0,10.0,100.0,1000.0 |
|
Write out information about cores that are defined differently from the standard
WRITE_EXTRA_CORE_INFO = 0 |
|
Write out information about BHs each timestep
WRITE_BH_INFO = 1 |
|
Write out information about pulsars
WRITE_PULSAR_INFO = 0 |
|
Write a ton more information about neutron stars every PULSAR_DELTACOUNT timesteps
WRITE_MOREPULSAR_INFO = 0 |
|
Pulsar output interval in time steps PULSAR_DELTACOUNT = 1000 |
|
Write out information about stellar evolution for each single and binary star. Warning, this creates a TON of output
WRITE_STELLAR_INFO = 0 |
CMC Parameters
Parameters for controlling the CMC run.
Warning
Don’t touch these unless you know what you’re doing. And even then I probably wouldn’t.
|
one half the number of stars over which to average certain quantities AVEKERNEL = 20 |
|
Same, but for three-body binary formation (which is fundamentally more local) BH_AVEKERNEL = 3 |
|
minimum size of chunks that get partitioned across processors in the parallel code MIN_CHUNK_SIZE = 40 (this is just twice the AVEKERNEL) |
|
Random number generator seed. Note this is different from the BSE RNG seed IDUM = 1234 |
|
The random number seed used by kick.f and setting initial pulsar spin period and magnetic field BSE_IDUM = 1234 |
|
Do profiling of the code, and print it out to the timers file. Note that this introduces many MPI barriers
TIMER = 0 |
|
Force a relaxation timestep (useful when RELAXATION=0)
FORCE_RLX_STEP = 0 |
|
calculate the binary interaction time steps by only considering hard binaries
DT_HARD_BINARIES = 0 |
``HARD_BINARY_KT `` |
The minimum binary binding energy (in units of kT) for a binary to be considered ‘hard’ for the time step calculation. HARD_BINARY_KT = 0.7 |
|
Number of samples keys to use for the parallel sample-sort algorithm SAMPLESIZE = 1024 |
|
The number of central stars to use for calculating different qualities related to the timestep NUM_CENTRAL_STARS = 300 |
[bse]
Note
Although this is all one section, we have grouped the flags/parameters which get passed to the binary stellar evolution code into types. Each group will start with a note to indicate the type of parameter or flag.
SAMPLING FLAGS
|
determines the timesteps chosen in each evolution phase as decimal fractions of the time taken in that phase for Main Sequence (MS) stars pts1 = 0.001 following Bannerjee+2019 |
|
determines the timesteps chosen in each evolution phase as decimal fractions of the time taken in that phase for Giant Branch (GB, CHeB, AGB, HeGB) stars pts2 = 0.01 following Hurley+2000 |
|
determines the timesteps chosen in each evolution phase as decimal fractions of the time taken in that phase for HG, HeMS stars pts3 = 0.02 following Hurley+2000 |
METALLICITY FLAGS
|
Sets the metallicity of the Sun which primarily affects stellar winds. zsun = 0.014 following Asplund 2009 |
WIND FLAGS
|
Selects the model for wind mass loss for each star
windflag = 3 |
|
Limits the mass-loss rate of low-metallicity stars near the Eddington limit (see Grafener+2011, Giacobbo+2018).
eddlimflag = 0 |
|
Reimers mass-loss coefficent (Equation 106 SSE). Note: this equation has a typo. There is an extra \({\eta}\) out front; the correct rate is directly proportional to \({\eta}\). See also Kurdritzki+1978, Section Vb for discussion.
neta = 0.5 |
|
Binary enhanced mass loss parameter. See Equation 12 BSE.
bwind = 0, inactive for single |
|
Helium star mass loss parameter: 10-13 hewind L2/3 gives He star mass-loss. Equivalent to 1 - \({\mu}\) in the last equation on page 19 of SSE. hewind = 0.5 |
|
Wind velocity factor: vwind 2 goes like beta. See Equation 9 of Hurley+2002.
beta = -1.0 |
|
Wind accretion efficiency factor, which gives the fraction of angular momentum lost via winds from the primary that transfers to the spin angular momentum of the companion. Corresponds to \({\mu}\)w in Equation 11 of Hurley+2002.
xi = 0.5 |
|
Bondi-Hoyle wind accretion factor where the mean wind accretion rate onto the secondary is proportional to acc2. See Equation 6 in Hurley+2002.
acc2 = 1.5 |
COMMON ENVELOPE FLAGS
Note: there are cases where a common envelope is forced regardless of the critical mass ratio for unstable mass transfer. In the following cases, a common envelope occurs regardless of the choices below:
contact : the stellar radii go into contact (common for similar ZAMS systems)
periapse contact : the periapse distance is smaller than either of the stellar radii (common for highly eccentric systems)
core Roche overflow : either of the stellar radii overflow their component’s Roche radius (in this case, mass transfer from the convective core is always dynamically unstable)
|
Common-envelope efficiency parameter which scales the efficiency of transferring orbital energy to the envelope. See Equation 71 in Hurley+2002.
alpha1 = 1.0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Binding energy factor for common envelope evolution. The initial binding energy of the stellar envelope goes like 1 / \({\lambda}\). See Equation 69 in Hurley+2002.
lambdaf = 0.0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Selects the de Kool 1990 model to set the initial orbital energy using the total mass of the stars instead of the core masses as in Equation 70 of Hurley+2002.
ceflag = 0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Selects which mass and separation values to use when a supernova occurs during the CE and a kick needs to be applied.
cekickflag = 2 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Determines whether stars that begin a CE without a core-envelope boundary automatically lead to merger in CE. These systems include: kstars = [0,1,2,7,8,10,11,12].
cemergeflag = 0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Uses fitting formulae from Tauris+2015 for evolving RLO systems with a helium star donor and compact object accretor. NOTE: this flag will override choice made by cekickflag if set
cehestarflag = 0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Selects model to determine critical mass ratios for the onset of unstable mass transfer and/or a common envelope during RLO. NOTE: this is overridden by qcrit_array if any of the values are non-zero.
qcflag = 1
Eq.1: Eq.2: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Array with length: 16 for user-input values for the critical mass ratios that govern the onset of unstable mass transfer and a common envelope. Each item is set individually for its associated kstar, and a value of 0.0 will apply prescription of the qcflag for that kstar. Note: there are cases where a common envelope is forced regardless of the critical mass ratio for unstable mass transfer; in the following cases, a common envelope occurs regardless of the qcrit or qcflag qcrit_array = [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] |
KICK FLAGS
|
Sets the particular natal kick prescription to use
Note that
default=0 |
|
Sets the dispersion in the Maxwellian for the SN kick velocity in km/s
default=265.0 |
|
Sets the model for how SN kicks are applied to BHs where bhflag != 0 allows velocity kick at BH formation
bhflag = 1 |
|
Allows for electron capture SN and sets the maximum ECSN mass range at the time of SN
ecsn = 2.5 |
|
Sets the low end of the ECSN mass range
ecsn_mlow = 1.4 |
|
Sets the modified ECSN kick strength
sigmadiv = -20.0 |
|
reduces kick strengths for accretion induced collapse SN according to sigmadiv
aic = 1 |
|
Reduces kicks according to the sigmadiv selection for ultra-stripped supernovae which happen whenever a He-star undergoes a CE with a compact companion
ussn = 0 |
|
Allows for (pulsational) pair instability supernovae and sets either the model to use or the maximum mass of the remnant.
pisn = 45.0 |
|
Sets a fractional modification which scales down sigma for BHs. This works in addition to whatever is chosen for bhflag, and is applied to sigma before the bhflag prescriptions are applied
bhsigmafrac = 1.0 |
|
Sets the opening angle of the SN kick relative to the pole of the exploding star, where 0 gives strictly polar kicks and 90 gives fully isotropic kicks
polar_kick_angle = 90.0 |
|
Array of dimensions: (2,5) which takes user input values for the SN natal kick, where the first row corresponds to the first star and the second row corresponds to the second star and columns are: [vk, phi, theta, mean_anomaly, rand_seed]. NOTE: any numbers outside these ranges will be sampled in the standard ways detailed above.
natal_kick_array = [[-100.0,-100.0,-100.0,-100.0,0.0][-100.0,-100.0,-100.0,-100.0,0.0]] |
REMNANT MASS FLAGS
|
Determines the remnant mass prescription used for NSs and BHs.
remnantflag = 3 |
|
Sets the boundary between the maximum NS mass and the minimum BH mass
mxns = 3.0 |
|
Determines the prescriptions for mass conversion from baryonic to gravitational mass during the collapse of the proto-compact object
rembar_massloss = 0.5 |
REMNANT SPIN FLAGS
|
Uses different prescriptions for BH spin after formation
bhspinflag = 0 |
|
Sets either the spin of all BHs or the upper limit of the uniform distribution for BH spins
bhspinmag = 0.0 |
GR ORBITAL DECAY FLAG
Note
In CMC, GR orbital decay is handled separately from BSE for binary black holes, and is unaffected by the below flag
|
Turns on or off orbital decay due to gravitational wave radiation
grflag = 1 |
MASS TRANSFER FLAGS
|
Eddington limit factor for mass transfer.
eddfac = 1.0 |
|
Angular momentum prescriptions for mass lost during RLO at super-Eddington mass transfer rates
gamma = -2.0 |
|
Calculates the rate of thermal mass loss through Roche overflow mass transfer from the donor star
|
|
Limits the amount of mass accreted during Roche overflow
|
TIDES FLAGS
|
Activates tidal circularisation following Hurley+2002
tflag = 1 |
|
Activates StarTrack setup for tides following Belczynski+2008 ST_tide = 1 |
|
controls the scaling factor for convective tides each item is set individually for its associated kstar The releveant equation is Equation 21 of Hurley+2002
fprimc_array = [2.0/21.0,2.0/21.0,2.0/21.0,2.0/21.0,2.0/21.0,2.0/21.0, 2.0/21.0,2.0/21.0,2.0/21.0,2.0/21.0,2.0/21.0,2.0/21.0,2.0/21.0,2.0/21.0, 2.0/21.0,2.0/21.0] |
WHITE DWARF FLAGS
|
Activates the initial-final white dwarf mass relation from Han+1995 Equations 3, 4, and 5.
ifflag = 0 |
|
Activates an alternate cooling law found in the description immediately following Equation 1 in Hurley & Shara 2003. Equation 1 gives the BSE default Mestel cooling law.
wdflag = 1 |
|
Fraction of accreted matter retained in a nova eruption. This is relevant for accretion onto degenerate objects; see Section 2.6.6.2 in Hurley+2002.
epsnov = 0.001 |
PULSAR FLAGS
|
Activates different models for accretion induced field decay; see Kiel+2008.
bdecayfac = 1 |
|
Sets the magnetic field decay time-scale for pulsars following Section 3 of Kiel+2008.
bconst = -3000 |
|
Sets the magnetic field decay time-scale for pulsars following Section 3 of Kiel+2008.
ck = -1000 |
MIXING VARIABLES
|
Sets the mixing factor in main sequence star collisions. This is hard coded to 0.1 in the original BSE release and in Equation 80 of Hurley+2002 but can lead to extended main sequence lifetimes in some cases.
rejuv_fac = 1.0 |
|
Sets whether to use the orginal prescription for mixing of main-sequence stars (based on equation 80 of Hurley+2002) or whether to use the ratio of the pre-merger He core mass at the base of the giant branch to the merger product’s He core mass at the base of the giant branch
rejuvflag = 0 |
|
If set to 1 then if BH+star collision and if Mstar > Mbh, do not destroy the star default = 0 |
MAGNETIC BRAKING FLAGS
|
Activates different models for magnetic braking
htpmb = 1 |
MISC FLAGS
|
Activates different convective vs radiative boundaries
ST_cr = 1 |