diff --git a/src/cooling/EAGLE/cooling_io.h b/src/cooling/EAGLE/cooling_io.h index 48c845c254b41f02d8b4ea39ae43a990b0436ac8..86b7067bdfa50aedac80b979adbaee00ba0b73db 100644 --- a/src/cooling/EAGLE/cooling_io.h +++ b/src/cooling/EAGLE/cooling_io.h @@ -23,6 +23,7 @@ #include "../config.h" /* Local includes */ +#include "cooling.h" #include "io_properties.h" #ifdef HAVE_HDF5 @@ -40,9 +41,17 @@ __attribute__((always_inline)) INLINE static void cooling_write_flavour( } #endif +INLINE static void convert_part_T(const struct engine* e, const struct part* p, + const struct xpart* xp, float* ret) { + + ret[0] = cooling_get_temperature(e->physical_constants, e->internal_units, + e->cosmology, e->cooling_func, p, xp); +} + /** * @brief Specifies which particle fields to write to a dataset * + * @param parts The particle array. * @param xparts The extended data particle array. * @param list The list of i/o properties to write. * @param cooling The #cooling_function_data @@ -50,9 +59,13 @@ __attribute__((always_inline)) INLINE static void cooling_write_flavour( * @return Returns the number of fields to write. */ __attribute__((always_inline)) INLINE static int cooling_write_particles( - const struct xpart* xparts, struct io_props* list, + const struct part* parts, const struct xpart* xparts, struct io_props* list, const struct cooling_function_data* cooling) { - return 0; + + list[0] = io_make_output_field_convert_part("Temperature", FLOAT, 1, + UNIT_CONV_TEMPERATURE, parts, + xparts, convert_part_T); + return 1; } #endif /* SWIFT_COOLING_EAGLE_IO_H */ diff --git a/src/parallel_io.c b/src/parallel_io.c index febbb4a7db6796fd751cb1eacc174a42936d19a2..5e616d52b97563ab1a8a52108d31223f94580df8 100644 --- a/src/parallel_io.c +++ b/src/parallel_io.c @@ -1394,8 +1394,8 @@ void write_output_parallel(struct engine* e, const char* baseName, Nparticles = Ngas; hydro_write_particles(parts, xparts, list, &num_fields); num_fields += chemistry_write_particles(parts, list + num_fields); - num_fields += cooling_write_particles(xparts, list + num_fields, - e->cooling_func); + num_fields += cooling_write_particles( + parts, xparts, list + num_fields, e->cooling_func); } else { /* Ok, we need to fish out the particles we want */ @@ -1418,8 +1418,9 @@ void write_output_parallel(struct engine* e, const char* baseName, &num_fields); num_fields += chemistry_write_particles(parts_written, list + num_fields); - num_fields += cooling_write_particles( - xparts_written, list + num_fields, e->cooling_func); + num_fields += + cooling_write_particles(parts_written, xparts_written, + list + num_fields, e->cooling_func); } } break; diff --git a/src/serial_io.c b/src/serial_io.c index 059318df180e0d06e446f9d3f839b16439dd1b34..76f55897dac6ec620f28aa837b81ae0f5e6b8739 100644 --- a/src/serial_io.c +++ b/src/serial_io.c @@ -1071,8 +1071,8 @@ void write_output_serial(struct engine* e, const char* baseName, Nparticles = Ngas; hydro_write_particles(parts, xparts, list, &num_fields); num_fields += chemistry_write_particles(parts, list + num_fields); - num_fields += cooling_write_particles(xparts, list + num_fields, - e->cooling_func); + num_fields += cooling_write_particles( + parts, xparts, list + num_fields, e->cooling_func); } else { /* Ok, we need to fish out the particles we want */ @@ -1095,8 +1095,9 @@ void write_output_serial(struct engine* e, const char* baseName, &num_fields); num_fields += chemistry_write_particles(parts_written, list + num_fields); - num_fields += cooling_write_particles( - xparts_written, list + num_fields, e->cooling_func); + num_fields += + cooling_write_particles(parts_written, xparts_written, + list + num_fields, e->cooling_func); } } break; diff --git a/src/single_io.c b/src/single_io.c index 833c4a80cb2f43455d34ad3cd694255b7b19038c..67c3250e37e62f5399716a9c87255d447b4da076 100644 --- a/src/single_io.c +++ b/src/single_io.c @@ -890,8 +890,8 @@ void write_output_single(struct engine* e, const char* baseName, N = Ngas; hydro_write_particles(parts, xparts, list, &num_fields); num_fields += chemistry_write_particles(parts, list + num_fields); - num_fields += cooling_write_particles(xparts, list + num_fields, - e->cooling_func); + num_fields += cooling_write_particles( + parts, xparts, list + num_fields, e->cooling_func); } else { /* Ok, we need to fish out the particles we want */ @@ -914,8 +914,9 @@ void write_output_single(struct engine* e, const char* baseName, &num_fields); num_fields += chemistry_write_particles(parts_written, list + num_fields); - num_fields += cooling_write_particles( - xparts_written, list + num_fields, e->cooling_func); + num_fields += + cooling_write_particles(parts_written, xparts_written, + list + num_fields, e->cooling_func); } } break;