aboutsummaryrefslogtreecommitdiffstats
path: root/compressor.c
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2025-04-09 20:06:06 -0400
committerSam Anthony <sam@samanthony.xyz>2025-04-09 20:06:06 -0400
commite515fe68d878a320e7548080d31b07eee0d791af (patch)
treee8b6d10055632d87c1bd5ce48397b4eeaf82ebba /compressor.c
parent9ac96f1c5f795f80b1a01ebe3dc6b036cf2a7e07 (diff)
downloadvolute-e515fe68d878a320e7548080d31b07eee0d791af.zip
compressor data structure
Diffstat (limited to 'compressor.c')
-rw-r--r--compressor.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/compressor.c b/compressor.c
new file mode 100644
index 0000000..05aa9fc
--- /dev/null
+++ b/compressor.c
@@ -0,0 +1,34 @@
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <strings.h>
+
+#include <dirent.h>
+
+#include "unit.h"
+
+
+static const char ROOT[] = "compressor_maps/";
+
+
+typedef struct {
+ int x, y;
+} Point;
+
+typedef enum { MASS_FLOW, VOLUME_FLOW } FlowType;
+
+typedef union {
+ MassFlowRate mfr;
+ VolumeFlowRate vfr;
+} Flow;
+
+typedef struct {
+ char brand[NAME_MAX+1]; /* e.g. Borgwarner. */
+ char series[NAME_MAX+1]; /* e.g. Airwerks. */
+ char model[NAME_MAX+1]; /* e.g. S200SX-E. */
+ char imgfile[NAME_MAX+1]; /* name of file containing image of the compressor map. */
+ Point origin, refpt; /* pixel coords of origin and reference point. */
+ double originpr, refpr; /* pressure ratio at origin and reference point. */
+ Flow originflow, refflow; /* flow at origin and reference point. */
+ FlowType flowtype; /* mass-flow or volume-flow (x-axis). */
+} Compressor;