diff --git a/examples/parameter_example.yml b/examples/parameter_example.yml index 85661a9edaca2b0c927d0efa5b1e35962ba14dbd..a9fd08c585638d553c605749806bd55b7b426452 100644 --- a/examples/parameter_example.yml +++ b/examples/parameter_example.yml @@ -91,6 +91,7 @@ Snapshots: output_list_on: 0 # (Optional) Enable the output list output_list: snaplist.txt # (Optional) File containing the output times (see documentation in "Parameter File" section) logger_max_steps: 10 # (Optional) Number of particle steps between two chunk writing if using logger + logger_size: 1e7 # buffer size of the logger file in bytes # Parameters governing the conserved quantities statistics Statistics: diff --git a/src/engine.c b/src/engine.c index 0d99a1fb0256d716390b672e05ef1fc61d931731..96b2eeeaf0f3ab11149642ef15e5e5f682f02d90 100644 --- a/src/engine.c +++ b/src/engine.c @@ -5461,6 +5461,7 @@ void engine_step(struct engine *e) { ((double)e->total_nr_gparts) * e->gravity_properties->rebuild_frequency)) e->forcerebuild = 1; + #ifdef WITH_LOGGER logger_log_timestamp(e->ti_old, &e->logger_time_offset, e->logger_dump); @@ -6700,10 +6701,11 @@ void engine_init(struct engine *e, struct space *s, struct swift_params *params, /* Logger params */ char logger_name_file[PARSER_MAX_LINE_SIZE]; e->logger_max_steps = parser_get_opt_param_int(params, "Snapshots:logger_max_steps", 10); - parser_get_opt_param_string(params, "Snapshots:dump_file", logger_name_file, e->snapshotBaseName); + e->logger_size = parser_get_param_float(params, "Snapshots:logger_size"); + strcpy(logger_name_file, e->snapshotBaseName); strcat(logger_name_file, ".dump"); e->logger_dump = malloc(sizeof(struct dump)); - dump_init(e->logger_dump, logger_name_file, 1024 * 1024 * 100); + dump_init(e->logger_dump, logger_name_file, e->logger_size); e->logger_time_offset = 0; #endif diff --git a/src/engine.h b/src/engine.h index 5efd53b2300c08faa1266d621af78367be4093fb..e5c7106a408ef8a92a8ba1f7f52a68232313412e 100644 --- a/src/engine.h +++ b/src/engine.h @@ -325,6 +325,10 @@ struct engine { /* Need to dump a snapshot ? */ int dump_snapshot; + /* Size of the dump file */ + int logger_size; +#endif + /* How many steps have we done with the same set of tasks? */ int tasks_age; diff --git a/src/runner.c b/src/runner.c index 9dbc1f5fea0d8168489b47d2942fae91a29ad966..5a9e6e26f0d0e5c5591f337b9ef2312c133450e2 100644 --- a/src/runner.c +++ b/src/runner.c @@ -899,7 +899,7 @@ void runner_do_init_grav(struct runner *r, struct cell *c, int timer) { * @param timer Are we timing this ? */ void runner_do_extra_ghost(struct runner *r, struct cell *c, int timer) { - + #ifdef EXTRA_HYDRO_LOOP struct part *restrict parts = c->hydro.parts;