diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2025-03-01 15:25:24 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2025-03-01 15:25:24 -0500 |
| commit | 331a6e4e536c329371ad23650876364d87fd9561 (patch) | |
| tree | 2faf0eb2e4c062969ca189bc945863cafb6dab5e | |
| parent | e7d1b40c7d0c2325eab045131d63d0d4860f88de (diff) | |
| download | volute-331a6e4e536c329371ad23650876364d87fd9561.zip | |
add compressor efficiency input
| -rw-r--r-- | engine.h | 1 | ||||
| -rw-r--r-- | main.c | 19 | ||||
| -rw-r--r-- | ui.c | 5 | ||||
| -rw-r--r-- | ui.h | 3 |
4 files changed, 28 insertions, 0 deletions
@@ -5,6 +5,7 @@ typedef struct { AngularSpeed rpm; Pressure map; Fraction ve; + Fraction comp_efficiency; } Engine; void init_engine(Engine *e); @@ -62,6 +62,7 @@ static void ambient_pressure_row(mu_Context *ctx, UI *ui); 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 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); @@ -139,6 +140,7 @@ main_window(mu_Context *ctx, UI *ui) { rpm_row(ctx, ui); map_row(ctx, ui); ve_row(ctx, ui); + comp_efficiency_row(ctx, ui); dup_del_row(ctx, ui); vpad(ctx, 0); @@ -241,6 +243,23 @@ ve_row(mu_Context *ctx, UI *ui) { } } } +static void +comp_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, "Compressor 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->comp_efficiency[i])) { + set_comp_efficiency(ui, i); + set_volume_flow_rate(ui, i); + } + } +} static void dup_del_row(mu_Context *ctx, UI *ui) { @@ -189,6 +189,11 @@ set_ve(UI *ui, int idx) { } void +set_comp_efficiency(UI *ui, int idx) { + ui->points[idx].comp_efficiency = percent(ui->comp_efficiency[idx].value); +} + +void set_volume_flow_rate(UI *ui, int idx) { int unit_idx; VolumeFlowRateReader convert; @@ -19,6 +19,8 @@ typedef struct { w_Field ve[MAX_POINTS]; + w_Field comp_efficiency[MAX_POINTS]; + Engine points[MAX_POINTS]; w_Select volume_flow_rate_unit; @@ -35,6 +37,7 @@ void set_ambient_pressure_unit(UI *ui); 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_volume_flow_rate(UI *ui, int idx); void set_all_volume_flow_rate(UI *ui); void insert_point(UI *ui, int idx); |