diff --git a/src/feedback/EAGLE/feedback.c b/src/feedback/EAGLE/feedback.c index 20c441b13ca281491406386c64646fae3411de9e..e4d9c8ed4de1d052756a4a5b90d549673375816c 100644 --- a/src/feedback/EAGLE/feedback.c +++ b/src/feedback/EAGLE/feedback.c @@ -738,19 +738,6 @@ void compute_stellar_evolution(const struct feedback_props* feedback_props, /* 0.5 * (sp->v[0] * sp->v[0] + sp->v[1] * sp->v[1] + sp->v[2] * * sp->v[2]) * */ /* cosmo->a2_inv); */ - - /* /\* Compute the number of type II SNe that went off *\/ */ - /* sp->feedback_data.to_distribute.num_SNe = */ - /* compute_SNe(sp, feedback_props, age, dt); */ - - /* /\* Compute probability of heating neighbouring particles *\/ */ - /* if (dt > 0 && sp->feedback_data.ngb_mass > 0) */ - /* sp->feedback_data.to_distribute.heating_probability = */ - /* feedback_props->total_energy_SNe * */ - /* sp->feedback_data.to_distribute.num_SNe / */ - /* (feedback_props->temp_to_u_factor * - * feedback_props->SNe_deltaT_desired * */ - /* sp->feedback_data.ngb_mass); */ } /** @@ -880,10 +867,6 @@ void feedback_props_init(struct feedback_props* fp, us, UNIT_CONV_SPEED); // EAGLE parameter is 10 km/s fp->ejecta_specific_thermal_energy = 0.5 * ejecta_velocity * ejecta_velocity; - /* Set number of elements found in yield tables */ - fp->lifetimes.n_mass = 30; - fp->lifetimes.n_z = 6; - /* Initialise the IMF ------------------------------------------------- */ init_imf(fp); diff --git a/src/feedback/EAGLE/feedback_properties.h b/src/feedback/EAGLE/feedback_properties.h index b09364fb60793c52ef69a7200621b87e3fb70a3c..c8fab9aec3cfe858db59b26a10deeebfc3ea63eb 100644 --- a/src/feedback/EAGLE/feedback_properties.h +++ b/src/feedback/EAGLE/feedback_properties.h @@ -58,10 +58,6 @@ struct yield_table { */ struct lifetime_table { - /* number of elements, mass, and initial metallicity bins */ - int n_mass; - int n_z; - /* table of masses */ double *mass; @@ -72,6 +68,9 @@ struct lifetime_table { double **dyingtime; }; +/** + * @brief Properties of the EAGLE feedback model. + */ struct feedback_props { /* Kinetic energy of SN ejecta per unit mass (check name with Richard)*/ diff --git a/src/feedback/EAGLE/imf.h b/src/feedback/EAGLE/imf.h index c9f84f6e3a41306453ed141d2ffbf44f2ee7f4ff..17bf5445543312b9cf9475609ef21ec77901be9e 100644 --- a/src/feedback/EAGLE/imf.h +++ b/src/feedback/EAGLE/imf.h @@ -278,8 +278,8 @@ inline static float dying_mass_msun( const double *lifetime_Z = feedback_props->lifetimes.metallicity; const double *lifetime_m = feedback_props->lifetimes.mass; double **const dying_times = feedback_props->lifetimes.dyingtime; - const int n_Z = feedback_props->lifetimes.n_z; - const int n_m = feedback_props->lifetimes.n_mass; + const int n_Z = eagle_feedback_lifetime_N_metals; + const int n_m = eagle_feedback_lifetime_N_masses; /* Early abort? */ if (age_Gyr <= 0.f) { @@ -410,8 +410,8 @@ inline static float lifetime_in_Gyr( const double *lifetime_Z = feedback_props->lifetimes.metallicity; const double *lifetime_m = feedback_props->lifetimes.mass; double **const dying_times = feedback_props->lifetimes.dyingtime; - const int n_Z = feedback_props->lifetimes.n_z; - const int n_m = feedback_props->lifetimes.n_mass; + const int n_Z = eagle_feedback_lifetime_N_metals; + const int n_m = eagle_feedback_lifetime_N_masses; /* Calculate index along the mass axis */ int m_index; diff --git a/src/feedback/EAGLE/yield_tables.h b/src/feedback/EAGLE/yield_tables.h index 506fe0e4125b79dc08e0cd87805cd238ec2a00d9..9a4b39f900964b4df96f9111d2ce1ef6596c02dc 100644 --- a/src/feedback/EAGLE/yield_tables.h +++ b/src/feedback/EAGLE/yield_tables.h @@ -51,6 +51,12 @@ static const float log10_min_metallicity = -20; /*! Number of metallicity bins considered for the AGB yields */ #define eagle_feedback_AGB_N_metals 3 +/*! Number od mass bins along the mass axis of the lifetime table */ +#define eagle_feedback_lifetime_N_masses 30 + +/*! Number od mass bins along the metal axis of the lifetime table */ +#define eagle_feedback_lifetime_N_metals 6 + /** * @brief returns index of element_name within array of element names * (element_array) @@ -356,16 +362,16 @@ inline static void read_yield_tables(struct feedback_props *feedback_props) { if (status < 0) error("error closing dataset"); /* allocate temporary array to read lifetimes */ - double temp_lifetimes[feedback_props->lifetimes.n_z] - [feedback_props->lifetimes.n_mass]; + double temp_lifetimes[eagle_feedback_lifetime_N_metals] + [eagle_feedback_lifetime_N_masses]; dataset = H5Dopen(file_id, "Lifetimes", H5P_DEFAULT); H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, temp_lifetimes); H5Dclose(dataset); - for (int i = 0; i < feedback_props->lifetimes.n_z; i++) { - for (int j = 0; j < feedback_props->lifetimes.n_mass; j++) { + for (int i = 0; i < eagle_feedback_lifetime_N_metals; i++) { + for (int j = 0; j < eagle_feedback_lifetime_N_masses; j++) { feedback_props->lifetimes.dyingtime[i][j] = log10(temp_lifetimes[i][j]); } } @@ -546,7 +552,7 @@ inline static void allocate_yield_tables( if (swift_memalign("feedback-tables", (void **)&feedback_props->lifetimes.mass, SWIFT_STRUCT_ALIGNMENT, - feedback_props->lifetimes.n_mass * sizeof(double)) != 0) { + eagle_feedback_lifetime_N_masses * sizeof(double)) != 0) { error("Failed to allocate lifetime mass array"); } @@ -554,16 +560,16 @@ inline static void allocate_yield_tables( if (swift_memalign("feedback-tables", (void **)&feedback_props->lifetimes.metallicity, SWIFT_STRUCT_ALIGNMENT, - feedback_props->lifetimes.n_z * sizeof(double)) != 0) { + eagle_feedback_lifetime_N_metals * sizeof(double)) != 0) { error("Failed to allocate lifetime metallicity array"); } /* Allocate lifetimes array */ feedback_props->lifetimes.dyingtime = - (double **)malloc(feedback_props->lifetimes.n_z * sizeof(double *)); - for (int i = 0; i < feedback_props->lifetimes.n_z; i++) { + (double **)malloc(eagle_feedback_lifetime_N_metals * sizeof(double *)); + for (int i = 0; i < eagle_feedback_lifetime_N_metals; i++) { feedback_props->lifetimes.dyingtime[i] = - (double *)malloc(feedback_props->lifetimes.n_mass * sizeof(double)); + (double *)malloc(eagle_feedback_lifetime_N_masses * sizeof(double)); } /* Allocate arrays to store names of elements tracked for SNIa, SNII, AGB */