stardis

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

commit 310dd9271b28781a1f0f87ddc9cb2484fbcd601e
parent 7e46ab5920805708ffc082e260137cf5e06ffa88
Author: Benjamin Piaud <benjamin.piaud@meso-star.com>
Date:   Thu, 11 Feb 2021 17:20:18 +0100

Work in progress, parsing probe interface

Diffstat:
Msrc/stardis-app.c | 10++++++++++
Msrc/stardis-compute.c | 10++++++++++
Msrc/stardis-parsing.c | 23+++++++++++++----------
3 files changed, 33 insertions(+), 10 deletions(-)

diff --git a/src/stardis-app.c b/src/stardis-app.c @@ -261,6 +261,9 @@ stardis_init else if(args->mode & MODE_MEDIUM_COMPUTE) { ERR(str_set(&stardis->solve_name, args->medium_name)); } + else if(args->mode & MODE_PROBE_COMPUTE_ON_INTERFACE && args->medium_name) { + ERR(str_set(&stardis->solve_name, args->medium_name)); + } else if(args->mode & SURFACE_COMPUTE_MODES) { ERR(str_set(&stardis->solve_name, args->solve_filename)); } @@ -576,6 +579,13 @@ validate_properties goto end; } break; + case DESC_SOLID_SOLID_CONNECT: + if(solid_count != 2) { + /*if(soli_count == 1 && fluid_count == 1)*/ + /**properties_conflict_status = SSCONNECT_BETWEEN_SOLID_AND_FLUID;*/ + goto end; + } + break; default: FATAL("error:" STR(__FILE__) ":" STR(__LINE__)": Invalid type.\n"); } diff --git a/src/stardis-compute.c b/src/stardis-compute.c @@ -461,6 +461,16 @@ compute_probe_on_interface(struct stardis* stardis, struct time* start) ERR(check_probe_conform_to_type(stardis, 1, stardis->probe, &iprim, uv)); ASSERT(iprim != SIZE_MAX); + /* Find medium */ + medium = find_medium_by_name(stardis, &stardis->solve_name, NULL); + if(medium == NULL) { /* Not found */ + logger_print(stardis->logger, LOG_ERROR, + "Cannot solve on this side '%s' (unknown medium)\n", + str_cget(&stardis->solve_name)); + res = RES_BAD_ARG; + goto error; + } + args.nrealisations = stardis->samples; args.iprim = iprim; d3_set(args.uv, uv); diff --git a/src/stardis-parsing.c b/src/stardis-parsing.c @@ -756,17 +756,20 @@ parse_args break; case 'P': - if(args->mode & EXCLUSIVE_MODES) { - res = RES_BAD_ARG; - logger_print(args->logger, LOG_ERROR, - "Options -%c and -%c are exclusive.\n", - (char)opt, mode_option(args->mode)); - goto error; + { + static const char toto[] = "toto"; + if(args->mode & EXCLUSIVE_MODES) { + res = RES_BAD_ARG; + logger_print(args->logger, LOG_ERROR, + "Options -%c and -%c are exclusive.\n", + (char)opt, mode_option(args->mode)); + goto error; + } + args->mode |= MODE_PROBE_COMPUTE_ON_INTERFACE; + GET_POS_AND_OPTIONAL_TIME_RANGE_AND_OPTIONAL_MEDIUM(args->pos_and_time); + args->medium_name = toto; + break; } - args->mode |= MODE_PROBE_COMPUTE_ON_INTERFACE; - GET_POS_AND_OPTIONAL_TIME_RANGE(args->pos_and_time); - break; - case 'r': res = cstr_to_double(optarg, &args->ref_temp); if(res != RES_OK