Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • bdc/cats
1 result
Select Git revision
Show changes
Commits on Source (5)
......@@ -27,6 +27,7 @@
#include "configuration/configuration.h"
void debug_vital_rates(struct cats_configuration *conf, const struct program_options *command_line_options);
struct cats_environment *minimal_suitability_environment(void);
struct cats_grid *minimal_grid(struct cats_configuration *conf, struct cats_environment *env);
#endif //CATS_DEBUG_VITAL_RATES_H
......@@ -319,15 +319,14 @@ enum action_status bf_action_overlay_update(struct cats_grid *grid, struct cats_
}
enum action_status bf_action_generation_finish(struct cats_grid *grid, struct cats_configuration *conf)
{
const int module_id = CATS_MODULE_ID;
struct grid_data_butterflies *data = grid->grid_modules[module_id].module_data;
threaded_action(&bf_area_kill_adults, grid, conf, TS_DEFAULT);
data->generation_current--;
assert(data->generation_current >= 0);
// struct conf_data_butterflies *data = CATS_MODULE_DATA;
......
......@@ -72,7 +72,8 @@ void bf_add_actions(struct cats_configuration *conf)
bf_add_generation_action(conf, bf_action_stats_gather, "gather stats", generation);
bf_add_generation_action(conf, bf_action_dispersal, "dispersal", generation);
bf_add_generation_action(conf, bf_action_save_eggs_grid, "output eggs", generation);
bf_add_generation_action(conf, bf_action_generation_finish, "finish generation", generation);
bf_add_generation_action(conf, bf_action_stats_write, "write stats", generation);
bf_add_generation_action(conf, bf_action_generation_finish, "finish generation", generation);
}
}
\ No newline at end of file
......@@ -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;
}
......
......@@ -60,9 +60,6 @@ void bf_initial_population_adjustment(struct cats_configuration *conf, struct ca
printf("DEBUG::row %d col %d, suit %Lf, cc multi %Lf, cc raw %Lf, cc %d\n", row, col, suit, multiplier, cc_raw, cc);
}
}
#endif
increase_initial_population_to_cc(grid, conf);
......
......@@ -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);
}
......
......@@ -12,6 +12,7 @@
#include "temporal/phase_names.h"
#include "temporal/years.h"
const char *bf_get_stats_field_name(enum butterfly_stats which)
{
switch (which) {
......@@ -25,8 +26,6 @@ const char *bf_get_stats_field_name(enum butterfly_stats which)
return "unpopulated_unfit";
case BF_STAT_EXCLUDED:
return "excluded";
case BF_STAT_GENERATION_ACTIVE:
return "generation_active";
case BF_POPULATED_AT_DISPERSAL:
return "populated_at_dispersal";
......@@ -51,6 +50,7 @@ const char *bf_get_stats_field_name(enum butterfly_stats which)
exit_cats(EXIT_FAILURE);
}
struct string_array *bf_assemble_stats(struct cats_configuration *conf, struct cats_grid *grid, bool header)
{
struct conf_data_butterflies *module_conf = CATS_MODULE_DATA;
......@@ -125,6 +125,7 @@ void bf_stats_write(struct cats_configuration *conf, struct cats_grid *grid)
free_string_array(&data);
}
void bf_area_stats_gather(struct cats_grid *grid, struct cats_thread_info *ts)
{
struct conf_data_butterflies *module_conf = CATS_MODULE_DATA;
......@@ -138,7 +139,6 @@ void bf_area_stats_gather(struct cats_grid *grid, struct cats_thread_info *ts)
const int64_t id_unpop_unfit = module_conf->stat_ids[BF_STAT_UNPOPULATED_UNFIT];
const int32_t grid_id = grid->id;
//const cats_dt_rates zt = grid->param.ZT;
const cats_dt_rates ot = grid->param.OT;
struct statistics *stats = &ts->stats[grid_id];
......
......@@ -13,7 +13,6 @@ enum butterfly_stats {
BF_STAT_UNPOPULATED_FIT,
BF_STAT_UNPOPULATED_UNFIT,
BF_STAT_EXCLUDED,
BF_STAT_GENERATION_ACTIVE,
BF_OUTPUT_STAT_MAX,
BF_POPULATED_AT_DISPERSAL,
BF_RANDOM_WALK_COUNT,
......