# binary_job¶

## output/input files¶

### show_binary_log_description_at_start¶

set this false if you want to skip the initial terminal output

```
show_binary_log_description_at_start = .true.
```

### binary_history_columns_file¶

if null string, use default (binary_history_columns.list)

```
binary_history_columns_file = ''
```

### warn_binary_extra¶

Due to changing the run_star_extras functions to hooks,we break existing run_binary_extras files. This flag sets a warning message and stops the MESA run until it is set to .false.. This way people will hopefully not be confused as to why their run_binary_extras functions are not being called.

```
warn_binary_extra = .true.
```

### inlist_names(:)¶

Inlist files for both stars. If modeling a star as a point mass, the corresponding file is ignored.

```
inlist_names(1) = 'inlist1'
inlist_names(2) = 'inlist2'
```

### read_extra_binary_job_inlist{1..5}¶

### extra_binary_job_inlist{1..5}_name¶

You can split your `binary_job`

inlist into pieces using the following controls.
BTW: it works recursively, so the extras can read extras too.
if `read_extra_star_job_inlist{1..5}`

is true,
then read &star_job from this namelist file

```
read_extra_binary_job_inlist1 = .false.
extra_binary_job_inlist1_name = 'undefined'
read_extra_binary_job_inlist2 = .false.
extra_binary_job_inlist2_name = 'undefined'
read_extra_binary_job_inlist3 = .false.
extra_binary_job_inlist3_name = 'undefined'
read_extra_binary_job_inlist4 = .false.
extra_binary_job_inlist4_name = 'undefined'
read_extra_binary_job_inlist5 = .false.
extra_binary_job_inlist5_name = 'undefined'
```

## starting model¶

### evolve_both_stars¶

Set this to .true. to model the evolution of both stars. If .false. then only inlist_names(1) will be used, and the other star will be modeled as a point mass. This option is ignored for loaded models, to setup a component as a point mass in that case use ‘change_point_mass_i’

```
evolve_both_stars = .false.
```

### relax_primary_to_th_eq¶

### log_Lnuc_div_L_for_relax_primary_to_th_eq¶

### min_age_for_relax_primary_to_th_eq¶

### max_steps_for_relax_primary_to_th_eq¶

### no_history_during_relax_primary_to_th_eq¶

### reset_age_for_relax_primary_to_th_eq¶

### tsync_for_relax_primary_to_th_eq¶

NOT IMPLEMENTED YET!!! Set relax_primary_to_th_eq to .true. to ignore mass loss, rlof and changes in orbital period or separation (depending on which was chosen as the initial condition) until the primary (given by inlist_names(1)) reaches thermal equilibrium. This is meant to ignore the fast evolution that a ZAMS star can experience as it evolves to CN equilibrium at its core.

Thermal equilibrium in this case is defined as

```
log(s% L_nuc_burn_total*Lsun/s% L(1)) < log_Lnuc_div_L_for_relax_primary_to_th_eq,
```

and the relaxation process is followed for at least min_age_for_relax_primary_to_th_eq years, even if the condition is met at the first step. If the process takes more than max_steps_for_relax_primary_to_th_eq steps, then the simulation is terminated.

If want output to be written to history during the relaxation process, then no_history_during_relax_primary_to_th_eq = .false.. After relaxation, if reset_age_relax_primary_to_th_eq = .true., then both model numbers and ages of the components and the binary will be reset to their values before relaxation.

when modeling a system with rotation and tides, the synchronization timescale can be fixed for both stars using tsync_for_relax_primary_to_th_eq (in years).

```
relax_primary_to_th_eq = .false.
log_Lnuc_div_L_for_relax_primary_to_th_eq = 0.005d0
min_age_for_relax_primary_to_th_eq = 1d2
max_steps_for_relax_primary_to_th_eq = 1000
no_history_during_relax_primary_to_th_eq = .true.
reset_age_for_relax_primary_to_th_eq = .true.
tsync_for_relax_primary_to_th_eq = 1
```

## modifications to model¶

### change_ignore_rlof_flag¶

### change_initial_ignore_rlof_flag¶

### new_ignore_rlof_flag¶

If ignore_rlof_flag is true, then ignore mass transfer due to RLOF by default ignore_rlof_flag=.false.

```
change_ignore_rlof_flag = .false.
change_initial_ignore_rlof_flag = .false.
new_ignore_rlof_flag = .false.
```

### change_model_twins_flag¶

### change_initial_model_twins_flag¶

### new_model_twins_flag¶

If model_twins_flag is true, then the system is modeled as if both stars were identical twins. Meant to save computation time in this particular scenario where computing the evolution of one of the components is redundant. by default model_twins_flag=.true.

```
change_model_twins_flag = .false.
change_initial_model_twins_flag = .false.
new_model_twins_flag = .false.
```

### change_point_mass_i¶

### change_initial_point_mass_i¶

### new_point_mass_i¶

point_mass_i stores the index of the star that is treated as a point mass equal to zero if both stars are modeled by default point_mass_i is set by evolve_both_stars (0 if evolve_both_stars istrue, 2 if false)

```
change_point_mass_i = .false.
change_initial_point_mass_i = .false.
new_point_mass_i = 0
```

### change_m1¶

### change_initial_m1¶

### new_m1¶

change the mass of star1. Ignored if point_mass_i/=1, in that case the mass is always taken to be that in the stellar model. After change, period and angular momentum are recomputed assuming the same separation and eccentricity (you likely want something different) Value is in Msun

```
change_m1 = .false.
change_initial_m1 = .false.
new_m1 = 0d0
```

### change_m2¶

### change_initial_m2¶

### new_m2¶

change the mass of star2. Ignored if point_mass_i/=2 in that case the mass is always taken to be that in the stellar model After change, period and angular momentum are recomputed assuming the same separation and eccentricity (you likely want something different) Value is in Msun

```
change_m2 = .false.
change_initial_m2 = .false.
new_m2 = 0d0
```

### change_separation_eccentricity¶

### change_initial_separation_eccentricity¶

### change_period_eccentricity¶

### change_initial_period_eccentricity¶

### new_separation¶

### new_period¶

### new_eccentricity¶

Simultaneously change the semi-major axis (in Rsun) and eccentricity, or the period (in days) and eccentricity.

```
change_separation_eccentricity = .false.
change_initial_separation_eccentricity = .false.
change_period_eccentricity = .false.
change_initial_period_eccentricity = .false.
```

```
new_separation = 0d0
new_period = 0d0
new_eccentricity = 0d0
```