From 375a772d2e8bb90264799bbc01949e7b82da3bfb Mon Sep 17 00:00:00 2001 From: lbutler Date: Sat, 5 Jul 2025 21:24:39 -0400 Subject: [PATCH] Fix emitter calculation --- src/epanet.c | 6 ++---- src/input1.c | 3 +-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/epanet.c b/src/epanet.c index 24c3dc5..e4f3683 100644 --- a/src/epanet.c +++ b/src/epanet.c @@ -2285,8 +2285,7 @@ int DLLEXPORT EN_getnodevalue(EN_Project p, int index, int property, double *val v = 0.0; if (Node[index].Ke > 0.0) { - ecfTmp = (parser->Unitsflag == US) ? (1.0 / PSIperFT) : (1.0 / MperFT); - ecfTmp /= hyd->SpGrav; + ecfTmp = (parser->Unitsflag == US) ? (PSIperFT * hyd->SpGrav) : (MperFT * hyd->SpGrav); v = Ucf[FLOW] / pow((ecfTmp * Node[index].Ke), (1.0 / hyd->Qexp)); } break; @@ -2534,8 +2533,7 @@ int DLLEXPORT EN_setnodevalue(EN_Project p, int index, int property, double valu if (value < 0.0) return 209; if (value > 0.0) { - ecfTmp = (parser->Unitsflag == US) ? (1.0 / PSIperFT) : (1.0 / MperFT); - ecfTmp /= hyd->SpGrav; + ecfTmp = (parser->Unitsflag == US) ? (PSIperFT * hyd->SpGrav) : (MperFT * hyd->SpGrav); value = pow((Ucf[FLOW] / value), hyd->Qexp) / ecfTmp; } Node[index].Ke = value; diff --git a/src/input1.c b/src/input1.c index d3cb777..94a7a3e 100644 --- a/src/input1.c +++ b/src/input1.c @@ -545,8 +545,7 @@ void convertunits(Project *pr) hyd->Preq /= pr->Ucf[PRESSURE]; // Convert emitter discharge coeffs. to head loss coeff. - ecf = (parser->Unitsflag == US) ? (1.0 / PSIperFT) : (1.0 / MperFT); - ecf /= hyd->SpGrav; + ecf = (parser->Unitsflag == US) ? (PSIperFT * hyd->SpGrav) : (MperFT * hyd->SpGrav); ucf = pow(pr->Ucf[FLOW], hyd->Qexp) / ecf; for (i = 1; i <= net->Njuncs; i++)