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:
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