/******************************************************************************* * This file is part of SWIFT. * Copyright (c) 2019 Loic Hausammann (loic.hausammann@epfl.ch) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . * ******************************************************************************/ #ifndef SWIFT_STELLAR_EVOLUTION_GEAR_H #define SWIFT_STELLAR_EVOLUTION_GEAR_H #include "hdf5_functions.h" #include "initial_mass_function.h" #include "lifetime.h" #include "random.h" #include "stellar_evolution_struct.h" #include "supernovae_ia.h" #include "supernovae_ii.h" #include #include void stellar_model_print(const struct stellar_model* sm); int stellar_evolution_compute_integer_number_supernovae( struct spart* restrict sp, float number_supernovae_f, const integertime_t ti_begin, enum random_number_type random_type); void stellar_evolution_compute_continuous_feedback_properties( struct spart* restrict sp, const struct stellar_model* sm, const struct phys_const* phys_const, const float log_m_beg_step, const float log_m_end_step, const float m_beg_step, const float m_end_step, const float m_init, const float number_snia_f, const float number_snii_f); void stellar_evolution_compute_discrete_feedback_properties( struct spart* restrict sp, const struct stellar_model* sm, const struct phys_const* phys_const, const float log_m_beg_step, const float m_end_step, const float m_init, const int number_snia, const int number_snii); void stellar_evolution_evolve_individual_star( struct spart* restrict sp, const struct stellar_model* sm, const struct cosmology* cosmo, const struct unit_system* us, const struct phys_const* phys_const, const integertime_t ti_begin, const double star_age_beg_step, const double dt); void stellar_evolution_evolve_spart( struct spart* restrict sp, const struct stellar_model* sm, const struct cosmology* cosmo, const struct unit_system* us, const struct phys_const* phys_const, const integertime_t ti_begin, const double star_age_beg_step, const double dt); const char* stellar_evolution_get_element_name(const struct stellar_model* sm, int i); int stellar_evolution_get_element_index(const struct stellar_model* sm, const char* element_name); void stellar_evolution_read_elements(struct stellar_model* sm, struct swift_params* params); void stellar_evolution_props_init(struct stellar_model* sm, const struct phys_const* phys_const, const struct unit_system* us, struct swift_params* params, const struct cosmology* cosmo); void stellar_evolution_dump(const struct stellar_model* sm, FILE* stream); void stellar_evolution_restore(struct stellar_model* sm, FILE* stream); void stellar_evolution_clean(struct stellar_model* sm); float stellar_evolution_compute_initial_mass( const struct spart* restrict sp, const struct stellar_model* sm, const struct phys_const* phys_consts); #endif // SWIFT_STELLAR_EVOLUTION_GEAR_H