/******************************************************************************* * This file is part of SWIFT. * Copyright (c) 2019 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_ENTROPY_FLOOR_NONE_H #define SWIFT_ENTROPY_FLOOR_NONE_H /** * @file src/entropy_floor/none/entropy_floor.h * @brief Empty functions used for simulations without entropy * floors. */ struct cosmology; struct hydro_props; struct part; struct phys_const; /** * @brief Properties of the entropy floor. * * Nothing here. */ struct entropy_floor_properties {}; /** * @brief Compute the pressure from the entropy floor at a given density * * Simply return 0 (no floor). * * @param rho_phys The physical density (internal units). * @param rho_com The comoving density (internal units). * @param cosmo The cosmological model. * @param props The properties of the entropy floor. */ static INLINE float entropy_floor_gas_pressure( const float rho_phys, const float rho_com, const struct cosmology *cosmo, const struct entropy_floor_properties *props) { return 0.f; } /** * @brief Compute the entropy floor of a given #part. * * Simply return 0 (no floor). * * @param p The #part. * @param cosmo The cosmological model. * @param props The properties of the entropy floor. */ static INLINE float entropy_floor( const struct part *p, const struct cosmology *cosmo, const struct entropy_floor_properties *props) { return 0.f; } /** * @brief Compute the temperature from the entropy floor at a given density * * Simply return 0 (no floor). * * @param rho_phys The physical density (internal units). * @param rho_com The comoving density (internal units). * @param cosmo The cosmological model. * @param props The properties of the entropy floor. */ static INLINE float entropy_floor_gas_temperature( const float rho_phys, const float rho_com, const struct cosmology *cosmo, const struct entropy_floor_properties *props) { return 0.f; } /** * @brief Compute the temperature from the entropy floor for a given #part * * Simply return 0 (no floor). * * @param p The #part. * @param cosmo The cosmological model. * @param props The properties of the entropy floor. */ static INLINE float entropy_floor_temperature( const struct part *p, const struct cosmology *cosmo, const struct entropy_floor_properties *props) { return 0.f; } /** * @brief Initialise the entropy floor by reading the parameters and converting * to internal units. * * Nothing to do here. * * @param params The YAML parameter file. * @param us The system of units used internally. * @param phys_cont The physical constants. * @param props The entropy floor properties to fill. */ static INLINE void entropy_floor_init(struct entropy_floor_properties *props, const struct phys_const *phys_const, const struct unit_system *us, const struct hydro_props *hydro_props, struct swift_params *params) {} /** * @brief Print the properties of the entropy floor to stdout. * * @param props The entropy floor properties. */ static INLINE void entropy_floor_print( const struct entropy_floor_properties *props) { message("Entropy floor is 'no entropy floor'."); } #ifdef HAVE_HDF5 /** * @brief Writes the current model of entropy floor to the file * @param h_grp The HDF5 group in which to write */ INLINE static void entropy_floor_write_flavour(hid_t h_grp) { io_write_attribute_s(h_grp, "Entropy floor", "None"); } #endif /** * @brief Write an entropy floor struct to the given FILE as a stream of bytes. * * Nothing to do here. * * @param props the struct * @param stream the file stream */ static INLINE void entropy_floor_struct_dump( const struct entropy_floor_properties *props, FILE *stream) {} /** * @brief Restore a entropy floor struct from the given FILE as a stream of * bytes. * * Nothing to do here. * * @param props the struct * @param stream the file stream */ static INLINE void entropy_floor_struct_restore( struct entropy_floor_properties *props, FILE *stream) {} #endif /* SWIFT_ENTROPY_FLOOR_NONE_H */