From cd1d768b5dbdca6ce714bcb05ef55ab79c983686 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 1 Mar 2025 15:30:53 -0500 Subject: add intercooler efficiency input --- engine.h | 1 + main.c | 21 +++++++++++++++++++++ ui.c | 5 +++++ ui.h | 3 +++ 4 files changed, 30 insertions(+) diff --git a/engine.h b/engine.h index cb77a35..3922ab8 100644 --- a/engine.h +++ b/engine.h @@ -6,6 +6,7 @@ typedef struct { Pressure map; Fraction ve; Fraction comp_efficiency; + Fraction intercooler_efficiency; } Engine; void init_engine(Engine *e); diff --git a/main.c b/main.c index aa5c161..1e73fb1 100644 --- a/main.c +++ b/main.c @@ -63,6 +63,7 @@ static void rpm_row(mu_Context *ctx, UI *ui); static void map_row(mu_Context *ctx, UI *ui); static void ve_row(mu_Context *ctx, UI *ui); static void comp_efficiency_row(mu_Context *ctx, UI *ui); +static void intercooler_efficiency_row(mu_Context *ctx, UI *ui); static void dup_del_row(mu_Context *ctx, UI *ui); static void volume_flow_rate_row(mu_Context *ctx, UI *ui); static void hpad(mu_Context *ctx, int w); @@ -141,6 +142,7 @@ main_window(mu_Context *ctx, UI *ui) { map_row(ctx, ui); ve_row(ctx, ui); comp_efficiency_row(ctx, ui); + intercooler_efficiency_row(ctx, ui); dup_del_row(ctx, ui); vpad(ctx, 0); @@ -243,6 +245,7 @@ ve_row(mu_Context *ctx, UI *ui) { } } } + static void comp_efficiency_row(mu_Context *ctx, UI *ui) { int i; @@ -261,6 +264,24 @@ comp_efficiency_row(mu_Context *ctx, UI *ui) { } } +static void +intercooler_efficiency_row(mu_Context *ctx, UI *ui) { + int i; + + mu_layout_row(ctx, 0, NULL, 0); + mu_layout_width(ctx, LABEL_WIDTH); + mu_label(ctx, "Intercooler efficiency:"); + mu_layout_width(ctx, UNIT_WIDTH); + mu_label(ctx, "(%)"); + mu_layout_width(ctx, FIELD_WIDTH); + for (i = 0; i < ui->npoints; i++) { + if (w_field(ctx, &ui->intercooler_efficiency[i])) { + set_intercooler_efficiency(ui, i); + set_volume_flow_rate(ui, i); + } + } +} + static void dup_del_row(mu_Context *ctx, UI *ui) { int i; diff --git a/ui.c b/ui.c index d1b4bb2..fc6427a 100644 --- a/ui.c +++ b/ui.c @@ -193,6 +193,11 @@ set_comp_efficiency(UI *ui, int idx) { ui->points[idx].comp_efficiency = percent(ui->comp_efficiency[idx].value); } +void +set_intercooler_efficiency(UI *ui, int idx) { + ui->points[idx].intercooler_efficiency = percent(ui->intercooler_efficiency[idx].value); +} + void set_volume_flow_rate(UI *ui, int idx) { int unit_idx; diff --git a/ui.h b/ui.h index db95f25..b656f93 100644 --- a/ui.h +++ b/ui.h @@ -21,6 +21,8 @@ typedef struct { w_Field comp_efficiency[MAX_POINTS]; + w_Field intercooler_efficiency[MAX_POINTS]; + Engine points[MAX_POINTS]; w_Select volume_flow_rate_unit; @@ -38,6 +40,7 @@ void set_map(UI *ui, int idx); void set_map_unit(UI *ui); void set_ve(UI *ui, int idx); void set_comp_efficiency(UI *ui, int idx); +void set_intercooler_efficiency(UI *ui, int idx); void set_volume_flow_rate(UI *ui, int idx); void set_all_volume_flow_rate(UI *ui); void insert_point(UI *ui, int idx); -- cgit v1.2.3