diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2025-02-28 18:03:06 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2025-02-28 18:03:06 -0500 |
| commit | bc1d5a436f81561072d7f4f0f0ecb1fa85718c7f (patch) | |
| tree | 4b5a3a0a10934ce9f85dcae54d80ab91a89ede12 /unit.c | |
| parent | 555849edd9b7053e7197b88e150aa05479df0872 (diff) | |
| download | volute-bc1d5a436f81561072d7f4f0f0ecb1fa85718c7f.zip | |
pressure conversion functions
Diffstat (limited to 'unit.c')
| -rw-r--r-- | unit.c | 69 |
1 files changed, 59 insertions, 10 deletions
@@ -3,6 +3,16 @@ #include "unit.h" +/* Kilograms per pound. */ +#define KG_PER_LB 0.45359237 + +/* Acceleration of gravity [m/(s*s)]. */ +#define G 9.80665 + +/* Metres per inch. */ +#define M_PER_IN 0.0254 + + AngularSpeed rad_per_sec(double x) { return x; @@ -33,16 +43,55 @@ Fraction percent(double x); double as_percent(Fraction x); -Pressure pascal(double x); -Pressure millibar(double x); -Pressure kilopascal(double x); -Pressure bar(double x); -Pressure psi(double x); -double as_pascal(Pressure x); -double as_millibar(Pressure x); -double as_kilopascal(Pressure x); -double as_bar(Pressure x); -double as_psi(Pressure x); +Pressure +pascal(double x) { + return x; +} + +Pressure +millibar(double x) { + return x * 100.0; +} + +Pressure +kilopascal(double x) { + return x * 1e3; +} + +Pressure +bar(double x) { + return x * 1e5; +} + +Pressure +psi(double x) { + return x * KG_PER_LB * G / pow(M_PER_IN, 2); +} + +double +as_pascal(Pressure x) { + return x; +} + +double +as_millibar(Pressure x) { + return x / 100.0; +} + +double +as_kilopascal(Pressure x) { + return x * 1e-3; +} + +double +as_bar(Pressure x) { + return x * 1e-5; +} + +double +as_psi(Pressure x) { + return x * pow(M_PER_IN, 2) / (KG_PER_LB * G); +} Volume |