From 6afe1cb06ac716e6099551d6457c5cdcabdcd99c Mon Sep 17 00:00:00 2001 From: Andreas Gattringer <andreas.gattringer@univie.ac.at> Date: Tue, 25 Jul 2023 15:11:26 +0200 Subject: [PATCH] butterflies: use correct suitability threshold --- src/modules/butterflies/butterflies_generations.c | 5 ++--- src/modules/butterflies/butterflies_populations.c | 6 ++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/modules/butterflies/butterflies_generations.c b/src/modules/butterflies/butterflies_generations.c index 3e0ab66..f0fd931 100644 --- a/src/modules/butterflies/butterflies_generations.c +++ b/src/modules/butterflies/butterflies_generations.c @@ -22,7 +22,7 @@ void bf_area_generation_update(struct cats_grid *grid, struct cats_thread_info * const cats_dt_coord end_col = ts->area.end_col; struct statistics *stats = &ts->stats[grid->id]; - const cats_dt_rates ot = grid->param.OT; + const cats_dt_rates suit_ts = module_conf->butterfly_generations.suitability_cutoff; const int64_t egg_cells_id = module_conf->stat_ids[BF_CELLS_WITH_EGGS]; const int64_t egg_cells_removed_id = module_conf->stat_ids[BF_CELLS_WITH_EGGS]; @@ -32,13 +32,12 @@ void bf_area_generation_update(struct cats_grid *grid, struct cats_thread_info * for (cats_dt_coord row = start_row; row < end_row; row++) { for (cats_dt_coord col = start_col; col < end_col; col++) { - if (get_suitability(grid, row, col) < ot) + if (get_suitability(grid, row, col) < suit_ts) { if (data->eggs[row][col] > 0) cells_with_eggs_removed += 1; data->eggs[row][col] = 0.0f; data->generations[row][col] = 0.0f; set_population_ignore_cc(grid, row, col, 0); - continue; } diff --git a/src/modules/butterflies/butterflies_populations.c b/src/modules/butterflies/butterflies_populations.c index 07c3c6a..161e5d5 100644 --- a/src/modules/butterflies/butterflies_populations.c +++ b/src/modules/butterflies/butterflies_populations.c @@ -107,6 +107,7 @@ void bf_cell_maturation(struct cats_grid *grid, struct cats_thread_info *ts, cat const int module_id = CATS_MODULE_ID; struct grid_data_butterflies *data = grid->grid_modules[module_id].module_data; + if (data->eggs[row][col] == 0) return; if (data->eggs[row][col] < 0) { log_message(LOG_ERROR, "Number of eggs < 0: row %d col %d: %f", row, col, data->eggs[row][col]); @@ -156,8 +157,9 @@ void bf_cell_maturation(struct cats_grid *grid, struct cats_thread_info *ts, cat cats_dt_environment suit = get_suitability(grid, row, col); cats_dt_rates reproduction_rate = calculate_rate(&module_conf->reproduction_rate, NAN, &grid->param, grid, row, col, NULL); - if (suit < grid->param.OT && reproduction_rate > 0) { - log_message(LOG_ERROR, "Suitability %f under OT %Lf, but adults per female = %Lf", suit, grid->param.OT, + cats_dt_rates suit_ts = module_conf->reproduction_rate.suitability_cutoff; + if (suit_ts < grid->param.OT && reproduction_rate > 0) { + log_message(LOG_ERROR, "Suitability %f under threshold %Lf, but adults per female = %Lf", suit, suit_ts, reproduction_rate); exit_cats(EXIT_FAILURE); } -- GitLab