stardis

Perform coupled heat transfer calculations
git clone git://git.meso-star.fr/stardis.git
Log | Files | Refs | README | LICENSE

commit b841193d6d50c2689c95468fbdd1a2867280db0c
parent 2da09cbf39fa8ceacd2c756c28f33c290837b94d
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Tue, 25 Feb 2025 17:47:19 +0100

Rename stardis_mode flags

To help figure out what they mean

Diffstat:
Msrc/stardis-app.c | 12++++++------
Msrc/stardis-args.c | 78+++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc/stardis-args.h.in | 80++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/stardis-compute-probe-boundary.c | 22+++++++++++-----------
Msrc/stardis-compute.c | 89++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/stardis-output.c | 18+++++++++---------
Msrc/stardis-parsing.c | 12++++++------
7 files changed, 161 insertions(+), 150 deletions(-)

diff --git a/src/stardis-app.c b/src/stardis-app.c @@ -321,15 +321,15 @@ stardis_init ERR(str_set(&stardis->dump_model_filename, args->dump_model_filename)); } - if(args->mode & MODE_IR_COMPUTE) { + if(args->mode & MODE_COMPUTE_IMAGE_IR) { ERR(parse_camera(stardis->logger, args->camera, stardis)); } - else if(args->mode & MODE_MEDIUM_COMPUTE) { + else if(args->mode & MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM) { ERR(str_set(&stardis->solve_name, args->medium_name)); } - else if((args->mode & MODE_PROBE_COMPUTE_ON_INTERFACE) - || (args->mode & MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE) - || (args->mode & MODE_PROBE_LIST_COMPUTE_ON_INTERFACE)) { + else if((args->mode & MODE_COMPUTE_PROBE_TEMP_ON_SURF) + || (args->mode & MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF) + || (args->mode & MODE_COMPUTE_LIST_PROBE_TEMP_ON_SURF)) { ERR(darray_probe_boundary_copy (&stardis->probe_boundary_list, &args->probe_boundary_list)); } @@ -494,7 +494,7 @@ stardis_init } /* If computation is on a volume, check medium is known */ - if(args->mode & MODE_MEDIUM_COMPUTE) { + if(args->mode & MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM) { if(!find_medium_by_name(stardis, str_cget(&stardis->solve_name), NULL)) { logger_print(stardis->logger, (is_for_compute ? LOG_ERROR : LOG_WARNING), "Cannot find medium '%s'\n", str_cget(&stardis->solve_name)); diff --git a/src/stardis-args.c b/src/stardis-args.c @@ -112,21 +112,21 @@ mode_option(const int m) if(m & MODE_DUMP_MODEL) { found++; res = 'd'; } if(m & MODE_DUMP_PATHS) { found++; res = 'D'; } if(m & MODE_EXTENDED_RESULTS) { found++; res = 'e'; } - if(m & MODE_FLUX_BOUNDARY_COMPUTE) { found++; res = 'F'; } - if(m & MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE) { found++; res = 'f'; } - if(m & MODE_GREEN) { found++; res = 'g'; } - if(m & MODE_BIN_GREEN) { found++; res = 'G'; } + if(m & MODE_COMPUTE_FLUX_THROUGH_SURF) { found++; res = 'F'; } + if(m & MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF) { found++; res = 'f'; } + if(m & MODE_GREEN_ASCII) { found++; res = 'g'; } + if(m & MODE_GREEN_BIN) { found++; res = 'G'; } if(m & MODE_DUMP_HELP) { found++; res = 'h'; } - if(m & MODE_PROBE_LIST_COMPUTE_ON_INTERFACE) { found++; res = 'L'; } - if(m & MODE_MEDIUM_COMPUTE) { found++; res = 'm'; } - if(m & MODE_PROBE_COMPUTE) { found++; res = 'p'; } - if(m & MODE_PROBE_COMPUTE_ON_INTERFACE) { found++; res = 'P'; } - if(m & MODE_IR_COMPUTE) { found++; res = 'R'; } - if(m & MODE_BOUNDARY_COMPUTE) { found++; res = 's'; } - if(m & MODE_MAP_COMPUTE) { found++; res = 'S'; } + if(m & MODE_COMPUTE_LIST_PROBE_TEMP_ON_SURF) { found++; res = 'L'; } + if(m & MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM) { found++; res = 'm'; } + if(m & MODE_COMPUTE_PROBE_TEMP_ON_VOL) { found++; res = 'p'; } + if(m & MODE_COMPUTE_PROBE_TEMP_ON_SURF) { found++; res = 'P'; } + if(m & MODE_COMPUTE_IMAGE_IR) { found++; res = 'R'; } + if(m & MODE_COMPUTE_TEMP_MEAN_ON_SURF) { found++; res = 's'; } + if(m & MODE_COMPUTE_TEMP_MAP_ON_SURF) { found++; res = 'S'; } if(m & MODE_VERBOSITY) { found++; res = 'V'; } if(m & MODE_DUMP_VERSION) { found++; res = 'v'; } - ASSERT(found == 1); + ASSERT(found == 1);(void)found; return res; } @@ -621,7 +621,7 @@ parse_args res = RES_BAD_ARG; goto error; } - args->mode |= MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE; + args->mode |= MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF; res = allocate_probe_boundary(args, &probe); if(res != RES_OK) goto error; res = parse_position_and_time(optarg, probe->position, probe->time); @@ -632,33 +632,33 @@ parse_args /*case 'F': see 's' */ case 'g': - if(args->mode & MODE_BIN_GREEN) { + if(args->mode & MODE_GREEN_BIN) { res = RES_BAD_ARG; logger_print(args->logger, LOG_ERROR, "Options -%c and -%c are exclusive.\n", - (char)opt, mode_option(MODE_BIN_GREEN)); + (char)opt, mode_option(MODE_GREEN_BIN)); goto error; } - args->mode |= MODE_GREEN; + args->mode |= MODE_GREEN_ASCII; break; case 'G': { char* ptr = strrchr(optarg, ','); if(ptr && ptr != strchr(optarg, ',')) res = RES_BAD_ARG; /* Expecting 1 or 0 ',' */ - if(args->mode & (MODE_BIN_GREEN | MODE_GREEN)) { + if(args->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII)) { res = RES_BAD_ARG; - if(args->mode & MODE_BIN_GREEN) + if(args->mode & MODE_GREEN_BIN) logger_print(args->logger, LOG_ERROR, "Option -%c cannot be used twice.\n", (char)opt); else logger_print(args->logger, LOG_ERROR, "Options -%c and -%c are exclusive.\n", - (char)opt, mode_option(MODE_GREEN)); + (char)opt, mode_option(MODE_GREEN_ASCII)); goto error; } - args->mode |= MODE_BIN_GREEN; + args->mode |= MODE_GREEN_BIN; if(ptr) { args->end_paths_filename = ptr + 1; *ptr = '\0'; @@ -695,7 +695,7 @@ parse_args (char)opt, mode_option(args->mode)); goto error; } - args->mode |= MODE_PROBE_LIST_COMPUTE_ON_INTERFACE; + args->mode |= MODE_COMPUTE_LIST_PROBE_TEMP_ON_SURF; res = parse_probe_boundary_list (optarg, args->logger, args->allocator, &args->probe_boundary_list); if(res != RES_OK) goto error; @@ -710,7 +710,7 @@ parse_args (char)opt, mode_option(args->mode)); goto error; } - args->mode |= MODE_MEDIUM_COMPUTE; + args->mode |= MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM; GET_STR_AND_OPTIONAL_TIME_RANGE(args->medium_name, args->pos_and_time + 3); break; } @@ -765,7 +765,7 @@ parse_args (char)opt, mode_option(args->mode)); goto error; } - args->mode |= MODE_PROBE_COMPUTE; + args->mode |= MODE_COMPUTE_PROBE_TEMP_ON_VOL; GET_POS_AND_OPTIONAL_TIME_RANGE(optarg, args->pos_and_time, optarg); break; @@ -779,7 +779,7 @@ parse_args res = RES_BAD_ARG; goto error; } - args->mode |= MODE_PROBE_COMPUTE_ON_INTERFACE; + args->mode |= MODE_COMPUTE_PROBE_TEMP_ON_SURF; res = allocate_probe_boundary(args, &probe); if(res != RES_OK) goto error; res = parse_probe_boundary(optarg, probe); @@ -795,7 +795,7 @@ parse_args (char)opt, mode_option(args->mode)); goto error; } - args->mode |= MODE_IR_COMPUTE; + args->mode |= MODE_COMPUTE_IMAGE_IR; args->camera = optarg; break; @@ -812,13 +812,13 @@ parse_args } switch (opt) { case 's': - args->mode |= MODE_BOUNDARY_COMPUTE; + args->mode |= MODE_COMPUTE_TEMP_MEAN_ON_SURF; break; case 'S': - args->mode |= MODE_MAP_COMPUTE; + args->mode |= MODE_COMPUTE_TEMP_MAP_ON_SURF; break; case 'F': - args->mode |= MODE_FLUX_BOUNDARY_COMPUTE; + args->mode |= MODE_COMPUTE_FLUX_THROUGH_SURF; break; } GET_STR_AND_OPTIONAL_TIME_RANGE(args->solve_filename, args->pos_and_time + 3); @@ -920,29 +920,29 @@ parse_args goto error; } - if(args->mode & (MODE_BIN_GREEN | MODE_GREEN) + if(args->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII) && !(args->mode & GREEN_COMPATIBLE_MODES)) { print_multiple_modes(buf, sizeof(buf), GREEN_COMPATIBLE_MODES, 0); logger_print(args->logger, LOG_ERROR, "Option -%c can only be used in conjunction with: %s\n", - mode_option(args->mode & (MODE_BIN_GREEN | MODE_GREEN)), buf); + mode_option(args->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII)), buf); res = RES_BAD_ARG; goto error; } - if(args->mode & (MODE_BIN_GREEN | MODE_GREEN) + if(args->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII) && o_used && args->picard_order > 1) { logger_print(args->logger, LOG_ERROR, "Option -%c cannot be used if Picard order is not 1 (here order is %u)\n", - mode_option(args->mode & (MODE_BIN_GREEN | MODE_GREEN)), + mode_option(args->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII)), args->picard_order); res = RES_BAD_ARG; goto error; } - if(args->mode & MODE_IR_COMPUTE && n_used) { + if(args->mode & MODE_COMPUTE_IMAGE_IR && n_used) { logger_print(args->logger, LOG_ERROR, "The -n option has no effect in rendering mode;" " use rendering's SPP suboption instead.\n"); @@ -960,12 +960,12 @@ parse_args mode_option(MODE_DUMP_PATHS), buf); goto error; } - if(args->mode & (MODE_BIN_GREEN | MODE_GREEN)) { + if(args->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII)) { res = RES_BAD_ARG; logger_print(args->logger, LOG_ERROR, "Option -%c cannot be used in conjunction with -%c nor -%c.\n", - mode_option(MODE_DUMP_PATHS), mode_option(MODE_GREEN) - , mode_option(MODE_BIN_GREEN)); + mode_option(MODE_DUMP_PATHS), mode_option(MODE_GREEN_ASCII) + , mode_option(MODE_GREEN_BIN)); goto error; } } @@ -980,12 +980,12 @@ parse_args mode_option(MODE_EXTENDED_RESULTS), buf); goto error; } - if(args->mode & (MODE_BIN_GREEN | MODE_GREEN)) { + if(args->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII)) { res = RES_BAD_ARG; logger_print(args->logger, LOG_ERROR, "Option -%c cannot be used in conjunction with -%c nor -%c.\n", - mode_option(MODE_EXTENDED_RESULTS), mode_option(MODE_GREEN) - , mode_option(MODE_BIN_GREEN)); + mode_option(MODE_EXTENDED_RESULTS), mode_option(MODE_GREEN_ASCII) + , mode_option(MODE_GREEN_BIN)); goto error; } } diff --git a/src/stardis-args.h.in b/src/stardis-args.h.in @@ -49,48 +49,48 @@ enum stardis_mode { MODE_DUMP_PATHS = BIT(1), /* -D */ MODE_DUMP_MODEL = BIT(2), /* -d */ MODE_EXTENDED_RESULTS = BIT(3), /* -e */ - MODE_FLUX_BOUNDARY_COMPUTE = BIT(4), /* -F */ - MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE = BIT(5), /* -f */ - MODE_BIN_GREEN = BIT(6), /* -G */ - MODE_GREEN = BIT(7), /* -g */ + MODE_COMPUTE_FLUX_THROUGH_SURF= BIT(4), /* -F */ + MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF = BIT(5), /* -f */ + MODE_GREEN_BIN = BIT(6), /* -G */ + MODE_GREEN_ASCII = BIT(7), /* -g */ MODE_DUMP_HELP = BIT(8), /* -h */ - MODE_PROBE_LIST_COMPUTE_ON_INTERFACE = BIT(9), /* -L */ - MODE_MEDIUM_COMPUTE = BIT(10), /* -m */ - MODE_PROBE_COMPUTE_ON_INTERFACE = BIT(11), /* -P */ - MODE_PROBE_COMPUTE = BIT(12), /* -p */ - MODE_IR_COMPUTE = BIT(13), /* -R */ - MODE_MAP_COMPUTE = BIT(14), /* -S */ - MODE_BOUNDARY_COMPUTE = BIT(15), /* -s */ + MODE_COMPUTE_LIST_PROBE_TEMP_ON_SURF = BIT(9), /* -L */ + MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM = BIT(10), /* -m */ + MODE_COMPUTE_PROBE_TEMP_ON_SURF = BIT(11), /* -P */ + MODE_COMPUTE_PROBE_TEMP_ON_VOL = BIT(12), /* -p */ + MODE_COMPUTE_IMAGE_IR = BIT(13), /* -R */ + MODE_COMPUTE_TEMP_MAP_ON_SURF = BIT(14), /* -S */ + MODE_COMPUTE_TEMP_MEAN_ON_SURF = BIT(15), /* -s */ MODE_VERBOSITY = BIT(16), /* -V */ MODE_DUMP_VERSION = BIT(17), /* -v */ GREEN_COMPATIBLE_MODES = - MODE_PROBE_COMPUTE - | MODE_PROBE_COMPUTE_ON_INTERFACE - | MODE_MEDIUM_COMPUTE - | MODE_BOUNDARY_COMPUTE, + MODE_COMPUTE_PROBE_TEMP_ON_VOL + | MODE_COMPUTE_PROBE_TEMP_ON_SURF + | MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM + | MODE_COMPUTE_TEMP_MEAN_ON_SURF, SURFACE_COMPUTE_MODES = - MODE_BOUNDARY_COMPUTE - | MODE_FLUX_BOUNDARY_COMPUTE - | MODE_MAP_COMPUTE, + MODE_COMPUTE_TEMP_MEAN_ON_SURF + | MODE_COMPUTE_FLUX_THROUGH_SURF + | MODE_COMPUTE_TEMP_MAP_ON_SURF, EXT_COMPATIBLE_MODES = GREEN_COMPATIBLE_MODES - | MODE_MEDIUM_COMPUTE - | MODE_FLUX_BOUNDARY_COMPUTE - | MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE, + | MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM + | MODE_COMPUTE_FLUX_THROUGH_SURF + | MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF, REGION_COMPUTE_MODES = SURFACE_COMPUTE_MODES - | MODE_MEDIUM_COMPUTE, + | MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM, COMPUTE_MODES = GREEN_COMPATIBLE_MODES - | MODE_IR_COMPUTE + | MODE_COMPUTE_IMAGE_IR | SURFACE_COMPUTE_MODES - | MODE_PROBE_LIST_COMPUTE_ON_INTERFACE - | MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE, + | MODE_COMPUTE_LIST_PROBE_TEMP_ON_SURF + | MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF, EXCLUSIVE_MODES = COMPUTE_MODES, @@ -102,25 +102,25 @@ enum stardis_mode { MODE_DUMP_C_CHUNKS | MODE_DUMP_HELP | MODE_DUMP_VERSION - | MODE_IR_COMPUTE - | MODE_GREEN, + | MODE_COMPUTE_IMAGE_IR + | MODE_GREEN_ASCII, RANDOM_RW_MODES = - MODE_PROBE_COMPUTE - | MODE_PROBE_COMPUTE_ON_INTERFACE - | MODE_PROBE_LIST_COMPUTE_ON_INTERFACE - | MODE_MEDIUM_COMPUTE - | MODE_BOUNDARY_COMPUTE - | MODE_FLUX_BOUNDARY_COMPUTE - | MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE, + MODE_COMPUTE_PROBE_TEMP_ON_VOL + | MODE_COMPUTE_PROBE_TEMP_ON_SURF + | MODE_COMPUTE_LIST_PROBE_TEMP_ON_SURF + | MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM + | MODE_COMPUTE_TEMP_MEAN_ON_SURF + | MODE_COMPUTE_FLUX_THROUGH_SURF + | MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF, CAN_DUMP_PATHS = - MODE_PROBE_COMPUTE | - MODE_IR_COMPUTE | - MODE_MEDIUM_COMPUTE | - MODE_BOUNDARY_COMPUTE | - MODE_MAP_COMPUTE | - MODE_PROBE_COMPUTE_ON_INTERFACE + MODE_COMPUTE_PROBE_TEMP_ON_VOL | + MODE_COMPUTE_IMAGE_IR | + MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM | + MODE_COMPUTE_TEMP_MEAN_ON_SURF | + MODE_COMPUTE_TEMP_MAP_ON_SURF | + MODE_COMPUTE_PROBE_TEMP_ON_SURF }; STATIC_ASSERT(GREEN_COMPATIBLE_MODES == (COMPUTE_MODES & GREEN_COMPATIBLE_MODES), diff --git a/src/stardis-compute-probe-boundary.c b/src/stardis-compute-probe-boundary.c @@ -764,7 +764,7 @@ solve_green } /* Try to open output files to detect errors early */ - if(is_master_process && (stardis->mode & MODE_BIN_GREEN)) { + if(is_master_process && (stardis->mode & MODE_GREEN_BIN)) { const char* green_filename = str_cget(&stardis->bin_green_filename); const char* path_filename = str_cget(&stardis->end_paths_filename); @@ -794,12 +794,12 @@ solve_green if(is_master_process) goto exit; /* Write ASCII Green */ - if(stardis->mode & MODE_GREEN) { + if(stardis->mode & MODE_GREEN_ASCII) { ERR(dump_green_ascii(green, stardis, stdout)); } /* Write binary Green */ - if(stardis->mode & MODE_BIN_GREEN) { + if(stardis->mode & MODE_GREEN_BIN) { ERR(dump_green_bin(green, stardis, fp_green)); if(fp_path) { ERR(dump_paths_end(green, stardis, fp_path)); @@ -919,7 +919,7 @@ setup_solve_probe_boundary_args size_t iprim = SIZE_MAX; unsigned desc_ids[SG3D_PROP_TYPES_COUNT__]; res_T res = RES_OK; - ASSERT(stardis && probe && args && (stardis->mode && MODE_MAP_COMPUTE)); + ASSERT(stardis && probe && args && (stardis->mode && MODE_COMPUTE_TEMP_MAP_ON_SURF)); /* Calculate the probe position on the boundary */ ERR(move_to_boundary(stardis, probe->position, probe->time[0], 1, &iprim, uv)); @@ -971,7 +971,7 @@ compute_single_probe_on_interface ERR(setup_solve_probe_boundary_args(stardis, probe, &args)); /* Run the calculation */ - if(stardis->mode & (MODE_GREEN | MODE_BIN_GREEN)) { + if(stardis->mode & (MODE_GREEN_ASCII | MODE_GREEN_BIN)) { ERR(solve_green(stardis, start, &args)); } else { ERR(solve(stardis, start, &args, output_status)); @@ -1044,26 +1044,26 @@ compute_probe_on_interface(struct stardis* stardis, struct time* start) { res_T res = RES_OK; ASSERT(stardis && start); - ASSERT((stardis->mode & MODE_PROBE_COMPUTE_ON_INTERFACE) - || (stardis->mode & MODE_PROBE_LIST_COMPUTE_ON_INTERFACE) - || (stardis->mode & MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE)); + ASSERT((stardis->mode & MODE_COMPUTE_PROBE_TEMP_ON_SURF) + || (stardis->mode & MODE_COMPUTE_LIST_PROBE_TEMP_ON_SURF) + || (stardis->mode & MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF)); /* Multiple probes */ - if(stardis->mode & MODE_PROBE_LIST_COMPUTE_ON_INTERFACE) { + if(stardis->mode & MODE_COMPUTE_LIST_PROBE_TEMP_ON_SURF) { ASSERT(darray_probe_boundary_size_get(&stardis->probe_boundary_list) > 1); res = compute_multiple_probes_on_interface(stardis, start); if(res != RES_OK) goto error; /* Single probe */ - } else if(stardis->mode & MODE_PROBE_COMPUTE_ON_INTERFACE) { + } else if(stardis->mode & MODE_COMPUTE_PROBE_TEMP_ON_SURF) { const struct stardis_probe_boundary* probe = NULL; ASSERT(darray_probe_boundary_size_get(&stardis->probe_boundary_list) == 1); probe = darray_probe_boundary_cdata_get(&stardis->probe_boundary_list); res = compute_single_probe_on_interface(stardis, start, probe); if(res != RES_OK) goto error; - } else if(stardis->mode & MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE) { + } else if(stardis->mode & MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF) { const struct stardis_probe_boundary* probe = NULL; ASSERT(darray_probe_boundary_size_get(&stardis->probe_boundary_list) == 1); diff --git a/src/stardis-compute.c b/src/stardis-compute.c @@ -348,7 +348,7 @@ compute_probe(struct stardis* stardis, struct time* start) FILE* stream_p = NULL; struct time compute_start, compute_end; - ASSERT(stardis && start && (stardis->mode & MODE_PROBE_COMPUTE)); + ASSERT(stardis && start && (stardis->mode & MODE_COMPUTE_PROBE_TEMP_ON_SURF)); ERR(check_probe_conform_to_type(stardis, stardis->probe, stardis->time_range[0], &iprim, uv)); @@ -361,12 +361,12 @@ compute_probe(struct stardis* stardis, struct time* start) /* Input random state? */ READ_RANDOM_STATE(&stardis->rndgen_state_in_filename); - if(stardis->mode & (MODE_BIN_GREEN | MODE_GREEN)) { + if(stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII)) { if(stardis->mpi_initialized && stardis->mpi_rank != 0) { ERR(sdis_solve_probe_green_function(stardis->sdis_scn, &args, &green)); } else { /* Try to open output files to detect errors early */ - if(stardis->mode & MODE_BIN_GREEN) { + if(stardis->mode & MODE_GREEN_BIN) { ASSERT(!str_is_empty(&stardis->bin_green_filename)); stream_g = fopen(str_cget(&stardis->bin_green_filename), "wb"); if(!stream_g) { @@ -393,7 +393,7 @@ compute_probe(struct stardis* stardis, struct time* start) time_current(&compute_start); ERR(sdis_solve_probe_green_function(stardis->sdis_scn, &args, &green)); time_current(&compute_end); - if(stardis->mode & MODE_BIN_GREEN) { + if(stardis->mode & MODE_GREEN_BIN) { struct time output_end; ERR(dump_green_bin(green, stardis, stream_g)); if(stream_p) { @@ -403,7 +403,7 @@ compute_probe(struct stardis* stardis, struct time* start) ERR(print_computation_time(NULL, stardis, start, &compute_start, &compute_end, &output_end)); } - if(stardis->mode & MODE_GREEN) { + if(stardis->mode & MODE_GREEN_ASCII) { ERR(dump_green_ascii(green, stardis, stdout)); } } @@ -541,8 +541,8 @@ compute_camera(struct stardis* stardis, struct time* start) struct time compute_start, compute_end, output_end; ASSERT(stardis && start - && !(stardis->mode & (MODE_BIN_GREEN | MODE_GREEN)) - && (stardis->mode & MODE_IR_COMPUTE)); + && !(stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII)) + && (stardis->mode & MODE_COMPUTE_IMAGE_IR)); width = (size_t)stardis->camera.img_width; height = (size_t)stardis->camera.img_height; @@ -639,7 +639,7 @@ compute_medium(struct stardis* stardis, struct time* start) FILE* stream_p = NULL; struct time compute_start, compute_end; - ASSERT(stardis && start && (stardis->mode & MODE_MEDIUM_COMPUTE)); + ASSERT(stardis && start && (stardis->mode & MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM)); /* Find medium */ medium = find_medium_by_name(stardis, str_cget(&stardis->solve_name), NULL); @@ -659,12 +659,12 @@ compute_medium(struct stardis* stardis, struct time* start) /* Input random state? */ READ_RANDOM_STATE(&stardis->rndgen_state_in_filename); - if(stardis->mode & (MODE_BIN_GREEN | MODE_GREEN)) { + if(stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII)) { if(stardis->mpi_initialized && stardis->mpi_rank != 0) { ERR(sdis_solve_medium_green_function(stardis->sdis_scn, &args, &green)); } else { /* Try to open output files to detect errors early */ - if(stardis->mode & MODE_BIN_GREEN) { + if(stardis->mode & MODE_GREEN_BIN) { ASSERT(!str_is_empty(&stardis->bin_green_filename)); stream_g = fopen(str_cget(&stardis->bin_green_filename), "wb"); if(!stream_g) { @@ -691,7 +691,7 @@ compute_medium(struct stardis* stardis, struct time* start) time_current(&compute_start); ERR(sdis_solve_medium_green_function(stardis->sdis_scn, &args, &green)); time_current(&compute_end); - if(stardis->mode & MODE_BIN_GREEN) { + if(stardis->mode & MODE_GREEN_BIN) { struct time output_end; ASSERT(!str_is_empty(&stardis->bin_green_filename)); ERR(dump_green_bin(green, stardis, stream_g)); @@ -702,7 +702,7 @@ compute_medium(struct stardis* stardis, struct time* start) ERR(print_computation_time(NULL, stardis, start, &compute_start, &compute_end, &output_end)); } - if(stardis->mode & MODE_GREEN) { + if(stardis->mode & MODE_GREEN_ASCII) { ERR(dump_green_ascii(green, stardis, stdout)); } } @@ -807,7 +807,7 @@ compute_boundary(struct stardis* stardis, struct time* start) FILE* stream_p = NULL; struct time compute_start, compute_end; - ASSERT(stardis && start && (stardis->mode & MODE_BOUNDARY_COMPUTE)); + ASSERT(stardis && start && (stardis->mode & MODE_COMPUTE_TEMP_MEAN_ON_SURF)); args.nrealisations = stardis->samples; args.primitives @@ -821,12 +821,12 @@ compute_boundary(struct stardis* stardis, struct time* start) /* Input random state? */ READ_RANDOM_STATE(&stardis->rndgen_state_in_filename); - if(stardis->mode & (MODE_BIN_GREEN | MODE_GREEN)) { + if(stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII)) { if(stardis->mpi_initialized && stardis->mpi_rank != 0) { ERR(sdis_solve_boundary_green_function(stardis->sdis_scn, &args, &green)); } else { /* Try to open output files to detect errors early */ - if(stardis->mode & MODE_BIN_GREEN) { + if(stardis->mode & MODE_GREEN_BIN) { ASSERT(!str_is_empty(&stardis->bin_green_filename)); stream_g = fopen(str_cget(&stardis->bin_green_filename), "wb"); if(!stream_g) { @@ -853,7 +853,7 @@ compute_boundary(struct stardis* stardis, struct time* start) time_current(&compute_start); ERR(sdis_solve_boundary_green_function(stardis->sdis_scn, &args, &green)); time_current(&compute_end); - if(stardis->mode & MODE_BIN_GREEN) { + if(stardis->mode & MODE_GREEN_BIN) { struct time output_end; ERR(dump_green_bin(green, stardis, stream_g)); if(stream_p) { @@ -863,7 +863,7 @@ compute_boundary(struct stardis* stardis, struct time* start) ERR(print_computation_time(NULL, stardis, start, &compute_start, &compute_end, &output_end)); } - if(stardis->mode & MODE_GREEN) { + if(stardis->mode & MODE_GREEN_ASCII) { ERR(dump_green_ascii(green, stardis, stdout)); } } @@ -918,7 +918,7 @@ compute_flux_boundary(struct stardis* stardis, struct time* start) FILE* stream_r = NULL; struct time compute_start, compute_end; - ASSERT(stardis && start && (stardis->mode & MODE_FLUX_BOUNDARY_COMPUTE)); + ASSERT(stardis && start && (stardis->mode & MODE_COMPUTE_FLUX_THROUGH_SURF)); args.nrealisations = stardis->samples; args.primitives @@ -977,8 +977,8 @@ compute_map(struct stardis* stardis, struct time* start) (void)start; ASSERT(stardis && start - && (stardis->mode & MODE_MAP_COMPUTE) - && !(stardis->mode & (MODE_BIN_GREEN | MODE_GREEN))); + && (stardis->mode & MODE_COMPUTE_TEMP_MAP_ON_SURF) + && !(stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII))); darray_estimators_init(stardis->allocator, &estimators); estimators_initialized = 1; @@ -1135,25 +1135,36 @@ stardis_compute ASSERT(stardis && start && (stardis->mode & COMPUTE_MODES)); /* Compute */ - if(stardis->mode & MODE_PROBE_COMPUTE) - ERR(compute_probe(stardis, start)); - else if(stardis->mode & MODE_PROBE_COMPUTE_ON_INTERFACE) - ERR(compute_probe_on_interface(stardis, start)); - else if(stardis->mode & MODE_PROBE_LIST_COMPUTE_ON_INTERFACE) - ERR(compute_probe_on_interface(stardis, start)); - else if(stardis->mode & MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE) - ERR(compute_probe_on_interface(stardis, start)); - else if(stardis->mode & MODE_IR_COMPUTE) - ERR(compute_camera(stardis, start)); - else if(stardis->mode & MODE_MEDIUM_COMPUTE) - ERR(compute_medium(stardis, start)); - else if(stardis->mode & MODE_BOUNDARY_COMPUTE) - ERR(compute_boundary(stardis, start)); - else if(stardis->mode & MODE_FLUX_BOUNDARY_COMPUTE) - ERR(compute_flux_boundary(stardis, start)); - else if(stardis->mode & MODE_MAP_COMPUTE) - ERR(compute_map(stardis, start)); - else FATAL("Unknown mode.\n"); + switch(stardis->mode) { + case MODE_COMPUTE_PROBE_TEMP_ON_VOL: + ERR(compute_probe(stardis, start)); + break; + case MODE_COMPUTE_PROBE_TEMP_ON_SURF: + ERR(compute_probe_on_interface(stardis, start)); + break; + case MODE_COMPUTE_LIST_PROBE_TEMP_ON_SURF: + ERR(compute_probe_on_interface(stardis, start)); + break; + case MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF: + ERR(compute_probe_on_interface(stardis, start)); + break; + case MODE_COMPUTE_IMAGE_IR: + ERR(compute_camera(stardis, start)); + break; + case MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM: + ERR(compute_medium(stardis, start)); + break; + case MODE_COMPUTE_TEMP_MEAN_ON_SURF: + ERR(compute_boundary(stardis, start)); + break; + case MODE_COMPUTE_FLUX_THROUGH_SURF: + ERR(compute_flux_boundary(stardis, start)); + break; + case MODE_COMPUTE_TEMP_MAP_ON_SURF: + ERR(compute_map(stardis, start)); + break; + default: FATAL("Unknown mode.\n"); + } end: return res; diff --git a/src/stardis-output.c b/src/stardis-output.c @@ -1632,7 +1632,7 @@ print_single_MC_result /* Print the results */ switch (stardis->mode & COMPUTE_MODES) { - case MODE_PROBE_COMPUTE: + case MODE_COMPUTE_PROBE_TEMP_ON_VOL: if(stardis->mode & MODE_EXTENDED_RESULTS) { if(stardis->time_range[0] == stardis->time_range[1]) fprintf(stream, "Temperature at [%g, %g, %g] at t=%g = %g K +/- %g\n", @@ -1649,14 +1649,14 @@ print_single_MC_result else fprintf(stream, "%g %g %lu %lu\n", result.E, result.SE, nfailures, nsamples); break; - case MODE_PROBE_COMPUTE_ON_INTERFACE: { + case MODE_COMPUTE_PROBE_TEMP_ON_SURF: { const struct stardis_probe_boundary* probe = NULL; probe = darray_probe_boundary_cdata_get(&stardis->probe_boundary_list); ERR(print_single_MC_result_probe_boundary (stardis, probe, estimator, stream)); break; } - case MODE_MEDIUM_COMPUTE: + case MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM: if(stardis->mode & MODE_EXTENDED_RESULTS) { if(stardis->time_range[0] == stardis->time_range[1]) fprintf(stream, "Temperature in medium '%s' at t=%g = %g K +/- %g\n", @@ -1673,7 +1673,7 @@ print_single_MC_result else fprintf(stream, "%g %g %lu %lu\n", result.E, result.SE, nfailures, nsamples); break; - case MODE_BOUNDARY_COMPUTE: + case MODE_COMPUTE_TEMP_MEAN_ON_SURF: if(stardis->mode & MODE_EXTENDED_RESULTS) { if(stardis->time_range[0] == stardis->time_range[1]) fprintf(stream, "Temperature at boundary '%s' at t=%g = %g K +/- %g\n", @@ -1691,7 +1691,7 @@ print_single_MC_result result.E, result.SE, nfailures, nsamples); break; - case MODE_PROBE_COMPUTE_FLUX_ON_INTERFACE: + case MODE_COMPUTE_PROBE_FLUX_DNSTY_ON_SURF: { enum sdis_estimator_type type; ERR(sdis_estimator_get_type(estimator, &type)); @@ -1780,7 +1780,7 @@ print_single_MC_result break; } - case MODE_FLUX_BOUNDARY_COMPUTE: + case MODE_COMPUTE_FLUX_THROUGH_SURF: { enum sdis_estimator_type type; ERR(sdis_estimator_get_type(estimator, &type)); @@ -1898,8 +1898,8 @@ print_single_MC_result_probe_boundary res_T res = RES_OK; ASSERT(stardis && probe && estimator); - ASSERT((stardis->mode & MODE_PROBE_COMPUTE_ON_INTERFACE) - || (stardis->mode & MODE_PROBE_LIST_COMPUTE_ON_INTERFACE)); + ASSERT((stardis->mode & MODE_COMPUTE_PROBE_TEMP_ON_SURF) + || (stardis->mode & MODE_COMPUTE_LIST_PROBE_TEMP_ON_SURF)); /* Only master prints or reads estimators */ ASSERT(!stardis->mpi_initialized || stardis->mpi_rank == 0); @@ -2095,7 +2095,7 @@ dump_compute_region_at_the_end_of_vtk struct sdis_medium* medium; const struct description* descriptions; unsigned medium_id; - ASSERT(stardis->mode & MODE_MEDIUM_COMPUTE); + ASSERT(stardis->mode & MODE_COMPUTE_TEMP_MEAN_IN_MEDIUM); medium = find_medium_by_name (stardis, str_cget(&stardis->solve_name), &medium_id); ASSERT(medium != NULL); (void)medium; diff --git a/src/stardis-parsing.c b/src/stardis-parsing.c @@ -458,7 +458,7 @@ process_h fluid->imposed_temperature = h_boundary->imposed_temperature; fluid->t0 = stardis->initial_time; fluid->is_outside = 1; - fluid->is_green = stardis->mode & (MODE_BIN_GREEN | MODE_GREEN); + fluid->is_green = stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII); ERR(create_solver_fluid(stardis, fluid)); logger_print(stardis->logger, LOG_OUTPUT, "External fluid created: T=%g (it is medium %u)\n", @@ -577,7 +577,7 @@ process_hf fluid->imposed_temperature = hf_boundary->imposed_temperature; fluid->t0 = stardis->initial_time; fluid->is_outside = 1; - fluid->is_green = stardis->mode & (MODE_BIN_GREEN | MODE_GREEN); + fluid->is_green = stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII); ERR(create_solver_fluid(stardis, fluid)); logger_print(stardis->logger, LOG_OUTPUT, "External fluid created: T=%g (it is medium %u)\n", @@ -1663,7 +1663,7 @@ process_solid solid = desc->d.solid; desc->type = DESC_MAT_SOLID; solid->solid_id = allocate_stardis_medium_id(stardis); - solid->is_green = stardis->mode & (MODE_BIN_GREEN | MODE_GREEN); + solid->is_green = stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII); solid->t0 = stardis->initial_time; solid->is_outside = 0; ASSERT(sz <= UINT_MAX); @@ -1851,7 +1851,7 @@ process_fluid desc->type = DESC_MAT_FLUID; fluid->t0 = stardis->initial_time; fluid->fluid_id = allocate_stardis_medium_id(stardis); - fluid->is_green = stardis->mode & (MODE_BIN_GREEN | MODE_GREEN); + fluid->is_green = stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII); ASSERT(sz <= UINT_MAX); fluid->desc_id = (unsigned)sz; @@ -2411,7 +2411,7 @@ get_dummy_solid_id dummy->solid_id = dummies->dummy_solid_id; dummy->t0 = stardis->initial_time; dummy->is_outside = 1; - dummy->is_green = stardis->mode & (MODE_BIN_GREEN | MODE_GREEN); + dummy->is_green = stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII); create_solver_solid(stardis, dummy); dummies->dummy_solid = darray_media_ptr_data_get(&stardis->media)[dummies->dummy_solid_id]; @@ -2445,7 +2445,7 @@ get_dummy_fluid_id dummy->fluid_id = dummies->dummy_fluid_id; dummy->t0 = stardis->initial_time; dummy->is_outside = 1; - dummy->is_green = stardis->mode & (MODE_BIN_GREEN | MODE_GREEN); + dummy->is_green = stardis->mode & (MODE_GREEN_BIN | MODE_GREEN_ASCII); create_solver_fluid(stardis, dummy); dummies->dummy_fluid = darray_media_ptr_data_get(&stardis->media)[dummies->dummy_fluid_id];