/******************************************************************************* * This file is part of SWIFT. * Copyright (c) 2016 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 <http://www.gnu.org/licenses/>. * ******************************************************************************/ #ifndef SWIFT_NONE_STARS_IO_H #define SWIFT_NONE_STARS_IO_H #include "io_properties.h" #include "stars_part.h" INLINE static void convert_spart_pos(const struct engine *e, const struct spart *sp, double *ret) { error("Empty implementation!"); ret[0] = 0.; ret[1] = 0.; ret[2] = 0.; } INLINE static void convert_spart_vel(const struct engine *e, const struct spart *sp, float *ret) { error("Empty implementation!"); ret[0] = 0.f; ret[1] = 0.f; ret[2] = 0.f; } /** * @brief Specifies which s-particle fields to read from a dataset * * @param sparts The s-particle array. * @param list The list of i/o properties to read. * @param num_fields The number of i/o fields to read. */ INLINE static void stars_read_particles(struct spart *sparts, struct io_props *list, int *num_fields) { /* Say how much we want to read */ *num_fields = 0; } /** * @brief Specifies which s-particle fields to write to a dataset * * @param sparts The s-particle array. * @param list The list of i/o properties to write. * @param num_fields The number of i/o fields to write. * @param with_cosmology Are we running a cosmological simulation? */ INLINE static void stars_write_particles(const struct spart *sparts, struct io_props *list, int *num_fields, int with_cosmology) { /* Say how much we want to write */ *num_fields = 0; } /** * @brief Initialize the global properties of the stars scheme. * * By default, takes the values provided by the hydro. * * @param sp The #stars_props. * @param phys_const The physical constants in the internal unit system. * @param us The internal unit system. * @param params The parsed parameters. * @param p The already read-in properties of the hydro scheme. * @param cosmo The cosmological model. */ INLINE static void stars_props_init(struct stars_props *sp, const struct phys_const *phys_const, const struct unit_system *us, struct swift_params *params, const struct hydro_props *p, const struct cosmology *cosmo) { error("Trying to initialise an empty model!"); } /** * @brief Print the global properties of the stars scheme. * * @param sp The #stars_props. */ INLINE static void stars_props_print(const struct stars_props *sp) {} #if defined(HAVE_HDF5) INLINE static void stars_props_print_snapshot(hid_t h_grpstars, hid_t h_grp_columns, const struct stars_props *sp) {} #endif /** * @brief Free the memory allocated for the stellar properties. * * Nothing to do here. * * @param sp The #stars_props structure. */ INLINE static void stars_props_clean(struct stars_props *sp) {} /** * @brief Write a #stars_props struct to the given FILE as a stream of bytes. * * @param p the struct * @param stream the file stream */ INLINE static void stars_props_struct_dump(const struct stars_props *p, FILE *stream) { restart_write_blocks((void *)p, sizeof(struct stars_props), 1, stream, "starsprops", "stars props"); } /** * @brief Restore a stars_props struct from the given FILE as a stream of * bytes. * * @param p the struct * @param stream the file stream */ INLINE static void stars_props_struct_restore(const struct stars_props *p, FILE *stream) { restart_read_blocks((void *)p, sizeof(struct stars_props), 1, stream, NULL, "stars props"); } #endif /* SWIFT_NONE_STAR_IO_H */