diff --git a/examples/main.c b/examples/main.c index dfbfafdb7ffb1a9f26a7d2230c2779d32d537b32..690cbba113e0f90037b57d80bc4f3245559efa03 100644 --- a/examples/main.c +++ b/examples/main.c @@ -590,7 +590,7 @@ int main(int argc, char *argv[]) { /* Not restarting so look for the ICs. */ /* Initialize unit system and constants */ - units_init(&us, params, "InternalUnitSystem"); + units_init_from_params(&us, params, "InternalUnitSystem"); phys_const_init(&us, params, &prog_const); if (myrank == 0 && verbose > 0) { message("Internal unit system: U_M = %e g.", us.UnitMass_in_cgs); diff --git a/src/units.c b/src/units.c index 4b632e735b7c6e1c12afe8aebc16aa44abc5b597..ae33b0c263dc014dbaf5406a8dcdc8ed254d26dd 100644 --- a/src/units.c +++ b/src/units.c @@ -28,11 +28,6 @@ #include <stdlib.h> #include <string.h> -/* MPI headers. */ -#ifdef WITH_MPI -#include <mpi.h> -#endif - /* This object's header. */ #include "units.h" @@ -55,6 +50,25 @@ void units_init_cgs(struct unit_system* us) { us->UnitTemperature_in_cgs = 1.; } +/** + * @brief Initialise the unit_system with values for the base units. + * + * @param us The #unit_system to initialise. + * @param U_M_in_cgs The mass unit in [g]. + * @param U_L_in_cgs The length unit in [cm]. + * @param U_t_in_cgs The time unit in [s]. + * @param U_C_in_cgs The current unit in [A]. + * @param U_T_in_cgs The temperature unit in [K]. + */ +void units_init(struct unit_system* us, double U_M_in_cgs, double U_L_in_cgs, + double U_t_in_cgs, double U_C_in_cgs, double U_T_in_cgs) { + us->UnitMass_in_cgs = U_M_in_cgs; + us->UnitLength_in_cgs = U_L_in_cgs; + us->UnitTime_in_cgs = U_t_in_cgs; + us->UnitCurrent_in_cgs = U_C_in_cgs; + us->UnitTemperature_in_cgs = U_T_in_cgs; +} + /** * @brief Initialises the unit_system structure with the constants given in * the parameter file. @@ -63,8 +77,9 @@ void units_init_cgs(struct unit_system* us) { * @param params The parsed parameter file. * @param category The section of the parameter file to read from. */ -void units_init(struct unit_system* us, const struct swift_params* params, - const char* category) { +void units_init_from_params(struct unit_system* us, + const struct swift_params* params, + const char* category) { char buffer[200]; sprintf(buffer, "%s:UnitMass_in_cgs", category); diff --git a/src/units.h b/src/units.h index 87c44cc6eb4934980027a60642dd135f03029f7c..a6169d0a2f0e79156428f21d6096d66da7782837 100644 --- a/src/units.h +++ b/src/units.h @@ -28,7 +28,7 @@ /** * @brief The unit system used internally. * - * This structure contains the conversion factors to the 7 cgs base units to the + * This structure contains the conversion factors to the 5 cgs base units to the * internal units. It is used everytime a conversion is performed or an i/o * function is called. **/ @@ -96,8 +96,10 @@ enum unit_conversion_factor { }; void units_init_cgs(struct unit_system*); -void units_init(struct unit_system*, const struct swift_params*, - const char* category); +void units_init(struct unit_system* us, double U_M_in_cgs, double U_L_in_cgs, + double U_t_in_cgs, double U_C_in_cgs, double U_T_in_cgs); +void units_init_from_params(struct unit_system*, const struct swift_params*, + const char* category); void units_init_default(struct unit_system* us, const struct swift_params* params, const char* category, const struct unit_system* def);