Skip to content
Snippets Groups Projects
Commit 8586ddbb authored by Matthieu Schaller's avatar Matthieu Schaller
Browse files

Add the Temperature to the output of the particles in the EAGLE cooling model.

parent 9b4f1c0f
No related branches found
No related tags found
1 merge request!697Add functions to calculate temperature of particles.
......@@ -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 */
......@@ -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;
......
......@@ -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;
......
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment