mcfacts.objects.agnobject.AGNDisruptedStar
- class mcfacts.objects.agnobject.AGNDisruptedStar(id_num_star=array([], dtype=float64), id_num_bh=array([], dtype=float64), galaxy=array([], dtype=float64), orb_a_star=array([], dtype=float64), orb_a_bh=array([], dtype=float64), mass_star=array([], dtype=float64), mass_bh=array([], dtype=float64), gen_star=array([], dtype=float64), gen_bh=array([], dtype=float64), orb_inc_star=array([], dtype=float64), orb_inc_bh=array([], dtype=float64), orb_ecc_star=array([], dtype=float64), orb_ecc_bh=array([], dtype=float64), star_log_radius=array([], dtype=float64), time_sn=array([], dtype=float64), num_obj_disrupt=0)
Bases:
AGNObjectArray of disrupted stars with BH parameters.
Creates an instance of AGNDisruptedStar.
- Parameters:
id_num_star (numpy array) – ID number of disrupted star
id_num_bh (numpy array) – ID number of BH that interacted with star
galaxy (numpy array) – galaxy (iteration)
orb_a_star (numpy array) – orbital semi-major axis of star wrt SMBH in R_g
orb_a_bh (numpy array) – orbital semi-major axis of BH wrt SMBH in R_g
mass_star (numpy array) – mass of star in Msun
mass_bh (numpy array) – mass of BH in Msun
gen_star (numpy array) – generation of star
gen_bh (numpy array) – generation of BH
orb_inc_star (numpy array) – orbital inclination of star
orb_inc_bh (numpy array) – orbital inclination of BH
orb_ecc_star (numpy array) – orbital eccentricity of star wrt SMBH
orb_ecc_bh (numpy array) – orbital eccentricity of BH wrt SMBH
star_log_radius (numpy array) – Log radius of star in Rsun
time_sn (numpy array) – the timestep of explosion
num_obj_disrupt (int) – number of objects
- __init__(id_num_star=array([], dtype=float64), id_num_bh=array([], dtype=float64), galaxy=array([], dtype=float64), orb_a_star=array([], dtype=float64), orb_a_bh=array([], dtype=float64), mass_star=array([], dtype=float64), mass_bh=array([], dtype=float64), gen_star=array([], dtype=float64), gen_bh=array([], dtype=float64), orb_inc_star=array([], dtype=float64), orb_inc_bh=array([], dtype=float64), orb_ecc_star=array([], dtype=float64), orb_ecc_bh=array([], dtype=float64), star_log_radius=array([], dtype=float64), time_sn=array([], dtype=float64), num_obj_disrupt=0)
Creates an instance of AGNDisruptedStar.
- Parameters:
id_num_star (numpy array) – ID number of disrupted star
id_num_bh (numpy array) – ID number of BH that interacted with star
galaxy (numpy array) – galaxy (iteration)
orb_a_star (numpy array) – orbital semi-major axis of star wrt SMBH in R_g
orb_a_bh (numpy array) – orbital semi-major axis of BH wrt SMBH in R_g
mass_star (numpy array) – mass of star in Msun
mass_bh (numpy array) – mass of BH in Msun
gen_star (numpy array) – generation of star
gen_bh (numpy array) – generation of BH
orb_inc_star (numpy array) – orbital inclination of star
orb_inc_bh (numpy array) – orbital inclination of BH
orb_ecc_star (numpy array) – orbital eccentricity of star wrt SMBH
orb_ecc_bh (numpy array) – orbital eccentricity of BH wrt SMBH
star_log_radius (numpy array) – Log radius of star in Rsun
time_sn (numpy array) – the timestep of explosion
num_obj_disrupt (int) – number of objects
Methods
__init__([id_num_star, id_num_bh, galaxy, ...])Creates an instance of AGNDisruptedStar.
add_objects([new_mass, new_spin, ...])Append new objects to the AGNObject.
add_stars([new_id_num_star, new_id_num_bh, ...])Add stars to the AGNMergedStar object
at_id_num(id_num[, attr])Returns the attribute at the specified ID numbers
Prints the size of each attribute to check that everything is consistent.
copy()Creates a deep copy of the AGNObject
init_from_file([fname])Reads in file from previous AGNObject.
keep_id_num(id_num_keep)Filters AGNObject to only keep the objects at the specified ID numbers
keep_index(idx_keep)Filters AGNObject to only keep the objects at the specified indices.
remove_id_num([id_num_remove])Filters AGNObject to remove the objects at the specified ID numbers
remove_index([idx_remove])Removes objects at specified indices.
Gets list of parameters present in object.
Returns a numpy dictionary of all attributes in the AGNObject
sort([sort_attr])Sorts all attributes of the AGNObject by the passed attribute
to_txt([fname, cols, extra_header])Loads AGNObject into temporary multi-dim numpy array and then uses np.savetxt to save to file.
Checks that ID numbers are unique.
- add_objects(new_mass=array([], dtype=float64), new_spin=array([], dtype=float64), new_spin_angle=array([], dtype=float64), new_orb_a=array([], dtype=float64), new_orb_inc=array([], dtype=float64), new_orb_ang_mom=array([], dtype=float64), new_orb_ecc=array([], dtype=float64), new_orb_arg_periapse=array([], dtype=float64), new_gen=array([], dtype=float64), new_galaxy=array([], dtype=float64), new_time_passed=array([], dtype=float64), new_id_num=array([], dtype=float64), obj_num=0)
Append new objects to the AGNObject. This method is not called directly, it is only called by the subclasses’ add methods.
- Parameters:
new_mass (numpy array) – masses to be added
new_spin (numpy array) – spins to be added
new_spin_angle (numpy array) – spin angles to be added
new_orb_a (numpy array) – semi-major axes to be added
new_orb_inc (numpy array) – orbital inclinations to be added
new_orb_ang_mom (numpy array) – orbital angular momentum to be added
new_orb_ecc (numpy array) – orbital eccentricities to be added
new_orb_arg_periapse (numpy array) – orbital arguments of the periapse to be added
new_gen (numpy array) – generations to be added
new_galaxy (numpy array) – galaxy iteration to be added, set to -1 if not passed
new_time_passed (numpy array) – time passed to be added, set to -1 if not passed
new_id_num (numpy array,optional) – ID numbers to be added
obj_num (int, optional) – Number of objects to be added.
- add_stars(new_id_num_star=array([], dtype=float64), new_id_num_bh=array([], dtype=float64), new_galaxy=array([], dtype=float64), new_orb_a_star=array([], dtype=float64), new_orb_a_bh=array([], dtype=float64), new_mass_star=array([], dtype=float64), new_mass_bh=array([], dtype=float64), new_gen_star=array([], dtype=float64), new_gen_bh=array([], dtype=float64), new_orb_inc_star=array([], dtype=float64), new_orb_inc_bh=array([], dtype=float64), new_orb_ecc_star=array([], dtype=float64), new_orb_ecc_bh=array([], dtype=float64), new_star_log_radius=array([], dtype=float64), new_time_sn=array([], dtype=float64), num_obj_disrupt=0)
Add stars to the AGNMergedStar object
- Parameters:
new_galaxy (numpy array) – galaxy (iteration)
new_id_num_star (numpy array) – ID number of disrupted star
new_id_num_bh (numpy array) – ID number of BH that interacted with star
new_orb_a_star (numpy array) – Semi-major axis of disrupted star wrt SMBH in R_g
new_orb_a_bh (numpy array) – Semi-major axis of BH wrt SMBH in R_g
new_mass_star (numpy array) – Mass [M_sun] of disrupted star
new_mass_bh (numpy array) – Mass [M_sun] of BH
new_gen_star (numpy array) – Generation of disrupted star
new_gen_bh (numpy array) – Generation of BH
new_orb_inc_star (numpy array) – Orbital inclination of star wrt SMBH
new_orb_inc_bh (numpy array) – Orbital inclination of BH wrt SMBH
new_orb_ecc_star (numpy array) – Orbital eccentricity of star wrt SMBH
new_orb_ecc_bh (numpy array) – Orbital eccentricity of BH wrt SMBH
new_star_log_radius (numpy array) – Log radius [R_sun] of star
new_time_sn (numpy array) – Time of explosion
num_obj_disrupt (int) – Number of objects
- at_id_num(id_num, attr=None)
Returns the attribute at the specified ID numbers
- check_consistency()
Prints the size of each attribute to check that everything is consistent. Raises an AttributeError if all arrays do not have the same length.
- copy()
Creates a deep copy of the AGNObject
- Parameters:
None
- Returns:
copied_object – new copy of AGNObject with no references to original AGNObject
- Return type:
- init_from_file(fname=None)
- Reads in file from previous AGNObject.
Not fully implemented. Would need to init AGNObject and then read from file?
- Parameters:
fname (str) – file to read in
- keep_id_num(id_num_keep)
Filters AGNObject to only keep the objects at the specified ID numbers
- Parameters:
id_num_keep (numpy array) – ID numbers to keep, others are removed
- keep_index(idx_keep)
Filters AGNObject to only keep the objects at the specified indices.
- Parameters:
idx_keep (numpy array) – indices to keep, others are removed.
- remove_id_num(id_num_remove=None)
Filters AGNObject to remove the objects at the specified ID numbers
- Parameters:
id_num_keep (numpy array) – ID numbers to keep, others are removed
- remove_index(idx_remove=None)
Removes objects at specified indices.
- Parameters:
idx_remove (numpy array) – indices to remove
- return_params()
Gets list of parameters present in object.
- Parameters:
None
- Returns:
parameters in object
- Return type:
- return_record_array()
Returns a numpy dictionary of all attributes in the AGNObject
- Parameters:
None
- Returns:
dat_out – dictionary array of all attributes in the AGNObject. Everything is written as a float.
- Return type:
numpy dictionary
- sort(sort_attr=None)
Sorts all attributes of the AGNObject by the passed attribute
- Parameters:
sort_attr (AGNObject attribute array) – array to sort the AGNObject by
- to_txt(fname=None, cols=None, extra_header=None)
Loads AGNObject into temporary multi-dim numpy array and then uses np.savetxt to save to file. Avoids the issue of pandas writing non-values as blanks instead of NaNs.
- unique_id_nums()
Checks that ID numbers are unique.