/******************************************************************************* * This file is part of SWIFT. * Copyright (c) 2020 Matthieu Schaller (schaller@strw.leidenuniv.nl) * * 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_NONE_STARS_H #define SWIFT_NONE_STARS_H /** * @brief Computes the time-step length of a given star particle from star * physics * * @param sp Pointer to the s-particle data. * @param stars_properties Properties of the stars model. * @param with_cosmology Are we running with cosmological time integration. * @param cosmo The current cosmological model (used if running with * cosmology). * @param time The current time (used if running without cosmology). */ __attribute__((always_inline)) INLINE static float stars_compute_timestep( const struct spart* const sp, const struct stars_props* stars_properties, const int with_cosmology, const struct cosmology* cosmo, const double time) { return FLT_MAX; } /** * @brief Returns the age of a star in internal units * * @param sp The star particle. * @param cosmo The cosmological model. * @param time The current time (in internal units). * @param with_cosmology Are we running with cosmological integration? */ __attribute__((always_inline)) INLINE static float stars_compute_age( const struct spart* sp, const struct cosmology* cosmo, double time, const int with_cosmology) { return 0.; } /** * @brief Initialises the s-particles for the first time * * This function is called only once just after the ICs have been * read in to do some conversions. * * @param sp The particle to act upon * @param stars_properties The properties of the stellar model. * @param with_cosmology Are we running with cosmological time integration. * @param scale_factor The current scale-factor (used if running with * cosmology). * @param time The current time (used if running without cosmology). */ __attribute__((always_inline)) INLINE static void stars_first_init_spart( struct spart* sp, const struct stars_props* stars_properties, const int with_cosmology, const double scale_factor, const double time) {} /** * @brief Prepares a s-particle for its interactions * * @param sp The particle to act upon */ __attribute__((always_inline)) INLINE static void stars_init_spart( struct spart* sp) {} /** * @brief Predict additional particle fields forward in time when drifting * * @param sp The particle * @param dt_drift The drift time-step for positions. */ __attribute__((always_inline)) INLINE static void stars_predict_extra( struct spart* restrict sp, float dt_drift) {} /** * @brief Sets the values to be predicted in the drifts to their values at a * kick time * * @param sp The particle. */ __attribute__((always_inline)) INLINE static void stars_reset_predicted_values( struct spart* restrict sp) {} /** * @brief Finishes the calculation of (non-gravity) forces acting on stars * * @param sp The particle to act upon */ __attribute__((always_inline)) INLINE static void stars_end_feedback( struct spart* sp) {} /** * @brief Kick the additional variables * * @param sp The particle to act upon * @param dt The time-step for this kick */ __attribute__((always_inline)) INLINE static void stars_kick_extra( struct spart* sp, float dt) {} /** * @brief Finishes the calculation of density on stars * * @param sp The particle to act upon * @param cosmo The current cosmological model. */ __attribute__((always_inline)) INLINE static void stars_end_density( struct spart* sp, const struct cosmology* cosmo) {} /** * @brief Sets all particle fields to sensible values when the #spart has 0 * ngbs. * * @param sp The particle to act upon * @param cosmo The current cosmological model. */ __attribute__((always_inline)) INLINE static void stars_spart_has_no_neighbours( struct spart* restrict sp, const struct cosmology* cosmo) {} /** * @brief Reset acceleration fields of a particle * * This is the equivalent of hydro_reset_acceleration. * We do not compute the acceleration on star, therefore no need to use it. * * @param p The particle to act upon */ __attribute__((always_inline)) INLINE static void stars_reset_feedback( struct spart* restrict p) {} /** * @brief Initializes constants related to stellar evolution, initializes imf, * reads and processes yield tables * * @param params swift_params parameters structure * @param stars stars_props data structure */ inline static void stars_evolve_init(struct swift_params* params, struct stars_props* restrict stars) {} #endif /* SWIFT_NONE_STARS_H */