diff --git a/src/hydro/PressureEnergy/hydro.h b/src/hydro/PressureEnergy/hydro.h index a6ca8ba76dc945b772f15aa6fd88308c4192fc23..49dc43a9073d8ea903eec7f2d3611da213b103e5 100644 --- a/src/hydro/PressureEnergy/hydro.h +++ b/src/hydro/PressureEnergy/hydro.h @@ -198,6 +198,18 @@ __attribute__((always_inline)) INLINE static float hydro_get_mass( return p->mass; } +/** + * @brief Sets the mass of a particle + * + * @param p The particle of interest + * @param m The mass to set. + */ +__attribute__((always_inline)) INLINE static void hydro_set_mass( + struct part *restrict p, float m) { + + p->mass = m; +} + /** * @brief Returns the velocities drifted to the current time of a particle. * @@ -233,7 +245,7 @@ __attribute__((always_inline)) INLINE static float hydro_get_internal_energy_dt( } /** - * @brief Returns the time derivative of internal energy of a particle + * @brief Sets the time derivative of internal energy of a particle * * We assume a constant density. * @@ -245,6 +257,7 @@ __attribute__((always_inline)) INLINE static void hydro_set_internal_energy_dt( p->u_dt = du_dt; } + /** * @brief Computes the hydro time-step of a given particle * @@ -525,7 +538,9 @@ __attribute__((always_inline)) INLINE static void hydro_end_force( * @param dt_therm The time-step for this kick (for thermodynamic quantities). */ __attribute__((always_inline)) INLINE static void hydro_kick_extra( - struct part *restrict p, struct xpart *restrict xp, float dt_therm) { + struct part *restrict p, struct xpart *restrict xp, float dt_therm, + const struct cosmology *cosmo, + const struct hydro_props *restrict hydro_properties) { /* Do not decrease the energy by more than a factor of 2*/ if (dt_therm > 0. && p->u_dt * dt_therm < -0.5f * xp->u_full) { @@ -555,7 +570,8 @@ __attribute__((always_inline)) INLINE static void hydro_kick_extra( * @param xp The extended particle to act upon */ __attribute__((always_inline)) INLINE static void hydro_convert_quantities( - struct part *restrict p, struct xpart *restrict xp) { + struct part *restrict p, struct xpart *restrict xp, + const struct cosmology *cosmo) { /* Compute the pressure */ const float pressure = gas_pressure_from_internal_energy(p->rho, p->u); @@ -593,4 +609,21 @@ __attribute__((always_inline)) INLINE static void hydro_first_init_part( hydro_init_part(p, NULL); } +/** + * @brief Overwrite the initial internal energy of a particle. + * + * Note that in the cases where the thermodynamic variable is not + * internal energy but gets converted later, we must overwrite that + * field. The conversion to the actual variable happens later after + * the initial fake time-step. + * + * @param p The #part to write to. + * @param u_init The new initial internal energy. + */ +__attribute__((always_inline)) INLINE static void +hydro_set_init_internal_energy(struct part *p, float u_init) { + + p->u = u_init; +} + #endif /* SWIFT_MINIMAL_HYDRO_H */