mcfacts.inputs

Objects and methods for handling data input for McFACTS simulations.

Modules

ReadInputs

Define input handling functions for mcfacts_sim Inifile ------- "disk_model_name" : str 'sirko_goodman' or 'thompson_etal' "flag_use_pagn" : int Use pAGN to generate disk model? "flag_add_stars" : int Add stars to the disk "flag_coalesce_initial_stars" : int Keep stars as is (0) or coalesce before time loop starts (1) "flag_initial_stars_BH_immortal": int If stars over disk_star_initial_mass_cutoff turn into BH (0) or hold at cutoff (1, immortal) "smbh_mass" : float Mass of the supermassive black hole (solMass) "disk_radius_trap" : float Radius of migration trap in gravitational radii (r_g = G*`smbh_mass`/c^2) Should be set to zero if disk model has no trap "disk_radius_outer" : float final element of disk_model_radius_array (units of r_g) "disk_radius_max_pc" : float Maximum disk size in parsecs (0. for off) "disk_alpha_viscosity" : float disk viscosity 'alpha' "nsc_radius_outer" : float Radius of NSC (units of pc) "nsc_mass" : float Mass of NSC (units of M_sun) "nsc_radius_crit" : float Radius where NSC density profile flattens (transition to Bahcall-Wolf) (units of pc) "nsc_ratio_bh_num_star_num" : float Ratio of number of BH to stars in NSC (typically spans 3x10^-4 to 10^-2 in Generozov+18) "nsc_ratio_bh_mass_star_mass" : float Ratio of mass of typical BH to typical star in NSC (typically 10:1 in Generozov+18) "nsc_density_index_inner" : float Index of radial density profile of NSC inside r_nsc_crit (usually Bahcall-Wolf, 1.75) "nsc_density_index_outer" : float Index of radial density profile of NSC outside r_nsc_crit (e.g. 2.5 in Generozov+18 or 2.25 if Peebles) "disk_aspect_ratio_avg" : float Average disk scale height (e.g. about 3% in Sirko & Goodman 2003 out to ~0.3pc) "nsc_spheroid_normalization" : float Spheroid normalization "nsc_imf_bh_mode" : float Initial mass distribution for stellar bh is assumed to be Pareto with high mass cutoff--mode of initial mass dist (M_sun) "nsc_imf_bh_powerlaw_index" : float Initial mass distribution for stellar bh is assumed to be Pareto with high mass cutoff--powerlaw index for Pareto dist "nsc_imf_bh_mass_max" : float Initial mass distribution for stellar bh is assumed to be Pareto with high mass cutoff--mass of cutoff (M_sun) "nsc_imf_bh_method" : str The name of an IMF method ('uniform', 'default', 'gaussian' or filename for samples) "nsc_bh_spin_dist_mu" : float Initial spin distribution for stellar bh is assumed to be Gaussian --mean of spin dist "nsc_bh_spin_dist_sigma" : float Initial spin distribution for stellar bh is assumed to be Gaussian --standard deviation of spin dist "disk_bh_torque_condition" : float fraction of initial mass required to be accreted before BH spin is torqued fully into alignment with the AGN disk. We don't know for sure but (Bogdanovic et al. 2007) says between 0.01=1% and 0.1=10% is what is required. "disk_bh_eddington_ratio" : float Eddington ratio for disk bh "disk_bh_orb_ecc_max_init" : float assumed accretion rate onto stellar bh from disk gas, in units of Eddington accretion rate "disk_star_mass_max_init" : float Initial mass distribution for stars is assumed Salpeter "disk_star_mass_min_init" : float Initial mass distribution for stars is assumed Salpeter "nsc_imf_star_powerlaw_index" : float Initial mass distribution for stars is assumed Salpeter, disk_alpha_viscosity = 2.35 "disk_star_scale_factor" : float Scale factor to go from number of BH to number of stars. "disk_star_initial_mass_cutoff" : float Cutoff for initial star behavior "nsc_imf_star_mass_mode" : float Mass mode for star IMF "disk_star_torque_condition" : float fraction of initial mass required to be accreted before star spin is torqued fully into alignment with the AGN disk. We don't know for sure but (Bogdanovic et al. 2007) says between 0.01=1% and 0.1=10% is what is required. "disk_star_eddington_ratio" : float assumed accretion rate onto stars from disk gas, in units of Eddington accretion rate "disk_star_orb_ecc_max_init" : float assuming initially flat eccentricity distribution among single orbiters around SMBH out to max_initial_eccentricity. Eventually this will become smarter. "nsc_star_metallicity_x_init" : float Stellar initial hydrogen mass fraction "nsc_star_metallicity_y_init" : float Stellar initial helium mass fraction "nsc_star_metallicity_z_init" : float Stellar initial metallicity mass fraction "timestep_duration_yr" : float How long is your timestep in years? "timestep_num" : int How many timesteps are you taking (timestep*number_of_timesteps = disk_lifetime) "galaxy_num" : int Number of galaxies of code run (e.g. 1 for testing, 30 for a quick run) "fraction_bin_retro" : float Fraction of BBH that form retrograde to test (q,X_eff) relation. Default retro=0.1 "flag_thermal_feedback" : int Switch (1) turns feedback from embedded BH on. "flag_orb_ecc_damping" : int Switch (1) turns orb. ecc damping on. If switch = 0, assumes all bh are circularized (at e=e_crit) "capture_time_yr" : float Capture time in years Secunda et al. (2021) assume capture rate 1/0.1 Myr "disk_radius_capture_outer" : float Disk capture outer radius (units of r_g) Secunda et al. (2001) assume <2000r_g from Fabj et al. (2020) "disk_bh_pro_orb_ecc_crit" : float Critical eccentricity (limiting eccentricity, below which assumed circular orbit) "flag_dynamic_enc" : int Switch (1) turns dynamical encounters between embedded BH on. "delta_energy_strong_mu" : float Average energy change per strong interaction. de can be 20% in cluster interactions. May be 10% on average (with gas) "delta_energy_strong_sigma" : float Standard deviation for de Gaussian "inner_disk_outer_radius" : float Outer radius of the inner disk (Rg) "disk_inner_stable_circ_orb" : float Innermost Stable Circular Orbit around SMBH "mass_pile_up" : float Pile-up of masses caused by cutoff (M_sun) "save_snapshots" : int Save snapshots of the disk and NSC at each timestep "harden_energy_delta_mu" : float The Gaussian mean value for the energy change during a strong interaction "harden_energy_delta_sigma" : float The Gaussian standard deviation value for the energy change during a strong interaction "flag_use_surrogate" : int Switch (0) uses analytical kick prescription from Akiba et al. (2024). Switch (1) uses NRSurrogate model from (paper in prep). Switch (-1) uses precession module from Gerosa & Kesden (2016). "flag_use_spin_check" : int Switch (0) allows spin values to pass through without change. Switch (1) applies spin check system that sets 2g spins lower than 0.75 to a random range [0.75, 0.85]; 3g+ spins lower than 0.85 to a random range [0.85, 0.95] "flag_dynamics_sweep" : int Use faster dynamics functions which implement sweep function (1 on/0 off).

data