aboutsummaryrefslogtreecommitdiffstats
path: root/ui.go
diff options
context:
space:
mode:
authorsam-anthony <samanthony6@protonmail.com>2022-03-26 19:39:39 -0230
committersam-anthony <samanthony6@protonmail.com>2022-03-26 19:39:39 -0230
commit722ab14ee5c2bc70b880c4dec74d1b546ae144b2 (patch)
tree243b8e4fc2327b4ad1269a2761b23454d681bd29 /ui.go
parent42f2f6419bbff03931654e52a885b0600eec9b9b (diff)
downloadvolute-722ab14ee5c2bc70b880c4dec74d1b546ae144b2.zip
mass flow rate
Diffstat (limited to 'ui.go')
-rw-r--r--ui.go120
1 files changed, 101 insertions, 19 deletions
diff --git a/ui.go b/ui.go
index d72fec4..be1d00c 100644
--- a/ui.go
+++ b/ui.go
@@ -8,7 +8,11 @@ import (
func engineDisplacementRow() *g.RowWidget {
return g.Row(
g.Label("Engine Displacement"),
- g.InputFloat(&displacement.val).Format("%.2f"),
+ g.InputFloat(&displacement.val).Format("%.2f").OnChange(func() {
+ for i := 0; i < numPoints; i++ {
+ engineMassFlowRate[i] = massFlowRateAt(i)
+ }
+ }),
g.Combo(
"",
volumeUnitStrings()[selectedVolumeUnit],
@@ -31,12 +35,24 @@ func engineSpeedRow() *g.TableRowWidget {
return g.TableRow(
g.Label("Engine Speed"),
g.Label("rpm"),
- g.InputInt(&engineSpeed[0]),
- g.InputInt(&engineSpeed[1]),
- g.InputInt(&engineSpeed[2]),
- g.InputInt(&engineSpeed[3]),
- g.InputInt(&engineSpeed[4]),
- g.InputInt(&engineSpeed[5]),
+ g.InputInt(&engineSpeed[0]).OnChange(func() {
+ engineMassFlowRate[0] = massFlowRateAt(0)
+ }),
+ g.InputInt(&engineSpeed[1]).OnChange(func() {
+ engineMassFlowRate[1] = massFlowRateAt(1)
+ }),
+ g.InputInt(&engineSpeed[2]).OnChange(func() {
+ engineMassFlowRate[2] = massFlowRateAt(2)
+ }),
+ g.InputInt(&engineSpeed[3]).OnChange(func() {
+ engineMassFlowRate[3] = massFlowRateAt(3)
+ }),
+ g.InputInt(&engineSpeed[4]).OnChange(func() {
+ engineMassFlowRate[4] = massFlowRateAt(4)
+ }),
+ g.InputInt(&engineSpeed[5]).OnChange(func() {
+ engineMassFlowRate[5] = massFlowRateAt(5)
+ }),
)
}
@@ -44,12 +60,24 @@ func volumetricEfficiencyRow() *g.TableRowWidget {
return g.TableRow(
g.Label("Volumetric Efficiency"),
g.Label("%"),
- g.InputInt(&volumetricEfficiency[0]),
- g.InputInt(&volumetricEfficiency[1]),
- g.InputInt(&volumetricEfficiency[2]),
- g.InputInt(&volumetricEfficiency[3]),
- g.InputInt(&volumetricEfficiency[4]),
- g.InputInt(&volumetricEfficiency[5]),
+ g.InputInt(&volumetricEfficiency[0]).OnChange(func() {
+ engineMassFlowRate[0] = massFlowRateAt(0)
+ }),
+ g.InputInt(&volumetricEfficiency[1]).OnChange(func() {
+ engineMassFlowRate[1] = massFlowRateAt(1)
+ }),
+ g.InputInt(&volumetricEfficiency[2]).OnChange(func() {
+ engineMassFlowRate[2] = massFlowRateAt(2)
+ }),
+ g.InputInt(&volumetricEfficiency[3]).OnChange(func() {
+ engineMassFlowRate[3] = massFlowRateAt(3)
+ }),
+ g.InputInt(&volumetricEfficiency[4]).OnChange(func() {
+ engineMassFlowRate[4] = massFlowRateAt(4)
+ }),
+ g.InputInt(&volumetricEfficiency[5]).OnChange(func() {
+ engineMassFlowRate[5] = massFlowRateAt(5)
+ }),
)
}
@@ -73,12 +101,30 @@ func intakeAirTemperatureRow() *g.TableRowWidget {
intakeAirTemperature[i] = temperature{t, u}
}
}),
- g.InputFloat(&intakeAirTemperature[0].val).Format("%.2f"),
- g.InputFloat(&intakeAirTemperature[1].val).Format("%.2f"),
- g.InputFloat(&intakeAirTemperature[2].val).Format("%.2f"),
- g.InputFloat(&intakeAirTemperature[3].val).Format("%.2f"),
- g.InputFloat(&intakeAirTemperature[4].val).Format("%.2f"),
- g.InputFloat(&intakeAirTemperature[5].val).Format("%.2f"),
+ g.InputFloat(&intakeAirTemperature[0].val).Format("%.2f").
+ OnChange(func() {
+ engineMassFlowRate[0] = massFlowRateAt(0)
+ }),
+ g.InputFloat(&intakeAirTemperature[1].val).Format("%.2f").
+ OnChange(func() {
+ engineMassFlowRate[1] = massFlowRateAt(1)
+ }),
+ g.InputFloat(&intakeAirTemperature[2].val).Format("%.2f").
+ OnChange(func() {
+ engineMassFlowRate[2] = massFlowRateAt(2)
+ }),
+ g.InputFloat(&intakeAirTemperature[3].val).Format("%.2f").
+ OnChange(func() {
+ engineMassFlowRate[3] = massFlowRateAt(3)
+ }),
+ g.InputFloat(&intakeAirTemperature[4].val).Format("%.2f").
+ OnChange(func() {
+ engineMassFlowRate[4] = massFlowRateAt(4)
+ }),
+ g.InputFloat(&intakeAirTemperature[5].val).Format("%.2f").
+ OnChange(func() {
+ engineMassFlowRate[5] = massFlowRateAt(5)
+ }),
)
}
@@ -106,26 +152,32 @@ func manifoldPressureRow() *g.TableRowWidget {
g.InputFloat(&manifoldPressure[0].val).Format("%.2f").
OnChange(func() {
pressureRatio[0] = pressureRatioAt(0)
+ engineMassFlowRate[0] = massFlowRateAt(0)
}),
g.InputFloat(&manifoldPressure[1].val).Format("%.2f").
OnChange(func() {
pressureRatio[1] = pressureRatioAt(1)
+ engineMassFlowRate[1] = massFlowRateAt(1)
}),
g.InputFloat(&manifoldPressure[2].val).Format("%.2f").
OnChange(func() {
pressureRatio[2] = pressureRatioAt(2)
+ engineMassFlowRate[2] = massFlowRateAt(2)
}),
g.InputFloat(&manifoldPressure[3].val).Format("%.2f").
OnChange(func() {
pressureRatio[3] = pressureRatioAt(3)
+ engineMassFlowRate[3] = massFlowRateAt(3)
}),
g.InputFloat(&manifoldPressure[4].val).Format("%.2f").
OnChange(func() {
pressureRatio[4] = pressureRatioAt(4)
+ engineMassFlowRate[4] = massFlowRateAt(4)
}),
g.InputFloat(&manifoldPressure[5].val).Format("%.2f").
OnChange(func() {
pressureRatio[5] = pressureRatioAt(5)
+ engineMassFlowRate[5] = massFlowRateAt(5)
}),
)
}
@@ -142,3 +194,33 @@ func pressureRatioRow() *g.TableRowWidget {
g.Label(strconv.FormatFloat(float64(pressureRatio[5]), 'f', 1, 32)),
)
}
+
+func massFlowRateRow() *g.TableRowWidget {
+ return g.TableRow(
+ g.Label("Mass Flow Rate"),
+ g.Combo(
+ "",
+ massFlowRateUnitStrings()[selectedMassFlowRateUnit],
+ massFlowRateUnitStrings(),
+ &selectedMassFlowRateUnit,
+ ).
+ OnChange(func() {
+ s := massFlowRateUnitStrings()[selectedMassFlowRateUnit]
+ u, err := massFlowRateUnitFromString(s)
+ check(err)
+
+ for i := 0; i < numPoints; i++ {
+ engineMassFlowRate[i] = massFlowRate{
+ engineMassFlowRate[i].asUnit(u),
+ u,
+ }
+ }
+ }),
+ g.Label(strconv.FormatFloat(float64(engineMassFlowRate[0].val), 'f', 3, 32)),
+ g.Label(strconv.FormatFloat(float64(engineMassFlowRate[1].val), 'f', 3, 32)),
+ g.Label(strconv.FormatFloat(float64(engineMassFlowRate[2].val), 'f', 3, 32)),
+ g.Label(strconv.FormatFloat(float64(engineMassFlowRate[3].val), 'f', 3, 32)),
+ g.Label(strconv.FormatFloat(float64(engineMassFlowRate[4].val), 'f', 3, 32)),
+ g.Label(strconv.FormatFloat(float64(engineMassFlowRate[5].val), 'f', 3, 32)),
+ )
+}