aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2025-03-01 18:39:12 -0500
committerSam Anthony <sam@samanthony.xyz>2025-03-01 18:39:12 -0500
commit29a720e61568d6a9b215e804bb4ef999d9f7a7a5 (patch)
tree6b90be9fb381df58b94600bdad849a412d0298ae
parent6a55e6155f4c6eae2bb3b687649875d9b1f529b7 (diff)
downloadvolute-29a720e61568d6a9b215e804bb4ef999d9f7a7a5.zip
compute(): recompute outputs
-rw-r--r--main.c20
-rw-r--r--ui.c30
-rw-r--r--ui.h4
3 files changed, 30 insertions, 24 deletions
diff --git a/main.c b/main.c
index cfcb9fb..8242853 100644
--- a/main.c
+++ b/main.c
@@ -160,7 +160,7 @@ displacement_row(mu_Context *ctx, UI *ui) {
mu_label(ctx, "Displacement:");
if (w_field(ctx, &ui->displacement) & MU_RES_CHANGE) {
set_displacement(ui);
- set_all_volume_flow_rate(ui);
+ compute_all(ui);
}
if (w_select(ctx, &ui->displacement_unit) & MU_RES_CHANGE) {
set_displacement_unit(ui);
@@ -173,7 +173,7 @@ ambient_temperature_row(mu_Context *ctx, UI *ui) {
mu_label(ctx, "Ambient T:");
if (w_field(ctx, &ui->ambient_temperature) & MU_RES_CHANGE) {
set_ambient_temperature(ui);
- set_all_volume_flow_rate(ui);
+ compute_all(ui);
}
if (w_select(ctx, &ui->ambient_temperature_unit) & MU_RES_CHANGE) {
set_ambient_temperature_unit(ui);
@@ -186,7 +186,7 @@ ambient_pressure_row(mu_Context *ctx, UI *ui) {
mu_label(ctx, "Ambient P:");
if (w_field(ctx, &ui->ambient_pressure) & MU_RES_CHANGE) {
set_ambient_pressure(ui);
- set_all_volume_flow_rate(ui);
+ compute_all(ui);
}
if (w_select(ctx, &ui->ambient_pressure_unit) & MU_RES_CHANGE) {
set_ambient_pressure_unit(ui);
@@ -206,7 +206,7 @@ rpm_row(mu_Context *ctx, UI *ui) {
for (i = 0; i < ui->npoints; i++) {
if (w_field(ctx, &ui->rpm[i])) {
set_rpm(ui, i);
- set_volume_flow_rate(ui, i);
+ compute(ui, i);
}
}
}
@@ -226,7 +226,7 @@ map_row(mu_Context *ctx, UI *ui) {
for (i = 0; i <ui->npoints; i++) {
if (w_field(ctx, &ui->map[i])) {
set_map(ui, i);
- set_volume_flow_rate(ui, i);
+ compute(ui, i);
}
}
}
@@ -244,7 +244,7 @@ ve_row(mu_Context *ctx, UI *ui) {
for (i = 0; i < ui->npoints; i++) {
if (w_field(ctx, &ui->ve[i])) {
set_ve(ui, i);
- set_volume_flow_rate(ui, i);
+ compute(ui, i);
}
}
}
@@ -262,7 +262,7 @@ comp_efficiency_row(mu_Context *ctx, UI *ui) {
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);
+ compute(ui, i);
}
}
}
@@ -280,7 +280,7 @@ intercooler_efficiency_row(mu_Context *ctx, UI *ui) {
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);
+ compute(ui, i);
}
}
}
@@ -300,7 +300,7 @@ intercooler_deltap_row(mu_Context *ctx, UI *ui) {
for (i = 0; i < ui->npoints; i++) {
if (w_field(ctx, &ui->intercooler_deltap[i])) {
set_intercooler_deltap(ui, i);
- set_volume_flow_rate(ui, i);
+ compute(ui, i);
}
}
}
@@ -334,7 +334,7 @@ volume_flow_rate_row(mu_Context *ctx, UI *ui) {
mu_label(ctx, "Volume flow rate:");
mu_layout_width(ctx, UNIT_WIDTH);
if (w_select(ctx, &ui->volume_flow_rate_unit) & MU_RES_CHANGE) {
- set_all_volume_flow_rate(ui);
+ compute_all(ui);
}
mu_layout_width(ctx, FIELD_WIDTH);
for (i = 0; i < ui->npoints; i++) {
diff --git a/ui.c b/ui.c
index edb83f2..0aeaae8 100644
--- a/ui.c
+++ b/ui.c
@@ -61,6 +61,7 @@ static void init_comp_efficiency(UI *ui);
static void init_intercooler_efficiency(UI *ui);
static void init_intercooler_deltap(UI *ui);
static void init_volume_flow_rate(UI *ui);
+static void compute_volume_flow_rate(UI *ui, int idx);
void
@@ -80,6 +81,8 @@ init_ui(UI *ui) {
init_intercooler_deltap(ui);
init_volume_flow_rate(ui);
+
+ compute(ui, 0);
}
static void
@@ -188,8 +191,6 @@ static void
init_volume_flow_rate(UI *ui) {
w_init_select(&ui->volume_flow_rate_unit, nelem(volume_flow_rate_units), volume_flow_rate_units);
w_init_number(ui->volume_flow_rate[0]);
-
- set_volume_flow_rate(ui, 0);
}
void
@@ -358,7 +359,21 @@ set_intercooler_deltap_unit(UI *ui) {
}
void
-set_volume_flow_rate(UI *ui, int idx) {
+compute(UI *ui, int idx) {
+ compute_volume_flow_rate(ui, idx);
+}
+
+void
+compute_all(UI *ui) {
+ int i;
+
+ for (i = 0; i < ui->npoints; i++) {
+ compute(ui, i);
+ }
+}
+
+static void
+compute_volume_flow_rate(UI *ui, int idx) {
int unit_idx;
VolumeFlowRateReader convert;
VolumeFlowRate v;
@@ -372,15 +387,6 @@ set_volume_flow_rate(UI *ui, int idx) {
}
void
-set_all_volume_flow_rate(UI *ui) {
- int i;
-
- for (i = 0; i < ui->npoints; i++) {
- set_volume_flow_rate(ui, i);
- }
-}
-
-void
insert_point(UI *ui, int idx) {
int i;
diff --git a/ui.h b/ui.h
index 16d3c6e..bd00b68 100644
--- a/ui.h
+++ b/ui.h
@@ -46,7 +46,7 @@ void set_comp_efficiency(UI *ui, int idx);
void set_intercooler_efficiency(UI *ui, int idx);
void set_intercooler_deltap(UI *ui, int idx);
void set_intercooler_deltap_unit(UI *ui);
-void set_volume_flow_rate(UI *ui, int idx);
-void set_all_volume_flow_rate(UI *ui);
+void compute(UI *ui, int idx);
+void compute_all(UI *ui);
void insert_point(UI *ui, int idx);
void remove_point(UI *ui, int idx);