diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2025-04-26 17:32:00 -0400 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2025-04-26 17:32:00 -0400 |
| commit | f45e9a8d37a384ccea33158a4d3062d633720c93 (patch) | |
| tree | 59315423a519128d37bfd6b94fb52df92a70ca18 /unit.c | |
| parent | 546e29a6f439146338f320240cab9b3b760eecb7 (diff) | |
| download | volute-f45e9a8d37a384ccea33158a4d3062d633720c93.zip | |
parse flow rate unit in compressor toml files
Diffstat (limited to 'unit.c')
| -rw-r--r-- | unit.c | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -1,6 +1,8 @@ #include <math.h> +#include <stddef.h> #include "unit.h" +#include "util.h" /* Kilograms per pound. */ @@ -21,6 +23,50 @@ /* Zero Celsius in Kelvin. */ #define ZERO_C 273.15 +const char *const pressure_units[] = {"mbar", "kPa", "bar", "psi", "inHG"}; +const PressureMaker pressure_makers[nelem(pressure_units)] = { + millibar, kilopascal, bar, psi, inch_mercury, +}; +const PressureReader pressure_readers[nelem(pressure_units)] = { + as_millibar, as_kilopascal, as_bar, as_psi, as_inch_mercury, +}; +const size_t n_pressure_units = nelem(pressure_units); + +const char *const temperature_units[] = {"°C", "K", "°F", "°R"}; +const TemperatureMaker temperature_makers[nelem(temperature_units)] = { + celsius, kelvin, fahrenheit, rankine, +}; +const TemperatureReader temperature_readers[nelem(temperature_units)] = { + as_celsius, as_kelvin, as_fahrenheit, as_rankine, +}; +const size_t n_temperature_units = nelem(temperature_units); + +const char *const volume_units[] = {"cc", "l", "ci"}; +const VolumeMaker volume_makers[nelem(volume_units)] = { + cubic_centimetre, litre, cubic_inch, +}; +const VolumeReader volume_readers[nelem(volume_units)] = { + as_cubic_centimetre, as_litre, as_cubic_inch, +}; +const size_t n_volume_units = nelem(volume_units); + +const char *const volume_flow_rate_units[] = {"m³/s", "CFM"}; +const VolumeFlowRateMaker volume_flow_rate_makers[nelem(volume_flow_rate_units)] = { + cubic_metre_per_sec, cubic_foot_per_min, +}; +const VolumeFlowRateReader volume_flow_rate_readers[nelem(volume_flow_rate_units)] = { + as_cubic_metre_per_sec, as_cubic_foot_per_min, +}; +const size_t n_volume_flow_rate_units = nelem(volume_flow_rate_units); + +const char *const mass_flow_rate_units[] = {"kg/s", "lb/min"}; +const MassFlowRateMaker mass_flow_rate_makers[nelem(mass_flow_rate_units)] = { + kilo_per_sec, pound_per_min, +}; +const MassFlowRateReader mass_flow_rate_readers[nelem(mass_flow_rate_units)] = { + as_kilo_per_sec, as_pound_per_min, +}; +const size_t n_mass_flow_rate_units = nelem(mass_flow_rate_units); AngularSpeed rad_per_sec(double x) { |